use hkdf::Hkdf;
use sha2::Sha512;
pub fn hkdf_extract_sha512(salt: &[u8], ikm: &[u8]) -> Vec<u8> {
let hk = Hkdf::<Sha512>::new(Some(salt), ikm);
let mut prk = [0u8; 64];
hk.expand(b"prk", &mut prk).expect("HKDF expand");
prk.to_vec()
}
pub fn hkdf_expand_sha512(prk: &[u8], info: &[u8], len: usize) -> Vec<u8> {
let hk = Hkdf::<Sha512>::from_prk(prk).expect("valid prk");
let mut okm = vec![0u8; len];
hk.expand(info, &mut okm).expect("HKDF expand");
okm
}