#[cfg(feature = "alloc")]
use alloc::vec::Vec;
use crate::error::HpkeError;
use crate::types::HpkeKdf;
pub trait Kdf {
fn extract(&self, kdf: HpkeKdf, salt: &[u8], ikm: &[u8]) -> Result<Vec<u8>, HpkeError>;
fn expand(
&self,
kdf: HpkeKdf,
prk: &[u8],
info: &[u8],
length: usize,
) -> Result<Vec<u8>, HpkeError>;
fn extract_len(&self, kdf: HpkeKdf) -> usize;
}