From ac5f0bcfd4339f47d8aa3415e0df897aba076a1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9F=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=20=5BArtyom=20Pavlov=5D?= Date: Mon, 30 Mar 2026 00:37:46 +0300 Subject: [PATCH 1/2] Migrate tests to the new blobby format --- .../data/{belt-mac.blb => belt_mac_stb.blb} | Bin 117 -> 118 bytes belt-mac/tests/mod.rs | 9 +- cmac/tests/cavp_large.rs | 22 ++-- cmac/tests/data/aes192.blb | Bin 203 -> 0 bytes cmac/tests/data/aes256.blb | Bin 211 -> 0 bytes .../{cavp_aes128.blb => cmac_aes128_cavp.blb} | Bin 4169 -> 4171 bytes ...8_large.blb => cmac_aes128_cavp_large.blb} | Bin 1049065 -> 1049066 bytes .../data/{aes128.blb => cmac_aes128_nist.blb} | Bin 195 -> 196 bytes ...-aes128.blb => cmac_aes128_wycheproof.blb} | Bin 910 -> 911 bytes .../{cavp_aes192.blb => cmac_aes192_cavp.blb} | Bin 11475 -> 11477 bytes cmac/tests/data/cmac_aes192_nist.blb | Bin 0 -> 204 bytes ...-aes192.blb => cmac_aes192_wycheproof.blb} | Bin 1070 -> 1071 bytes .../{cavp_aes256.blb => cmac_aes256_cavp.blb} | Bin 6273 -> 6275 bytes cmac/tests/data/cmac_aes256_nist.blb | Bin 0 -> 212 bytes ...-aes256.blb => cmac_aes256_wycheproof.blb} | Bin 1230 -> 1231 bytes cmac/tests/data/cmac_kuznyechik_gost.blb | Bin 0 -> 118 bytes cmac/tests/data/cmac_magma_gost.blb | Bin 0 -> 77 bytes .../{cavp_tdes2.blb => cmac_tdes2_cavp.blb} | Bin 3393 -> 3395 bytes .../{cavp_tdes3.blb => cmac_tdes3_cavp.blb} | Bin 4913 -> 4915 bytes cmac/tests/data/kuznyechik.blb | Bin 117 -> 0 bytes cmac/tests/data/magma.blb | Bin 76 -> 0 bytes cmac/tests/mod.rs | 42 +++---- .../data/{md5.blb => hmac_md5_rfc2104.blb} | Bin 245 -> 246 bytes ...roof-sha1.blb => hmac_sha1_wycheproof.blb} | Bin 4875 -> 4877 bytes .../{sha224.blb => hmac_sha224_rfc4231.blb} | Bin 803 -> 804 bytes .../{sha256.blb => hmac_sha256_rfc4231.blb} | Bin 831 -> 832 bytes ...-sha256.blb => hmac_sha256_wycheproof.blb} | Bin 6153 -> 6155 bytes .../{sha384.blb => hmac_sha384_rfc4231.blb} | Bin 943 -> 944 bytes ...-sha384.blb => hmac_sha384_wycheproof.blb} | Bin 7857 -> 7859 bytes .../{sha512.blb => hmac_sha512_rfc4231.blb} | Bin 1062 -> 1063 bytes ...-sha512.blb => hmac_sha512_wycheproof.blb} | Bin 9648 -> 9650 bytes ...eebog256.blb => hmac_streebog256_gost.blb} | Bin 84 -> 85 bytes ...eebog512.blb => hmac_streebog512_gost.blb} | Bin 117 -> 118 bytes hmac/tests/mod.rs | 113 +++++++++++------- .../data/{aes128.blb => pmac_aes128.blb} | Bin 1241 -> 1242 bytes .../data/{aes192.blb => pmac_aes192.blb} | Bin 1265 -> 1266 bytes .../data/{aes256.blb => pmac_aes256.blb} | Bin 1241 -> 1242 bytes pmac/tests/mod.rs | 16 ++- 38 files changed, 110 insertions(+), 92 deletions(-) rename belt-mac/tests/data/{belt-mac.blb => belt_mac_stb.blb} (64%) delete mode 100644 cmac/tests/data/aes192.blb delete mode 100644 cmac/tests/data/aes256.blb rename cmac/tests/data/{cavp_aes128.blb => cmac_aes128_cavp.blb} (98%) rename cmac/tests/data/{cavp_aes128_large.blb => cmac_aes128_cavp_large.blb} (99%) rename cmac/tests/data/{aes128.blb => cmac_aes128_nist.blb} (69%) rename cmac/tests/data/{wycheproof-aes128.blb => cmac_aes128_wycheproof.blb} (77%) rename cmac/tests/data/{cavp_aes192.blb => cmac_aes192_cavp.blb} (97%) create mode 100644 cmac/tests/data/cmac_aes192_nist.blb rename cmac/tests/data/{wycheproof-aes192.blb => cmac_aes192_wycheproof.blb} (86%) rename cmac/tests/data/{cavp_aes256.blb => cmac_aes256_cavp.blb} (99%) create mode 100644 cmac/tests/data/cmac_aes256_nist.blb rename cmac/tests/data/{wycheproof-aes256.blb => cmac_aes256_wycheproof.blb} (75%) create mode 100644 cmac/tests/data/cmac_kuznyechik_gost.blb create mode 100644 cmac/tests/data/cmac_magma_gost.blb rename cmac/tests/data/{cavp_tdes2.blb => cmac_tdes2_cavp.blb} (99%) rename cmac/tests/data/{cavp_tdes3.blb => cmac_tdes3_cavp.blb} (99%) delete mode 100644 cmac/tests/data/kuznyechik.blb delete mode 100644 cmac/tests/data/magma.blb rename hmac/tests/data/{md5.blb => hmac_md5_rfc2104.blb} (62%) rename hmac/tests/data/{wycheproof-sha1.blb => hmac_sha1_wycheproof.blb} (94%) rename hmac/tests/data/{sha224.blb => hmac_sha224_rfc4231.blb} (62%) rename hmac/tests/data/{sha256.blb => hmac_sha256_rfc4231.blb} (61%) rename hmac/tests/data/{wycheproof-sha256.blb => hmac_sha256_wycheproof.blb} (93%) rename hmac/tests/data/{sha384.blb => hmac_sha384_rfc4231.blb} (66%) rename hmac/tests/data/{wycheproof-sha384.blb => hmac_sha384_wycheproof.blb} (97%) rename hmac/tests/data/{sha512.blb => hmac_sha512_rfc4231.blb} (75%) rename hmac/tests/data/{wycheproof-sha512.blb => hmac_sha512_wycheproof.blb} (99%) rename hmac/tests/data/{streebog256.blb => hmac_streebog256_gost.blb} (83%) rename hmac/tests/data/{streebog512.blb => hmac_streebog512_gost.blb} (88%) rename pmac/tests/data/{aes128.blb => pmac_aes128.blb} (98%) rename pmac/tests/data/{aes192.blb => pmac_aes192.blb} (98%) rename pmac/tests/data/{aes256.blb => pmac_aes256.blb} (98%) diff --git a/belt-mac/tests/data/belt-mac.blb b/belt-mac/tests/data/belt_mac_stb.blb similarity index 64% rename from belt-mac/tests/data/belt-mac.blb rename to belt-mac/tests/data/belt_mac_stb.blb index 7544b305b126aa27886c9f1a9ccd620c4abe5d40..05933302554aac8d4fc16836eee438917ebb6e26 100644 GIT binary patch delta 6 NcmXRdV`Q693IGPZ0r&s_ delta 5 McmXRboyb@U00vP3^8f$< diff --git a/belt-mac/tests/mod.rs b/belt-mac/tests/mod.rs index 3fa317d5..1d9042de 100644 --- a/belt-mac/tests/mod.rs +++ b/belt-mac/tests/mod.rs @@ -1,6 +1,7 @@ -//! Test vectors. +//! Test vectors from STB 34.101.31-2020: +//! https://apmi.bsu.by/assets/files/std/belt-spec371.pdf -//use belt_mac::BeltMac; +use belt_mac::BeltMac; +use digest::dev::reset_mac_test; -// TODO(tarcieri): update tests to support RustCrypto/traits#1916 -// digest::new_resettable_mac_test!(belt_mac_stb, "belt-mac", BeltMac, "left"); +digest::new_mac_test!(belt_mac_stb, BeltMac, reset_mac_test, trunc_left); diff --git a/cmac/tests/cavp_large.rs b/cmac/tests/cavp_large.rs index 6b0e9901..f151bdb2 100644 --- a/cmac/tests/cavp_large.rs +++ b/cmac/tests/cavp_large.rs @@ -1,15 +1,15 @@ //! Tests from CAVP (excluding all 64 KiB vectors for AES-128 except the first one): //! +//! +//! Test vectors in this file use 64 KiB of data, so they are excluded from published packages. -// use aes::Aes128; -// use cmac::Cmac; +use aes::Aes128; +use cmac::Cmac; +use digest::dev::reset_mac_test; -// -// Test vectors in this file use 64 KiB of data, so they are excluded from published packages. -// TODO(tarcieri): update tests to support RustCrypto/traits#1916 -// digest::new_resettable_mac_test!( -// cmac_aes128_cavp, -// "cavp_aes128_large", -// Cmac, -// trunc_left -// ); +digest::new_mac_test!( + cmac_aes128_cavp_large, + Cmac, + reset_mac_test, + trunc_left, +); diff --git a/cmac/tests/data/aes192.blb b/cmac/tests/data/aes192.blb deleted file mode 100644 index 09ee9d48bcdd24432ad449f98954c9cbd0d07a0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203 zcmZRS=qujv{T5$J& zboDzN6;r&JY~&wUug#sz*ua2IogDL;IrFyXuW?=97ie%o#%*!T6Tzpy4@ydL1-<_^ lU&Zyl|7`KK+K$!Fa?Ax39?n#p5HdgSYG#%WYmQ-v008gQSLpx% diff --git a/cmac/tests/data/cavp_aes128.blb b/cmac/tests/data/cmac_aes128_cavp.blb similarity index 98% rename from cmac/tests/data/cavp_aes128.blb rename to cmac/tests/data/cmac_aes128_cavp.blb index 07b511d57b56b3e958d1fb4e855d346388203140..2e1c2d8fb0422f88dcd2874e2c15b5dddf7b9664 100644 GIT binary patch delta 10 RcmX@9a9V+>p diff --git a/cmac/tests/data/cavp_aes128_large.blb b/cmac/tests/data/cmac_aes128_cavp_large.blb similarity index 99% rename from cmac/tests/data/cavp_aes128_large.blb rename to cmac/tests/data/cmac_aes128_cavp_large.blb index 669606f91905b259e4da83dfbcab42ab17d56c98..78f6d50eb3d9cdf92b2353d2ecca4fb7cd799161 100644 GIT binary patch delta 43 ycmaFa?C`4DfzhC$g|UUHg}H^Lg|&sPg}sHNg|mgLg}a5Pg|~&Tg@22{OGW@kzzyvH delta 58 zcmWN`&)N+WDxW6(cy%dAC%c-FLE&QUeYdr%&OS9fb)@-T)#P+W zh3td-9_cyEpZ3zWPOx~gxR%1analSZJ{Oq4mh>$yu_myEQ3GAcI^C{t1>4etQ{GNv zXK`8itM0hNn;(n~4A|7kF|V03Z+re4*Y$mY1}9|P7RNjheER#Kq!d@s`)~7AT<`nO g7GJCFSp6)=TtH#r)%$#JEBPyZ%Oj>mex4-=0Em!ZB>(^b literal 0 HcmV?d00001 diff --git a/cmac/tests/data/wycheproof-aes192.blb b/cmac/tests/data/cmac_aes192_wycheproof.blb similarity index 86% rename from cmac/tests/data/wycheproof-aes192.blb rename to cmac/tests/data/cmac_aes192_wycheproof.blb index cb216246ec49d71ea3de12aa4e9c59d090ab5704..e61a5ba7f41ff87d0d41273a1b969f7df63e01d1 100644 GIT binary patch delta 9 QcmZ3-v7Up`W`iCJ01m|hjQ{`u delta 8 PcmZ3_v5sRSqaF(Y4I2Vd diff --git a/cmac/tests/data/cavp_aes256.blb b/cmac/tests/data/cmac_aes256_cavp.blb similarity index 99% rename from cmac/tests/data/cavp_aes256.blb rename to cmac/tests/data/cmac_aes256_cavp.blb index bd51d829280aaac645ffaae2656de1b1725d76ae..f7d92c48b598fd74d8c6d9fd9deb9da5e1f11d3c 100644 GIT binary patch delta 10 RcmZoPY&K+SRM^lc0RR$r15*G1 delta 8 PcmZoRY&6`+)F=S}4ORlP diff --git a/cmac/tests/data/cmac_aes256_nist.blb b/cmac/tests/data/cmac_aes256_nist.blb new file mode 100644 index 0000000000000000000000000000000000000000..6c69080f0170f1698f6015f8bf85cbf88273a47f GIT binary patch literal 212 zcmd;KR7kLWEg*WTaG!SZx(}_j<&E;DI_%bo9M^Sc2rT9lx&MWcL4m0=>6>)*k9mKx zL*?DlZ#FY3WFOr3NY7#Zw3oJZg2j`?wG=d#GugZ9^*8PH{?yxJemI6v16|2F-L7y2 z(RB4Y92HZ%m~7-9Sg*~U%-FzyO`RO`nmO~f=dW>H-xp|bLdI=z%oD+-xJvTJ(h>a*_~U=j@f-`zd4d)3Si nm;hMkyZ>BJjW8|)#2h$RP{BCgS2H2<_ha9Co1@K3=A;7vUU)Up literal 0 HcmV?d00001 diff --git a/cmac/tests/data/cmac_magma_gost.blb b/cmac/tests/data/cmac_magma_gost.blb new file mode 100644 index 0000000000000000000000000000000000000000..7bdb6ac81f294b3e15badb93f7be08b82cd331bc GIT binary patch literal 77 zcmV-T0J8rB06_ol-ORhHnTU60RYWr)5diS<^7Hid_V@Vt`uqI-{{KLd-tcQY6AD?| jRL2DP7@Z(WnENhgr~*uh5oby$k2QDK84F8~z$16lw8 delta 8 PcmX>sbx>*}lOrzx4>tn3 diff --git a/cmac/tests/data/cavp_tdes3.blb b/cmac/tests/data/cmac_tdes3_cavp.blb similarity index 99% rename from cmac/tests/data/cavp_tdes3.blb rename to cmac/tests/data/cmac_tdes3_cavp.blb index 5f4430506d0a74dbad050e77460ec48178df28a1..60deaa6c77987f197095ba5829d3afe64e6559ff 100644 GIT binary patch delta 10 Rcmdm}wpop-QDK9jFaQ*S14sY> delta 8 Pcmdn2woz>(lc6vG4$T6n diff --git a/cmac/tests/data/kuznyechik.blb b/cmac/tests/data/kuznyechik.blb deleted file mode 100644 index 660fba2841716fd9468822beefa58f594eb48a09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117 zcmZQ@=$N@`_nEuz{xb+F8M}n0mH)f5Yerd!kpQEzYkKGEv+o;V5)A*}-958=)yxi< m09fa{|6EXwFfIec95`1{!8qSnGa>T#W8Zt5qs>d^qyqq56*bNP diff --git a/cmac/tests/data/magma.blb b/cmac/tests/data/magma.blb deleted file mode 100644 index c787d909b6f7ac7e8bdd24c99aa040376dbb1bca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76 zcmV-S0JHx9K>zOD%)6?Yh<9dHL^C200Pykh^Yr!h_xSnx`~3a>|3H%7@M}C13R&A! i#{~Eooghk>`z~jw0!)b#K${n}enAiwPI3?+FvYva;wWPP diff --git a/cmac/tests/mod.rs b/cmac/tests/mod.rs index bfc9021d..11e0e669 100644 --- a/cmac/tests/mod.rs +++ b/cmac/tests/mod.rs @@ -1,37 +1,33 @@ //! Test vectors. -// use aes::{Aes128, Aes192, Aes256}; -// use cmac::Cmac; -// use des::{TdesEde2, TdesEde3}; -// use digest::new_resettable_mac_test; -// use kuznyechik::Kuznyechik; -// use magma::Magma; +use aes::{Aes128, Aes192, Aes256}; +use cmac::Cmac; +use des::{TdesEde2, TdesEde3}; +use digest::{dev::reset_mac_test, new_mac_test}; +use kuznyechik::Kuznyechik; +use magma::Magma; // Tests from NIST SP 800-38B: // https://csrc.nist.gov/projects/cryptographic-standards-and-guidelines/ -// TODO(tarcieri): update tests to support RustCrypto/traits#1916 -// new_resettable_mac_test!(cmac_aes128_nist, "aes128", Cmac); -// new_resettable_mac_test!(cmac_aes192_nist, "aes192", Cmac); -// new_resettable_mac_test!(cmac_aes256_nist, "aes256", Cmac); +new_mac_test!(cmac_aes128_nist, Cmac, reset_mac_test); +new_mac_test!(cmac_aes192_nist, Cmac, reset_mac_test); +new_mac_test!(cmac_aes256_nist, Cmac, reset_mac_test); // Tests from CAVP (excluding all 64 KiB vectors for AES-128 except the first one): // https://csrc.nist.gov/Projects/Cryptographic-Algorithm-Validation-Program/CAVP-TESTING-BLOCK-CIPHER-MODES -// TODO(tarcieri): update tests to support RustCrypto/traits#1916 -// new_resettable_mac_test!(cmac_aes128_cavp, "cavp_aes128", Cmac, trunc_left); -// new_resettable_mac_test!(cmac_aes192_cavp, "cavp_aes192", Cmac, trunc_left); -// new_resettable_mac_test!(cmac_aes256_cavp, "cavp_aes256", Cmac, trunc_left); -// new_resettable_mac_test!(cmac_tdes2_cavp, "cavp_tdes2", Cmac, trunc_left); -// new_resettable_mac_test!(cmac_tdes3_cavp, "cavp_tdes3", Cmac, trunc_left); +new_mac_test!(cmac_aes128_cavp, Cmac, reset_mac_test, trunc_left); +new_mac_test!(cmac_aes192_cavp, Cmac, reset_mac_test, trunc_left); +new_mac_test!(cmac_aes256_cavp, Cmac, reset_mac_test, trunc_left); +new_mac_test!(cmac_tdes2_cavp, Cmac, reset_mac_test, trunc_left); +new_mac_test!(cmac_tdes3_cavp, Cmac, reset_mac_test, trunc_left); // Tests from Project Wycheproof: // https://github.com/google/wycheproof -// TODO(tarcieri): update tests to support RustCrypto/traits#1916 -// new_resettable_mac_test!(cmac_aes128_wycheproof, "wycheproof-aes128", Cmac); -// new_resettable_mac_test!(cmac_aes192_wycheproof, "wycheproof-aes192", Cmac); -// new_resettable_mac_test!(cmac_aes256_wycheproof, "wycheproof-aes256", Cmac); +new_mac_test!(cmac_aes128_wycheproof, Cmac, reset_mac_test); +new_mac_test!(cmac_aes192_wycheproof, Cmac, reset_mac_test); +new_mac_test!(cmac_aes256_wycheproof, Cmac, reset_mac_test); // Test from GOST R 34.13-2015: // https://tc26.ru/standard/gost/GOST_R_3413-2015.pdf -// TODO(tarcieri): update tests to support RustCrypto/traits#1916 -// new_resettable_mac_test!(cmac_kuznyechik_gost, "kuznyechik", Cmac); -// new_resettable_mac_test!(cmac_magma_gost, "magma", Cmac); +new_mac_test!(cmac_kuznyechik_gost, Cmac, reset_mac_test); +new_mac_test!(cmac_magma_gost, Cmac, reset_mac_test); diff --git a/hmac/tests/data/md5.blb b/hmac/tests/data/hmac_md5_rfc2104.blb similarity index 62% rename from hmac/tests/data/md5.blb rename to hmac/tests/data/hmac_md5_rfc2104.blb index 731a0ae4dd9795d4f216caea146d157ee0b30cc2..967b59f938d194425ea041b10827031069407315 100644 GIT binary patch delta 8 Pcmey$_>GZ~XTnzi54{6` delta 7 Ocmeyy_?2-Y<5vIs4cFaNEEw3;+@x0{Z{} delta 8 PcmeBG>sH&y#4QW}3~d57 diff --git a/hmac/tests/data/sha224.blb b/hmac/tests/data/hmac_sha224_rfc4231.blb similarity index 62% rename from hmac/tests/data/sha224.blb rename to hmac/tests/data/hmac_sha224_rfc4231.blb index dabb20b3d4a772516517f0b3899844d8c48fa060..1bfa421af10f42a2310f2dcd964dd0482ad0abbf 100644 GIT binary patch delta 9 QcmZ3?wuFsQbb~T801ZY0KmY&$ delta 18 ZcmZ3&wwR5Xv4MG_VA(_k-i_^ZnE)|j1&9Cu diff --git a/hmac/tests/data/sha256.blb b/hmac/tests/data/hmac_sha256_rfc4231.blb similarity index 61% rename from hmac/tests/data/sha256.blb rename to hmac/tests/data/hmac_sha256_rfc4231.blb index 6b5b288e1b310da7c0b1f9f5c57c5ce1ea02b887..66e18163580052018e9df966d81cce7bca406b04 100644 GIT binary patch delta 9 Qcmdnbc7Tmhbb~!J01rL_lmGw# delta 18 ZcmX@Wwx5lev4MG_VA(_k-i_@$nE*9X1>67t diff --git a/hmac/tests/data/wycheproof-sha256.blb b/hmac/tests/data/hmac_sha256_wycheproof.blb similarity index 93% rename from hmac/tests/data/wycheproof-sha256.blb rename to hmac/tests/data/hmac_sha256_wycheproof.blb index 62f1d3570d4f3ae76580e79070534a08575f8275..591b8fd2dee5d07e9a7ede6b5c2242449ad9251f 100644 GIT binary patch delta 10 RcmeA)=r&+#aNEEs0RR%30}cQH delta 8 PcmeA+=rq{K#3=y)49WsY diff --git a/hmac/tests/data/sha384.blb b/hmac/tests/data/hmac_sha384_rfc4231.blb similarity index 66% rename from hmac/tests/data/sha384.blb rename to hmac/tests/data/hmac_sha384_rfc4231.blb index d5cddb3124a3f8c872e6e098c0697f08a4b45078..868b89236c5b390b1f9ca3c6faaeed233f0c50cd 100644 GIT binary patch delta 9 QcmZ3_zJZ-lbi;aP01qqz<^TWy delta 18 ZcmdnMzMh?#v4MG_VA(_k-i_^=%m6Yo1up;q diff --git a/hmac/tests/data/wycheproof-sha384.blb b/hmac/tests/data/hmac_sha384_wycheproof.blb similarity index 97% rename from hmac/tests/data/wycheproof-sha384.blb rename to hmac/tests/data/hmac_sha384_wycheproof.blb index 69a787437553300cf439bce35bc32175172fd0d1..1b24e76242084db5ab7f9a8a8dd382fadc0355a9 100644 GIT binary patch delta 10 RcmdmJyV;hh!EM7vIRF=s1SS9g delta 8 PcmdmNyU}(d(?&S}5bOhC diff --git a/hmac/tests/data/sha512.blb b/hmac/tests/data/hmac_sha512_rfc4231.blb similarity index 75% rename from hmac/tests/data/sha512.blb rename to hmac/tests/data/hmac_sha512_rfc4231.blb index b79ae49feec002ba0156285b15ee69c30d2cfb80..c278f9e3cb6cbadff4ce9f345cfeaf28ca665978 100644 GIT binary patch delta 9 QcmZ3+v7CcZbb}fT01cS}P5=M^ delta 18 ZcmZ3^v5bS6v4MG_VA(_k-i_@Gm;o{m1(pB+ diff --git a/hmac/tests/data/wycheproof-sha512.blb b/hmac/tests/data/hmac_sha512_wycheproof.blb similarity index 99% rename from hmac/tests/data/wycheproof-sha512.blb rename to hmac/tests/data/hmac_sha512_wycheproof.blb index e061fd554b2d1498f59912cfbe7b86b16af051d1..f2e3790b71e484cb152ee5774b07a461e81cd5cb 100644 GIT binary patch delta 10 Rcmdnsy~&%Y!EM6^RR9=c1V#V= delta 8 Pcmdnwy}^4U(*{)l5sL$X diff --git a/hmac/tests/data/streebog256.blb b/hmac/tests/data/hmac_streebog256_gost.blb similarity index 83% rename from hmac/tests/data/streebog256.blb rename to hmac/tests/data/hmac_streebog256_gost.blb index 99d972294164965bf9419fc56433218b5de26b1f..4cec3d551757dccb06bd20144c2bc8f269fa5502 100644 GIT binary patch delta 6 NcmWFuWn`WZ0ssXl0g?a! delta 5 McmWFynaCId00jpDkN^Mx diff --git a/hmac/tests/data/streebog512.blb b/hmac/tests/data/hmac_streebog512_gost.blb similarity index 88% rename from hmac/tests/data/streebog512.blb rename to hmac/tests/data/hmac_streebog512_gost.blb index 8f0f151fca255a5a7e2657727aa043a7b5835f21..ef212f08b96c456ea590a08a62bc37c209afbefd 100644 GIT binary patch delta 6 NcmXRdV`QFC3IGPQ0rda? delta 5 McmXRboyb@U00vP3^8f$< diff --git a/hmac/tests/mod.rs b/hmac/tests/mod.rs index 58f1b51f..d81bc7ec 100644 --- a/hmac/tests/mod.rs +++ b/hmac/tests/mod.rs @@ -1,59 +1,82 @@ //! Test vectors. -macro_rules! test { - ($mod_name:ident, $test_name:expr, $hash:ty $(, $t:ident)?) => { - mod $mod_name { - // TODO(tarcieri): update tests to support RustCrypto/traits#1916 - // digest::new_mac_test!(hmac, $test_name, hmac::Hmac<$hash> $(, $t)?); - // digest::new_mac_test!(simple_hmac, $test_name, hmac::SimpleHmac<$hash> $(, $t)?); - // digest::new_resettable_mac_test!( - // hmac_reset, - // $test_name, - // hmac::HmacReset<$hash> - // $(, $t)? - // ); - // digest::new_resettable_mac_test!( - // simple_reset_hmac, - // $test_name, - // hmac::SimpleHmacReset<$hash> - // $(, $t)? - // ); +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::(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::(tv, $trunc) { + panic!( + "\n\ + Failed `HmacReset` test #{i}\n\ + reason:\t{reason:?}\n\ + test vector:\t{tv:?}\n" + ); + } + if let Err(reason) = mac_test::(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::(tv, $trunc) { + panic!( + "\n\ + Failed `SimpleHmacReset` test #{i}\n\ + reason:\t{reason:?}\n\ + test vector:\t{tv:?}\n" + ); + } + } } }; } -// Test vectors from RFC 2104, plus wiki test -test!(md5_rfc2104, "md5", md5::Md5); +// Test vectors from RFC 2104, plus Wikipedia test +new_test!(hmac_md5_rfc2104, md5::Md5); // Test vectors from RFC 4231 -test!(sha224_rfc4231, "sha224", sha2::Sha224); -test!(sha256_rfc4231, "sha256", sha2::Sha256); -test!(sha384_rfc4231, "sha384", sha2::Sha384); -test!(sha512_rfc4231, "sha512", sha2::Sha512); +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 -test!(treebog256, "streebog256", streebog::Streebog256); -test!(streebog512, "streebog512", streebog::Streebog512); +new_test!(hmac_streebog256_gost, streebog::Streebog256); +new_test!(hmac_streebog512_gost, streebog::Streebog512); // Tests from Project Wycheproof: // https://github.com/google/wycheproof -test!(sha1_wycheproof, "wycheproof-sha1", sha1::Sha1, trunc_left); -test!( - sha256_wycheproof, - "wycheproof-sha256", - sha2::Sha256, - trunc_left -); -test!( - sha384_wycheproof, - "wycheproof-sha384", - sha2::Sha384, - trunc_left -); -test!( - sha512_wycheproof, - "wycheproof-sha512", - sha2::Sha512, - trunc_left -); +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); diff --git a/pmac/tests/data/aes128.blb b/pmac/tests/data/pmac_aes128.blb similarity index 98% rename from pmac/tests/data/aes128.blb rename to pmac/tests/data/pmac_aes128.blb index 0c9bc77293bc06b6daabc179b809a0c14ab52650..dd8dbe1d2f82d176029d417ccb0074f044582761 100644 GIT binary patch delta 9 Qcmcb~d5e=#bi+*+01`a|X#fBK delta 8 Pcmcb`d6RP^<4qO-5Z41$ diff --git a/pmac/tests/data/aes192.blb b/pmac/tests/data/pmac_aes192.blb similarity index 98% rename from pmac/tests/data/aes192.blb rename to pmac/tests/data/pmac_aes192.blb index 5add08dc5494bf076c1655c10516b28a247e10e9..d72869d6b83f4d4f042611f161d584e12c5dd4da 100644 GIT binary patch delta 9 Qcmey!`H7QJbi+p$02A#4u>b%7 delta 14 Vcmeyw`H_=}QDWi*iH*|NSpX*C1n~d> diff --git a/pmac/tests/data/aes256.blb b/pmac/tests/data/pmac_aes256.blb similarity index 98% rename from pmac/tests/data/aes256.blb rename to pmac/tests/data/pmac_aes256.blb index 77a88645bcd41e6e016f8b40e03c33aa3cafc50a..76420500146dd50d2da6e745eb1f497a564462ba 100644 GIT binary patch delta 9 Qcmcb~d5e=#bi+*+01`a|X#fBK delta 17 Zcmcb`d6ScgQDI`C$i)3T8*1?m6* diff --git a/pmac/tests/mod.rs b/pmac/tests/mod.rs index e2f25c41..477d33c8 100644 --- a/pmac/tests/mod.rs +++ b/pmac/tests/mod.rs @@ -1,11 +1,9 @@ -//! Test vectors. +//! Test vectors from: http://web.cs.ucdavis.edu/~rogaway/ocb/pmac-test.htm -// use aes::{Aes128, Aes192, Aes256}; -// use digest::new_resettable_mac_test; -// use pmac::Pmac; +use aes::{Aes128, Aes192, Aes256}; +use digest::{dev::reset_mac_test, new_mac_test}; +use pmac::Pmac; -// Test vectors from: http://web.cs.ucdavis.edu/~rogaway/ocb/pmac-test.htm -// TODO(tarcieri): update tests to support RustCrypto/traits#1916 -// new_resettable_mac_test!(pmac_aes128, "aes128", Pmac); -// new_resettable_mac_test!(pmac_aes192, "aes192", Pmac); -// new_resettable_mac_test!(pmac_aes256, "aes256", Pmac); +new_mac_test!(pmac_aes128, Pmac, reset_mac_test); +new_mac_test!(pmac_aes192, Pmac, reset_mac_test); +new_mac_test!(pmac_aes256, Pmac, reset_mac_test); From d24b49fd233a59fab79f39a9c27cb54f3e63dc66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9F=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=20=5BArtyom=20Pavlov=5D?= Date: Mon, 30 Mar 2026 00:40:52 +0300 Subject: [PATCH 2/2] clippy --- belt-mac/tests/mod.rs | 2 +- pmac/tests/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/belt-mac/tests/mod.rs b/belt-mac/tests/mod.rs index 1d9042de..45fd9bb3 100644 --- a/belt-mac/tests/mod.rs +++ b/belt-mac/tests/mod.rs @@ -1,5 +1,5 @@ //! Test vectors from STB 34.101.31-2020: -//! https://apmi.bsu.by/assets/files/std/belt-spec371.pdf +//! use belt_mac::BeltMac; use digest::dev::reset_mac_test; diff --git a/pmac/tests/mod.rs b/pmac/tests/mod.rs index 477d33c8..4f53f4ce 100644 --- a/pmac/tests/mod.rs +++ b/pmac/tests/mod.rs @@ -1,4 +1,4 @@ -//! Test vectors from: http://web.cs.ucdavis.edu/~rogaway/ocb/pmac-test.htm +//! Test vectors from: use aes::{Aes128, Aes192, Aes256}; use digest::{dev::reset_mac_test, new_mac_test};