Avoid panic in KDF func for Go 1.16

2a206c7fcc
This commit is contained in:
RPRX 2021-02-17 03:02:03 +00:00 committed by GitHub
parent 4c10a9eb4e
commit d22c2d034c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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