1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-11-10 06:16:53 -05:00
v2fly/proxy/vmess/aead/kdf.go

24 lines
414 B
Go
Raw Normal View History

2020-06-06 05:11:30 -04:00
package aead
import (
"crypto/hmac"
"crypto/sha256"
"hash"
)
func KDF(key []byte, path ...string) []byte {
var hmacf hash.Hash
2020-06-06 05:11:30 -04:00
for _, v := range path {
hmacf = hmac.New(func() hash.Hash {
return hmac.New(sha256.New, []byte(KDFSaltConstVMessAEADKDF))
2020-06-06 05:11:30 -04:00
}, []byte(v))
}
hmacf.Write(key)
return hmacf.Sum(nil)
}
func KDF16(key []byte, path ...string) []byte {
r := KDF(key, path...)
return r[:16]
}