Skip to content

Commit

Permalink
Add Customized trait for CSHAKE. Use new customized in tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
sylvainpelissier committed Apr 28, 2024
1 parent 1f79203 commit 631569c
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 21 deletions.
2 changes: 1 addition & 1 deletion sha3/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#![forbid(unsafe_code)]
#![warn(missing_docs, rust_2018_idioms)]

pub use digest::{self, Digest};
pub use digest::{self, Digest, CustomizedInit};

use core::fmt;
use digest::{
Expand Down
15 changes: 15 additions & 0 deletions sha3/src/macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -613,5 +613,20 @@ macro_rules! impl_cshake {

#[cfg(feature = "zeroize")]
impl ZeroizeOnDrop for $reader {}

impl CustomizedInit for $name {
type CustomizedExtArg<'a> = (&'a[u8], &'a[u8]);

#[inline]
fn new_customized(customization: &[u8]) -> Self {
Self::new(customization)
}

#[inline]
fn new_ext_customized<'a>(customization_ext: &Self::CustomizedExtArg<'a>) -> Self {
let (function_name, customization) = customization_ext;
Self::new_with_function_name(function_name, customization)
}
}
};
}
26 changes: 6 additions & 20 deletions sha3/tests/cshake.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,17 +88,17 @@ where
}

macro_rules! new_cshake_test {
($name:ident, $test_name:expr, $hasher:ty, $hasher_core:ty, $test_func:ident $(,)?) => {
($name:ident, $test_name:expr, $hasher:ty, $test_func:ident $(,)?) => {
#[test]
fn $name() {
use digest::dev::blobby::Blob3Iterator;
let data = include_bytes!(concat!("data/", $test_name, ".blb"));

for (i, row) in Blob3Iterator::new(data).unwrap().enumerate() {
let [customization, input, output] = row.unwrap();
if let Some(desc) = $test_func(input, output, || {
<$hasher>::from_core(<$hasher_core>::new(customization))
}) {
if let Some(desc) =
$test_func(input, output, || <$hasher>::new_customized(customization))
{
panic!(
"\n\
Failed test №{}: {}\n\
Expand All @@ -117,29 +117,15 @@ new_cshake_test!(
cshake128_reset,
"cshake128",
sha3::CShake128,
sha3::CShake128Core,
cshake_reset_test
);
#[cfg(feature = "reset")]
new_cshake_test!(
cshake256_reset,
"cshake256",
sha3::CShake256,
sha3::CShake256Core,
cshake_reset_test
);

new_cshake_test!(
cshake128,
"cshake128",
sha3::CShake128,
sha3::CShake128Core,
cshake_test
);
new_cshake_test!(
cshake256,
"cshake256",
sha3::CShake256,
sha3::CShake256Core,
cshake_test
);
new_cshake_test!(cshake128, "cshake128", sha3::CShake128, cshake_test);
new_cshake_test!(cshake256, "cshake256", sha3::CShake256, cshake_test);

0 comments on commit 631569c

Please sign in to comment.