mirror of
https://github.com/v2fly/v2ray-core.git
synced 2026-05-16 17:39:08 -04:00
VMess AEAD Experiment
This commit is contained in:
26
proxy/vmess/aead/kdf.go
Normal file
26
proxy/vmess/aead/kdf.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package aead
|
||||
|
||||
import (
|
||||
"crypto/hmac"
|
||||
"crypto/sha256"
|
||||
"hash"
|
||||
)
|
||||
|
||||
func KDF(key []byte, path ...string) []byte {
|
||||
hmacf := hmac.New(func() hash.Hash {
|
||||
return sha256.New()
|
||||
}, []byte("VMess AEAD KDF"))
|
||||
|
||||
for _, v := range path {
|
||||
hmacf = hmac.New(func() hash.Hash {
|
||||
return hmacf
|
||||
}, []byte(v))
|
||||
}
|
||||
hmacf.Write(key)
|
||||
return hmacf.Sum(nil)
|
||||
}
|
||||
|
||||
func KDF16(key []byte, path ...string) []byte {
|
||||
r := KDF(key, path...)
|
||||
return r[:16]
|
||||
}
|
||||
Reference in New Issue
Block a user