uncomment benchmarks and tests

This commit is contained in:
Neemek 2025-11-06 23:20:07 +01:00
parent 76695723ed
commit 1fad1ffc4f
3 changed files with 50 additions and 46 deletions

View file

@ -66,7 +66,7 @@ impl Block {
}
#[inline]
fn make_chacha_block(key: &[u32; 8], counter: u32, nonce: [u32; 3]) -> [u32; 16] {
pub(crate) fn make_chacha_block(key: &[u32; 8], counter: u32, nonce: [u32; 3]) -> [u32; 16] {
[
CHACHA_CONSTANT[0],
CHACHA_CONSTANT[1],
@ -101,7 +101,7 @@ pub fn do_chacha(input: &[u8], key_bytes: &[u8; 32], nonce: [u32; 3], initial_co
bytes
}
fn chacha_rounds(input: [u32; 16], rounds: usize) -> [u32; 16] {
pub(crate) fn chacha_rounds(input: [u32; 16], rounds: usize) -> [u32; 16] {
let mut x: [u32; 16] = input;
for i in 0..rounds {
@ -156,51 +156,23 @@ fn chacha_quarter_round(x: &mut [u32; 16], a: usize, b: usize, c: usize, d: usiz
x[b] = x[b].rotate_left(7);
}
/*
use test::{Bencher, black_box};
use crate::{chacha_quarter_round, chacha_rounds, do_chacha, few_u32_to_many_u8, make_chacha_block};
#[cfg(test)]
mod tests {
use crate::{chacha_quarter_round};
#[test]
fn test_chacha_quarter_round() {
let mut data = [0u32; 16];
data[0] = 0x11111111;
data[1] = 0x01020304;
data[2] = 0x9b8d6f43;
data[3] = 0x01234567;
#[test]
fn test_chacha_quarter_round() {
let mut data = [0u32; 16];
data[0] = 0x11111111;
data[1] = 0x01020304;
data[2] = 0x9b8d6f43;
data[3] = 0x01234567;
chacha_quarter_round(&mut data, 0, 1, 2, 3);
chacha_quarter_round(&mut data, 0, 1, 2, 3);
assert_eq!(data[0], 0xea2a92f4);
assert_eq!(data[1], 0xcb1cf8ce);
assert_eq!(data[2], 0x4581472e);
assert_eq!(data[3], 0x5881c4bb);
assert_eq!(data[0], 0xea2a92f4);
assert_eq!(data[1], 0xcb1cf8ce);
assert_eq!(data[2], 0x4581472e);
assert_eq!(data[3], 0x5881c4bb);
}
}
#[bench]
fn bench_make_chacha_block(b: &mut Bencher) {
b.iter(|| {
black_box(make_chacha_block(&[1u32; 8], 0, [0; 3]))
})
}
#[bench]
fn bench_chacha_rounds(b: &mut Bencher) {
let data = [69u32; 16];
b.iter(|| {
black_box(chacha_rounds(data, 20));
})
}
#[bench]
fn bench_chacha_operation(b: &mut Bencher) {
// somewhat random data
let data = few_u32_to_many_u8(&chacha_rounds([69u32; 16], 20));
let key = &[0u8; 32];
b.iter(|| {
black_box(do_chacha(data.as_slice(), key, [0; 3], 0, 20));
})
}
*/