1
0
mirror of https://github.com/fumiama/gofastTEA.git synced 2026-06-04 23:40:29 +08:00

feat: add new method ToBytes

This commit is contained in:
源文雨
2024-11-15 23:55:41 +09:00
parent 7d42c37612
commit 009c88ad93

34
tea.go
View File

@@ -11,10 +11,10 @@ type TEA [4]uint32
//go:nosplit
func NewTeaCipher(key []byte) (t TEA) {
if len(key) == 16 {
t[3] = binary.BigEndian.Uint32(key[12:])
t[2] = binary.BigEndian.Uint32(key[8:])
t[1] = binary.BigEndian.Uint32(key[4:])
t[0] = binary.BigEndian.Uint32(key[0:])
t[3] = binary.BigEndian.Uint32(key[12:16])
t[2] = binary.BigEndian.Uint32(key[8:12])
t[1] = binary.BigEndian.Uint32(key[4:8])
t[0] = binary.BigEndian.Uint32(key[0:4])
}
return
}
@@ -22,10 +22,28 @@ func NewTeaCipher(key []byte) (t TEA) {
//go:nosplit
func NewTeaCipherLittleEndian(key []byte) (t TEA) {
if len(key) == 16 {
t[3] = binary.LittleEndian.Uint32(key[12:])
t[2] = binary.LittleEndian.Uint32(key[8:])
t[1] = binary.LittleEndian.Uint32(key[4:])
t[0] = binary.LittleEndian.Uint32(key[0:])
t[3] = binary.LittleEndian.Uint32(key[12:16])
t[2] = binary.LittleEndian.Uint32(key[8:12])
t[1] = binary.LittleEndian.Uint32(key[4:8])
t[0] = binary.LittleEndian.Uint32(key[0:4])
}
return
}
func (t TEA) ToBytes() []byte {
var buf [16]byte
binary.BigEndian.PutUint32(buf[0:4], t[0])
binary.BigEndian.PutUint32(buf[4:8], t[1])
binary.BigEndian.PutUint32(buf[8:12], t[2])
binary.BigEndian.PutUint32(buf[12:16], t[3])
return buf[:]
}
func (t TEA) ToBytesLittleEndian() []byte {
var buf [16]byte
binary.LittleEndian.PutUint32(buf[0:4], t[0])
binary.LittleEndian.PutUint32(buf[4:8], t[1])
binary.LittleEndian.PutUint32(buf[8:12], t[2])
binary.LittleEndian.PutUint32(buf[12:16], t[3])
return buf[:]
}