Browse Source

Avoid panic in KDF func for Go 1.16

https://github.com/golang/go/commit/2a206c7fcc91854a0ab78fe5799bda38dd330b11
RPRX 4 năm trước cách đây
mục cha
commit
d22c2d034c
1 tập tin đã thay đổi với 9 bổ sung0 xóa
  1. 9 0
      proxy/vmess/aead/kdf.go

+ 9 - 0
proxy/vmess/aead/kdf.go

@@ -6,11 +6,20 @@ import (
 	"hash"
 )
 
+type hash2 struct {
+	hash.Hash
+}
+
 func KDF(key []byte, path ...string) []byte {
 	hmacf := hmac.New(sha256.New, []byte(KDFSaltConstVMessAEADKDF))
 
 	for _, v := range path {
+		first := true
 		hmacf = hmac.New(func() hash.Hash {
+			if first {
+				first = false
+				return hash2{hmacf}
+			}
 			return hmacf
 		}, []byte(v))
 	}