From: qmuntal Date: Fri, 25 Oct 2024 12:34:46 +0000 (+0200) Subject: crypto/internal/hpke: use internal/byteorder instead of encoding/binary X-Git-Tag: go1.24rc1~572 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=b33fc480a25c30d38104a9efaf73326c888e8557;p=gostls13.git crypto/internal/hpke: use internal/byteorder instead of encoding/binary crypto/internal/hpke is the only package under crypto that imports encoding/binary. Other packages use internal/byteorder instead, which notably doesn't depend on the reflect package. Updates #54097 Change-Id: I77a3ac5f4588527a2f82574df4cb84d30630d73f Reviewed-on: https://go-review.googlesource.com/c/go/+/622497 LUCI-TryBot-Result: Go LUCI Reviewed-by: Carlos Amedee Reviewed-by: Ian Lance Taylor Reviewed-by: Filippo Valsorda --- diff --git a/src/crypto/internal/hpke/hpke.go b/src/crypto/internal/hpke/hpke.go index 611c89aac0..022cdd28df 100644 --- a/src/crypto/internal/hpke/hpke.go +++ b/src/crypto/internal/hpke/hpke.go @@ -10,8 +10,8 @@ import ( "crypto/cipher" "crypto/ecdh" "crypto/rand" - "encoding/binary" "errors" + "internal/byteorder" "math/bits" "golang.org/x/crypto/chacha20poly1305" @@ -37,7 +37,7 @@ func (kdf *hkdfKDF) LabeledExtract(suiteID []byte, salt []byte, label string, in func (kdf *hkdfKDF) LabeledExpand(suiteID []byte, randomKey []byte, label string, info []byte, length uint16) []byte { labeledInfo := make([]byte, 0, 2+7+len(suiteID)+len(label)+len(info)) - labeledInfo = binary.BigEndian.AppendUint16(labeledInfo, length) + labeledInfo = byteorder.BeAppendUint16(labeledInfo, length) labeledInfo = append(labeledInfo, []byte("HPKE-v1")...) labeledInfo = append(labeledInfo, suiteID...) labeledInfo = append(labeledInfo, label...) @@ -76,7 +76,7 @@ func newDHKem(kemID uint16) (*dhKEM, error) { return &dhKEM{ dh: suite.curve, kdf: hkdfKDF{suite.hash}, - suiteID: binary.BigEndian.AppendUint16([]byte("KEM"), kemID), + suiteID: byteorder.BeAppendUint16([]byte("KEM"), kemID), nSecret: suite.nSecret, }, nil } @@ -224,9 +224,9 @@ func (s *Sender) Seal(aad, plaintext []byte) ([]byte, error) { func SuiteID(kemID, kdfID, aeadID uint16) []byte { suiteID := make([]byte, 0, 4+2+2+2) suiteID = append(suiteID, []byte("HPKE")...) - suiteID = binary.BigEndian.AppendUint16(suiteID, kemID) - suiteID = binary.BigEndian.AppendUint16(suiteID, kdfID) - suiteID = binary.BigEndian.AppendUint16(suiteID, aeadID) + suiteID = byteorder.BeAppendUint16(suiteID, kemID) + suiteID = byteorder.BeAppendUint16(suiteID, kdfID) + suiteID = byteorder.BeAppendUint16(suiteID, aeadID) return suiteID } @@ -253,7 +253,7 @@ func (u uint128) bitLen() int { func (u uint128) bytes() []byte { b := make([]byte, 16) - binary.BigEndian.PutUint64(b[0:], u.hi) - binary.BigEndian.PutUint64(b[8:], u.lo) + byteorder.BePutUint64(b[0:], u.hi) + byteorder.BePutUint64(b[8:], u.lo) return b }