use std::{ error::Error, ops::Range };
#[derive(Debug, Eq, PartialEq, Clone)]
pub struct KdfInfo {
pub name: &'static str,
pub output_len_r: Range<usize>,
pub key_len_r: Range<usize>,
pub salt_len_r: Range<usize>,
pub info_len_r: Range<usize>
}
pub trait Kdf {
fn info(&self) -> KdfInfo;
fn derive(&self, buf: &mut[u8], base_key: &[u8], salt: &[u8], info: &[u8])
-> Result<(), Box<dyn Error + 'static>>;
}