Vendor dependencies

This commit is contained in:
2026-08-01 16:11:49 +03:00
parent 7f139a0241
commit 6b5e7f0f8b
29706 changed files with 9575646 additions and 0 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+82
View File
@@ -0,0 +1,82 @@
//! Test vectors.
macro_rules! new_test {
($name:ident, $digest:ty $(,)?) => {
new_test!($name, $digest, digest::dev::MacTruncSide::None);
};
($name:ident, $digest:ty, trunc_left $(,)?) => {
new_test!($name, $digest, digest::dev::MacTruncSide::Left);
};
($name:ident, $digest:ty, $trunc:expr $(,)?) => {
#[test]
fn $name() {
use digest::dev::{MacTestVector, mac_test, reset_mac_test};
digest::dev::blobby::parse_into_structs!(
include_bytes!(concat!("data/", stringify!($name), ".blb"));
static TEST_VECTORS: &[MacTestVector { key, input, tag }];
);
type Hmac = hmac::Hmac<$digest>;
type HmacReset = hmac::HmacReset<$digest>;
type SimpleHmac = hmac::SimpleHmac<$digest>;
type SimpleHmacReset = hmac::SimpleHmacReset<$digest>;
for (i, tv) in TEST_VECTORS.iter().enumerate() {
if let Err(reason) = mac_test::<Hmac>(tv, $trunc) {
panic!(
"\n\
Failed `Hmac` test #{i}\n\
reason:\t{reason:?}\n\
test vector:\t{tv:?}\n"
);
}
if let Err(reason) = reset_mac_test::<HmacReset>(tv, $trunc) {
panic!(
"\n\
Failed `HmacReset` test #{i}\n\
reason:\t{reason:?}\n\
test vector:\t{tv:?}\n"
);
}
if let Err(reason) = mac_test::<SimpleHmac>(tv, $trunc) {
panic!(
"\n\
Failed `SimpleHmac` test #{i}\n\
reason:\t{reason:?}\n\
test vector:\t{tv:?}\n"
);
}
if let Err(reason) = reset_mac_test::<SimpleHmacReset>(tv, $trunc) {
panic!(
"\n\
Failed `SimpleHmacReset` test #{i}\n\
reason:\t{reason:?}\n\
test vector:\t{tv:?}\n"
);
}
}
}
};
}
// Test vectors from RFC 2104, plus Wikipedia test
new_test!(hmac_md5_rfc2104, md5::Md5);
// Test vectors from RFC 4231
new_test!(hmac_sha224_rfc4231, sha2::Sha224);
new_test!(hmac_sha256_rfc4231, sha2::Sha256);
new_test!(hmac_sha384_rfc4231, sha2::Sha384);
new_test!(hmac_sha512_rfc4231, sha2::Sha512);
// Test vectors from R 50.1.113-2016:
// https://tc26.ru/standard/rs/Р%2050.1.113-2016.pdf
new_test!(hmac_streebog256_gost, streebog::Streebog256);
new_test!(hmac_streebog512_gost, streebog::Streebog512);
// Tests from Project Wycheproof:
// https://github.com/google/wycheproof
new_test!(hmac_sha1_wycheproof, sha1::Sha1, trunc_left);
new_test!(hmac_sha256_wycheproof, sha2::Sha256, trunc_left);
new_test!(hmac_sha384_wycheproof, sha2::Sha384, trunc_left);
new_test!(hmac_sha512_wycheproof, sha2::Sha512, trunc_left);