From 4b83bfcad25c8d8e36fe210a76faa5797f9c5aaf Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Thu, 4 Sep 2025 21:47:55 +0200 Subject: add benchmarks for primitives --- src/lib.rs | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index 531705c..95c1622 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -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, T: IntoIterator>( + aez: &Aez, + tweaks: T, + message: &mut [u8], + ) { + super::encipher(aez, tweaks, message) + } + + pub fn decipher, T: IntoIterator>( + aez: &Aez, + tweaks: T, + message: &mut [u8], + ) { + super::decipher(aez, tweaks, message) + } + + pub fn aez_hash, T: IntoIterator>(aez: &Aez, tweaks: T) -> [u8; 16] { + super::aez_hash(aez, tweaks).bytes() + } + + pub fn aez_prf, T: IntoIterator>( + 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::*; -- cgit v1.2.3