diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib.rs | 42 | 
1 files changed, 42 insertions, 0 deletions
@@ -891,6 +891,48 @@ fn split_key(key: &Key) -> (Block, Block, Block) {      )  } +/// Access to the primitive AEZ functions `aez_prf`, `aez_hash`, `encipher`, `decipher` and `e`. +/// +/// Note that this is a low-level API, not intended for general use. +/// +/// Note further that this API is exempt from semver guarantees and might break. +#[cfg(feature = "primitives")] +pub mod primitives { +    use super::{Aez, Block}; + +    pub fn encipher<A: AsRef<[u8]>, T: IntoIterator<Item = A>>( +        aez: &Aez, +        tweaks: T, +        message: &mut [u8], +    ) { +        super::encipher(aez, tweaks, message) +    } + +    pub fn decipher<A: AsRef<[u8]>, T: IntoIterator<Item = A>>( +        aez: &Aez, +        tweaks: T, +        message: &mut [u8], +    ) { +        super::decipher(aez, tweaks, message) +    } + +    pub fn aez_hash<A: AsRef<[u8]>, T: IntoIterator<Item = A>>(aez: &Aez, tweaks: T) -> [u8; 16] { +        super::aez_hash(aez, tweaks).bytes() +    } + +    pub fn aez_prf<A: AsRef<[u8]>, T: IntoIterator<Item = A>>( +        aez: &Aez, +        tweaks: T, +        buffer: &mut [u8], +    ) { +        super::aez_prf(aez, tweaks, buffer) +    } + +    pub fn e(j: i32, i: u32, aez: &Aez, block: [u8; 16]) -> [u8; 16] { +        super::e(j, i, aez, Block::from(block)).bytes() +    } +} +  #[cfg(all(test, feature = "std"))]  mod test {      use super::*;  | 
