diff --git a/benches/garbl_bench.rs b/benches/garbl_bench.rs index b443a67..6177d38 100644 --- a/benches/garbl_bench.rs +++ b/benches/garbl_bench.rs @@ -13,20 +13,31 @@ fn generate_text() -> Vec { } fn wharrgarbl_benchmark(c: &mut Criterion) { - use wharrgarbl::transport::AeadStrobe; - use wharrgarbl_strobe::Sec128; + use wharrgarbl::{Sec128, Sec256, transport::AeadStrobe}; let key = Array([77u8; 32]); let nonce = Array([12u8; 16]); - let transport = AeadStrobe::::new(&key); + let transport_128 = AeadStrobe::::new(&key); + let transport_256 = AeadStrobe::::new(&key); - c.bench_function("WHGL TRANSPORT ROUNDTRIP", |b| { + c.bench_function("WHGL-128 TRANSPORT ROUNDTRIP", |b| { b.iter_batched_ref( generate_text, |text| { - let _ = transport.encrypt_in_place(&nonce, b"bench", black_box(text)); - let _ = transport.decrypt_in_place(&nonce, b"bench", black_box(text)); + let _ = transport_128.encrypt_in_place(&nonce, b"bench", black_box(text)); + let _ = transport_128.decrypt_in_place(&nonce, b"bench", black_box(text)); + }, + criterion::BatchSize::LargeInput, + ); + }); + + c.bench_function("WHGL-256 TRANSPORT ROUNDTRIP", |b| { + b.iter_batched_ref( + generate_text, + |text| { + let _ = transport_256.encrypt_in_place(&nonce, b"bench", black_box(text)); + let _ = transport_256.decrypt_in_place(&nonce, b"bench", black_box(text)); }, criterion::BatchSize::LargeInput, ); diff --git a/wharrgarbl-strobe/src/strobe.rs b/wharrgarbl-strobe/src/strobe.rs index 8d2b062..5248b53 100644 --- a/wharrgarbl-strobe/src/strobe.rs +++ b/wharrgarbl-strobe/src/strobe.rs @@ -167,6 +167,7 @@ impl StrobeState { self.start = 0; } + #[inline] fn increment_position(&mut self, increment: usize) { self.position += increment; diff --git a/wharrgarbl-strobe/src/traits.rs b/wharrgarbl-strobe/src/traits.rs index 85d1f83..403bc09 100644 --- a/wharrgarbl-strobe/src/traits.rs +++ b/wharrgarbl-strobe/src/traits.rs @@ -8,7 +8,7 @@ pub trait StrobeSecurity: Unsigned { Self::to_u16().to_le_bytes() } fn rate() -> usize { - KECCAK_BUFFER_SIZE - (Self::to_usize()) / 4 - 2 + KECCAK_BUFFER_SIZE - Self::to_usize() / 4 - 2 } fn ratchet_bytes() -> usize { Self::to_usize() >> 3