add chacha20 benchmarks

This commit is contained in:
jeremiah 2025-02-17 21:00:40 -05:00
parent 20e970d7f6
commit e41653d188
3 changed files with 53 additions and 0 deletions

View File

@ -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)'] }

View File

@ -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;
}

View File

@ -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)]
@ -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;