aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2025-09-04 21:47:55 +0200
committerDaniel Schadt <kingdread@gmx.de>2025-09-04 21:47:55 +0200
commit4b83bfcad25c8d8e36fe210a76faa5797f9c5aaf (patch)
tree7d7045099a4e977e467a4e28581f620219746474 /src
parent7d8c9ab2be2e72038692a96b10427ab6ed914259 (diff)
downloadzears-4b83bfcad25c8d8e36fe210a76faa5797f9c5aaf.tar.gz
zears-4b83bfcad25c8d8e36fe210a76faa5797f9c5aaf.tar.bz2
zears-4b83bfcad25c8d8e36fe210a76faa5797f9c5aaf.zip
add benchmarks for primitives
Diffstat (limited to 'src')
-rw-r--r--src/lib.rs42
1 files changed, 42 insertions, 0 deletions
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<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::*;