From d22c2d034cc29bf553566d3483f3bf761d2225ab Mon Sep 17 00:00:00 2001 From: RPRX <63339210+rprx@users.noreply.github.com> Date: Wed, 17 Feb 2021 03:02:03 +0000 Subject: [PATCH] Avoid panic in KDF func for Go 1.16 https://github.com/golang/go/commit/2a206c7fcc91854a0ab78fe5799bda38dd330b11 --- proxy/vmess/aead/kdf.go | 9 +++++++++ 1 file changed, 9 insertions(+) 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)) }