#[cfg(not(feature = "reset"))] use digest::new_mac_test as test; #[cfg(feature = "reset")] use digest::new_resettable_mac_test as test; use hmac::{Hmac, HmacCore, SimpleHmac}; use sha1::Sha1; use sha2::{Sha224, Sha256, Sha384, Sha512}; use streebog::{Streebog256, Streebog512}; #[test] fn test_debug_impls() { fn needs_debug() {} needs_debug::>(); needs_debug::>(); needs_debug::>(); } // Test vectors from RFC 2104, plus wiki test test!(hmac_md5_rfc2104, "md5", Hmac); test!(hmac_md5_rfc2104_simple, "md5", SimpleHmac); // Test vectors from RFC 4231 test!(hmac_sha224_rfc4231, "sha224", Hmac); test!(hmac_sha256_rfc4231, "sha256", Hmac); test!(hmac_sha384_rfc4231, "sha384", Hmac); test!(hmac_sha512_rfc4231, "sha512", Hmac); test!(hmac_sha224_rfc4231_simple, "sha224", SimpleHmac); test!(hmac_sha256_rfc4231_simple, "sha256", SimpleHmac); test!(hmac_sha384_rfc4231_simple, "sha384", SimpleHmac); test!(hmac_sha512_rfc4231_simple, "sha512", SimpleHmac); // Test vectors from R 50.1.113-2016: // https://tc26.ru/standard/rs/Р 50.1.113-2016.pdf test!(hmac_streebog256, "streebog256", Hmac); test!(hmac_streebog512, "streebog512", Hmac); test!( hmac_streebog256_simple, "streebog256", SimpleHmac ); test!( hmac_streebog512_simple, "streebog512", SimpleHmac ); // Tests from Project Wycheproof: // https://github.com/google/wycheproof test!( hmac_sha1_wycheproof, "wycheproof-sha1", Hmac, trunc_left, ); test!( hmac_sha256_wycheproof, "wycheproof-sha256", Hmac, trunc_left, ); test!( hmac_sha384_wycheproof, "wycheproof-sha384", Hmac, trunc_left, ); test!( hmac_sha512_wycheproof, "wycheproof-sha512", Hmac, trunc_left, ); test!( hmac_sha1_wycheproof_simple, "wycheproof-sha1", SimpleHmac, trunc_left, ); test!( hmac_sha256_wycheproof_simple, "wycheproof-sha256", SimpleHmac, trunc_left, ); test!( hmac_sha384_wycheproof_simple, "wycheproof-sha384", SimpleHmac, trunc_left, ); test!( hmac_sha512_wycheproof_simple, "wycheproof-sha512", SimpleHmac, trunc_left, );