cacert-gosigner/datastructures/common.go

30 lines
638 B
Go
Raw Permalink Normal View History

2018-10-31 11:17:51 +01:00
package datastructures
import "encoding/binary"
2021-01-04 20:39:35 +01:00
const signerTimeFormat = "010203042006.05"
func Encode24BitLength(data []byte) []byte {
2018-10-31 11:17:51 +01:00
lengthBytes := make([]byte, 4)
binary.BigEndian.PutUint32(lengthBytes, uint32(len(data)))
2018-10-31 11:17:51 +01:00
return lengthBytes[1:]
}
// calculate length from 24 bits of data in network byte order
func Decode24BitLength(bytes []byte) int {
2018-10-31 11:17:51 +01:00
return int(binary.BigEndian.Uint32([]byte{0x0, bytes[0], bytes[1], bytes[2]}))
}
func CalculateXorCheckSum(byteBlocks [][]byte) byte {
var result byte = 0x0
2018-10-31 11:17:51 +01:00
for _, byteBlock := range byteBlocks {
for _, b := range byteBlock {
result ^= b
}
}
2018-10-31 11:17:51 +01:00
return result
}