diff --git a/proxy/vmess/aead/kdf.go b/proxy/vmess/aead/kdf.go index ebcea0a3..8194f5c5 100644 --- a/proxy/vmess/aead/kdf.go +++ b/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)) }