Add DeriveKey func

This commit is contained in:
vysion 2022-03-30 12:16:16 -07:00
parent 418c21139a
commit 84dcbce9f5
1 changed files with 35 additions and 0 deletions

View File

@ -1 +1,36 @@
package encryption
import (
"crypto/sha512"
"golang.org/x/crypto/hkdf"
"io"
)
func DeriveKey(k []byte, nonce []byte) ([32]byte, error) {
var key [32]byte
// TODO: remove experiment
//d := sha3.NewShake256()
//_, err := d.Write(k)
//if err != nil {
// return [64]byte{}, err
//}
//_, err = d.Write(nonce)
//if err != nil {
// return [64]byte{}, err
//}
//
//_, err = d.Read(key[:])
//if err != nil {
// return [64]byte{}, err
//}
// SHA2-512 related code
kdf := hkdf.New(sha512.New, k, nonce, nil)
_, err := io.ReadFull(kdf, key[:])
if err != nil {
return [32]byte{}, err
}
return key, nil
}