Skip to content

Commit

Permalink
add chacha20 benchmarks
Browse files Browse the repository at this point in the history
  • Loading branch information
JeremiahR committed Feb 18, 2025
1 parent 20e970d commit e41653d
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 0 deletions.
3 changes: 3 additions & 0 deletions chacha20_poly1305/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,6 @@ hex = { package = "hex-conservative", version = "0.3.0", default-features = fals
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[lints.rust]
unexpected_cfgs = { level = "deny", check-cfg = ['cfg(bench)'] }
45 changes: 45 additions & 0 deletions chacha20_poly1305/src/benches.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
use test::Bencher;

use crate::{ChaCha20, Key, Nonce};

#[bench]
pub fn chacha20_10(bh: &mut Bencher) {
let key =
Key::new([0u8; 32]);
let nonce = Nonce::new([0u8; 12]);
let count = 1;
let mut chacha = ChaCha20::new(key, nonce, count);
let mut bytes = [0u8; 10];
bh.iter(|| {
chacha.apply_keystream(&mut bytes[..]);
});
bh.bytes = bytes.len() as u64;
}

#[bench]
pub fn chacha20_1k(bh: &mut Bencher) {
let key =
Key::new([0u8; 32]);
let nonce = Nonce::new([0u8; 12]);
let count = 1;
let mut chacha = ChaCha20::new(key, nonce, count);
let mut bytes = [0u8; 1024];
bh.iter(|| {
chacha.apply_keystream(&mut bytes[..]);
});
bh.bytes = bytes.len() as u64;
}

#[bench]
pub fn chacha20_64k(bh: &mut Bencher) {
let key =
Key::new([0u8; 32]);
let nonce = Nonce::new([0u8; 12]);
let count = 1;
let mut chacha = ChaCha20::new(key, nonce, count);
let mut bytes = [0u8; 65536];
bh.iter(|| {
chacha.apply_keystream(&mut bytes[..]);
});
bh.bytes = bytes.len() as u64;
}
5 changes: 5 additions & 0 deletions chacha20_poly1305/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#![no_std]
// Experimental features we need.
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
#![cfg_attr(bench, feature(test))]
// Coding conventions.
#![warn(missing_docs)]
#![warn(deprecated_in_future)]
Expand All @@ -18,6 +19,10 @@ extern crate alloc;
#[cfg(feature = "std")]
extern crate std;

#[cfg(bench)]
mod benches;
#[cfg(bench)]
extern crate test;
pub mod chacha20;
pub mod poly1305;

Expand Down

0 comments on commit e41653d

Please sign in to comment.