/* SSHSecure - a program to harden OpenSSH from defaults Copyright (C) 2020 Brent Saner This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ package sshkeys import ( `encoding/binary` `github.com/go-restruct/restruct` ) // These are just here to save some typing. func getBytelenStr(s string) []byte { return getBytelenByteArr([]byte(s)) } func getBytelenByteArr(b []byte) []byte { return getByteInt(len(b)) } func getByteInt(i int) []byte { // This does not work. Despite being a uint32, golang always only writes it as 1 byte instead of 4. // ...Despite it occupying 4 bytes in RAM. // Luckily we can reuse this quick one-liner in getSingleByteInt(). // return []byte{byte(i)} b := make([]byte, 4) b, _ = restruct.Pack(binary.BigEndian, uint32(i)) return b } func getSingleByteInt(i int) []byte { return []byte{byte(uint32(i))} }