Skip to content

Commit

Permalink
clean up sha-512/224 tests
Browse files Browse the repository at this point in the history
  • Loading branch information
cmazakas committed Oct 4, 2024
1 parent 9714d1b commit d78e05a
Showing 1 changed file with 24 additions and 6 deletions.
30 changes: 24 additions & 6 deletions test/sha2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -294,12 +294,30 @@ static void sha_512_224()

// selected samples from the download available here:
// https://csrc.nist.gov/Projects/Cryptographic-Algorithm-Validation-Program/Secure-Hashing
BOOST_TEST_EQ( digest<sha2_512_224>( "\xcf" ), std::string( "4199239e87d47b6feda016802bf367fb6e8b5655eff6225cb2668f4a" ) );
BOOST_TEST_EQ( digest<sha2_512_224>( from_hex( "3c7e038401fa74c6c06e41" ) ), std::string( "a74af68819afe81bcdaceba64201c0d41f843e4b08e4002a375be761" ) );
BOOST_TEST_EQ( digest<sha2_512_224>( from_hex( "cd5fee5fde5e9aa2884b4f4882cfa7d5571f8fd572c5f9bf77a3d21fda35" ) ), std::string( "72b43417b071f4811833027731b0ca28549c0357530fe258ca00533e" ) );
BOOST_TEST_EQ( digest<sha2_512_224>( from_hex( "40bd7d47b636c2a749a247fdda75807c238b" ) ), std::string( "087ed68f1db90ffb2fb4ff7dc4b17fe08100b64383850378ef543339" ) );
BOOST_TEST_EQ( digest<sha2_512_224>( from_hex( "f15284a11c61e129ea0606bd6531f2f1213776e01e253d1def530bed1c3c42b3c68caa" ) ), std::string( "fa425bc732d6033566c073560b2c5fe322aa4fa22aaa3ec51154ffd8" ) );
BOOST_TEST_EQ( digest<sha2_512_224>( from_hex( "13e6b1b4f021d610c81c97f0f952daba2766034d815b5dda4603bcf788ba60ee31541d5b4353b9f6645d96ad99ee90f6524b2963a7b7e476e1e8eeb83cbc0305eb29902a5d72" ) ), std::string( "09900c5ae3074fe73e6c4eef51f785e57947bafbe1d8dea38868e3d1" ) );
std::pair<char const*, char const*> inputs[] =
{
/* expected hash */ /* input message */
{ "4199239e87d47b6feda016802bf367fb6e8b5655eff6225cb2668f4a", "cf" },
{ "392b99b593b85e147f031986c2a9edfdb4ffd9f24c77c452d339c9fc", "ca2d" },
{ "a9c345d58a959af20a42c84e28523ba47e3bf8fad8e8c3f32b7a72ae", "497604" },
{ "a74af68819afe81bcdaceba64201c0d41f843e4b08e4002a375be761", "3c7e038401fa74c6c06e41" },
{ "087ed68f1db90ffb2fb4ff7dc4b17fe08100b64383850378ef543339", "40bd7d47b636c2a749a247fdda75807c238b" },
{ "72b43417b071f4811833027731b0ca28549c0357530fe258ca00533e", "cd5fee5fde5e9aa2884b4f4882cfa7d5571f8fd572c5f9bf77a3d21fda35" },
{ "fa425bc732d6033566c073560b2c5fe322aa4fa22aaa3ec51154ffd8", "f15284a11c61e129ea0606bd6531f2f1213776e01e253d1def530bed1c3c42b3c68caa" },
{ "75a0fa978c45d268124d8cd9ef0a08ecabbbed53412cfc7cb1c00398", "e3089c05ce1549c47a97785d82474c73cb096a27c5205de8ed9e3a8c971f7fa0eab741fd2c29879c40" },
{ "1e7590e408c038b794e9820b25d011c262062b96d111dccc46dc6783", "0431a7bfbbec1bb8116a62e1db7e1346862d31ad5110ff1bb9fa169a35dbb43a24e4575604ec8b18e41300" },
{ "33a5a8d6119bb6dd7b2e72ece8e4d5d02aa99048c0459169ee9e6d04", "4dbe1290524bd73d9db5f21f9d035e183dc285b85ba755057c769777be227c470e3679ea9a7355d889bb8191ea2ea7e2" },
{ "09900c5ae3074fe73e6c4eef51f785e57947bafbe1d8dea38868e3d1", "13e6b1b4f021d610c81c97f0f952daba2766034d815b5dda4603bcf788ba60ee31541d5b4353b9f6645d96ad99ee90f6524b2963a7b7e476e1e8eeb83cbc0305eb29902a5d72" },
{ "9a9176e97aec99ab07f468f6a226876710d6d877021d27061d4d0132", "4b9895235cb4956aefffe815415252e7d6b21921bd7f675315eff071d0bbd429b718c774aee96f6c3a330d5d40d1601e1069c7a2a19ea5ca1e87097da2608ffb4180816e478b42c3c4e9edb748773935eb7ca0df90dec0eb6b960130c1617880efb80b39ae03d617950ace4ce0aca4d36fd3ed0112a77f5d03021eb1b42458" },
{ "72640a79fbb1cfb26e09b4b35385389ed633a55e092906d01a7186e1", "9625ae618ea633fd7ae5b20ceafd6b1f3ab1a6aa20aded66810e78f38925e9c2fa783a32c40af3f9d7dda0c635b482254b1d85a281af7231109166cd133c8360e281e5e39bcdd7c601ac47928a8c78cdb3c4f71e97d4d0b1c0ee01dd3db62f04f44798bb3a76492ba15a91b7110cb5e01babe56589a36fae3a2f336a2d1d5778dbd23c03ca8db0f25ff0657ff4bca1252adc38c080a5b8f0255ce3be0bf862823d2ab704729b74e1e275aa305824a566895ed677a460113e2a7bf91f00d0b8ebc358f3035b27fcc1d3f14a1367cd2769df39a9d21c5ee361f1965cd6342cc17a1463d6" },
{ "13f224102f57b2a5774d979be2ff6691a9ae7125a1443e805598abe9", "1e13f580fa2de14f1294e1eba9ce789c75072c9f54fcdc253c17549d70db1f36fa839ca055e655136a9e8b93be691672e9cf6c164a06fffdf912ccfdfd3030d1bf75fed1bfb3d001869c9a4ddc2a85133a3efae28287fc82eea5bc34468e673a5731439aa05afa204ed636a26bd76d87529aff8a66467ebc03184cc8b5bd6c7ba8ff928460a47c78aa938519d33978d7172ba2975c0d2bb421b2a643b184e69c9c2713166759fe11831db23a7c184c0a733b0c90cea2ab712ebcef2da1ad7ea31af0f0d81e4127f4bfbae38dce3c91284d1064fd23cea7fb137e520ceffedb9a09a44e52eb23a02848b3419b326cf03a8cf3d367c359c75bb940f56a0240a6885389580d37c910b50450f3eb0e7210471a2c8155160bb298074a00ce423a8676dfe733906bf920a4ddd82105cb149b57de03954f84ac11bae4e39cc117b6246b95080a63ed7c78fcba95f572d21b3673c0c037dd75038bca3a55f1cae97a276f5d33030f271abfc582cd95b98a4e8ba1a8aa918851d9c9cef0e626712050388a1faf461b7f9a9e071fc929625a7742eb7e0ac8d780f672d1eedf633e24feffc5c3c5fc0f5fc6bccb78d1daf6ac5c03592a2807536a222fd81c88d2ba5e4c232731bd4d742e64c218752ccffce7c775f2954c74827725a8ed6228986c34044db952df60d0543d57f7fe2432fc727e40bea5be37ee10c68417a808e0dc0fec24820c725eae3919246ffbff287eb7490dc543c5791f9bce6c5fd671d09358ce518a48c06e9345c0d0885406db0b1df2841058ab629c820607cbd4a9901875707bd9ef0fb909e0f9044af281732a0c3f4ca6cab619ed2b33fe668af849f3d09a4b78e7a86797728d68bebbb81764ecfa0e8f832fc79a0020f835e0a823adcf16686e1ad39fc66345a3eb98f2f04026e971d4695e932b67949e42bf0045cddcab7cc36ed8891c1be75eda7179264620d51e7c668aa629ca5698940d47d8db5e202c7fcdfe4e23023b40912f93e0fe4385bc8f61fc271c902f8d33b4c60360bd3e22ab1e8e1663800bf21ab88946f1f7c3f41641fd3f8a21e725289ac5efe360cd064f49d00863fe1d1b7df6a382a6a5556e17f0d316fde546097aa98bc3ecb1957f71350c4dabe23a64c0d028b9a5b304d19d55c6d3fc44" },
{ "8f7b464921f5344b3ea2f07ea95028bf0ef23573d1025160caa5b000", "cd4c8dbfb9cb8b99f4fe7c65f027ed8f3f1da8c79a41d89c27b46f4cfcc7c5dadfb381624f8bbdaac96e65f94401e02cfe1cf3067ac4e2c8c95ad8010a1188a82da61568fc4b2f3b5be4803ace7546b43ddb417df4bbcf88eeb956b853eae2f43f8b0f7ac5f32a7534c693d1986c654e84c159d30f0ee8061d39b019e03819e69ecb383fb46bf47fdb7d6765aacc87235c3605b1d4a67567de42b0cbb8e576a8d1cf5860d09bd582d872c49f0a7ff25a4ca20bbf4969bed6b93c1c77e3d7415f60fe3784216b17a6b40c7127c26bee1cdd6e34a478400a79378fbdc46af8c236d4bf9c54b0c40112f6b238a4da7ac591950048096913a378dfa35b5b542e4153b37c5177848cdaef26cedfbf5893bde0ffc10f9523cbcffc3ae0bee3a96305de889c1c96a5adeb64ccc72f1f469d2032a01951f1ae4ed72dceafad05717e5700d887c6591c0d7c9a7105f06cab8234ae0271d5c4128603322676f169b5677fe02da41767f096d4b99cf0ea509029427dac2f64b7575a9a34c79e52b67d06c5a80e5dd669292e3de8d6f0e471fc7a91c626bdc67286b1e65a3b909895cf43707d0419cd06d0bffd4fa66da877f75d6bb2f981c39ca7752dcd09b38badb506ca899641c2e7ec305d1794cffc0b8aba1669ace522ddc08db8b4b96ef3a7363719f44c3b7eb48569a568287ea9d5bb79db12c74faddfdbe1cf38d32b972a5abea6e6ae70c914a4521d69ebe2777c948202d5d2292a47ff59b981e05140df2a83b98645486aaf4fd30d4364632da91dbdd3db56da62c035ddc0b66848b66dad6e9afc982c2b2e91d4bc1d1c6a95035d13964cdbca1df084552afff177c17eec6890712f82d2396f3d7320995d75335c6a9250e761237ff4a94085054829b7ed57e40d93b32877f3f67a7465a696e022ac100d04073b168dc14a702b22b5c2ba25dff74b28f59124e7194008abc0b3b8bf58aeb9242f5d588590e8ec6d2f475bb8c658df48012e0af998ac08d6ba53258db2598e20c5fb5cde5914ce925dedd6fae457d87a13f7ae123ee2ef8e4e6a71fc66370c63c699a1b2ef1c5bf7075d35d1801dbd28f594171b5407443a429da5f6bb6fba55f9de30eb98291b05f73f8027e1d116b96dac4dfd224690445f96c762fa29215f2873106f9d639524f43abde3509c6c9544e7599ef0c55a136dfde2276c8fc7e719ff492846f151bdc5f6f6ed15a6452442ef42e806ac2a0f3479fb2f56c63657952be4fcdafbd736331c322d78162ccd2e6910c2ab2488a07bb31c6103f9f615649fe8d5a3abb0f906547a8bc114a6fbd100cc132955fd2e0c534ca5ba4e8d8b4e025d9ae727636c0645d5ef37ca3d13f45a7dc5c6661021ad0094e3c2ed851f1bfc4c33ef9778f9fa984b41235e787e5d1f2bbfcb7f4ae12762fa0364ff663b9237bc8703247707acf4e469cdf8dfa4d5f8dee980ca32d6422289eee8acb6467d58b5806af6e9fde202a94f7dc1fbed238d9f2b2c6c5069c5e8468a961bffa8a20a3f056e345645656aa1db7be053c21185756d18902c007a5b3bc0b575c8c8c9f363ff55064446fdd3d4f60e7e7089658869978d5c4f0527246f798fe19a10bcbb285468953d6871e54b8680c3d8ace8408291d1f840de95ebea9b6a88fce7420b97edef09c8138b490d7417d615916252c8432c8d87f58c57b50f8f9276b5228bb6b2328a6eaf11a722a91ce0afa29b694396e843adb0d410d7be462690e325e28f8b783eb5a4cca6930cd6082c455a2bfc704c41397934bf588fd76cd3d713b82a610b50285b84ef67848f7716e46940fabb9fb0b3b7750c4169898dc6fab4b78d1a31e64c3a012aa6fb8d54f4e68e5" },
};

for( auto const& input : inputs )
{
BOOST_TEST_EQ( digest<sha2_512_224>( from_hex( input.second ) ), std::string( input.first ));
}
}

int main()
Expand Down

0 comments on commit d78e05a

Please sign in to comment.