Add PBKDF2 tests from Wycheproof

This commit is contained in:
Zhi Guan
2026-06-09 17:55:51 +08:00
parent 41a1da8a9a
commit eefcbadb9e
7 changed files with 3501 additions and 107 deletions

650
tests/pbkdf2test_sha384.h Normal file
View File

@@ -0,0 +1,650 @@
/*
* Copyright 2014-2026 The GmSSL Project. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the License);
* you may not use this file except in compliance with the License.
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
static const TEST_PBKDF2_VECTOR pbkdf2_hmac_sha384_tests[] = {
{
1,
"",
"Pseudorandom,Printable",
"7130577430643470",
"798acc7c76739d75",
4096u,
16u,
"c5a4f853b1a3960134e572c8e29a5be9",
TEST_RESULT_VALID,
},
{
2,
"",
"Pseudorandom,Printable",
"5a30673349567272",
"84bbd18de5ec10ff",
4096u,
42u,
"dfe1dea643acbae0d7d3154717f9a620937d9bf32218b27db99c0c34a0a6dfa189b31292020b727cc147",
TEST_RESULT_VALID,
},
{
3,
"",
"Pseudorandom,Printable",
"7439315572766f47",
"5d76db9ca0f0bae2",
4096u,
65u,
"17c6ba7e45f8a26a13b4d5f72ca3a2f97147e5f60c3108829b5b51633ab8afd9888b0465b22995f072ee2c8383e091afb808bf48b0e786da661ff95142a6229f1f",
TEST_RESULT_VALID,
},
{
4,
"",
"Pseudorandom,Printable",
"6b6f67583748447a",
"0a8fbd0232a3a7f6e60d6564c92ea35f",
4096u,
16u,
"7b3772edd5ddd2fefed54e124f813d15",
TEST_RESULT_VALID,
},
{
5,
"",
"Pseudorandom,Printable",
"4939745242645168",
"0a3bb93c0de86a174ab005b8089706ab",
4096u,
42u,
"314c435ffba5e7f8dc3af254ac164c51398c839f3c789a91fb7927aa28dc2424bc589e29fd715fe74bba",
TEST_RESULT_VALID,
},
{
6,
"",
"Pseudorandom,Printable",
"6f4f4d37324f6330",
"3827c3b6b1e6de7aab096eb75e23610d",
4096u,
65u,
"409b051d5d6f77149633e65dfd0ebbadebda7f82ffcc09d2efb81c6d94a425537c5bb1bea65a9fb40a92a4466bfb448d7b3505894dccdb6a365d44d4eba54ef11c",
TEST_RESULT_VALID,
},
{
7,
"",
"Pseudorandom,Printable",
"6761734354484546654d36526f61386349",
"cac9ae7ef670990e",
4096u,
16u,
"9df584f636d3853cf75116538f240315",
TEST_RESULT_VALID,
},
{
8,
"",
"Pseudorandom,Printable",
"75375330684678774e33586f76707a6551",
"201b1e277f4ff955",
4096u,
42u,
"74d040278a45fe589c66833a34cc71bc7249b4dc86e3dc70117afb94cf7cb60bca51c1d3359a06998c95",
TEST_RESULT_VALID,
},
{
9,
"",
"Pseudorandom,Printable",
"51524b6a6d6d6b48524462507178696868",
"e71d6a702d2d54bc",
4096u,
65u,
"421a7d2aa3a0b31f51b2971af45327ffbcb023a6fd71a51739e57b335c9fe386f8b3083991bc012474161341ebb71f7b9f495d012904264aacebc00a6392b7e81c",
TEST_RESULT_VALID,
},
{
10,
"",
"Pseudorandom,Printable",
"3732317a52704b79306b4c6d3862317279",
"8b9314972ef99ac98b69b6c2ac4247c7",
4096u,
16u,
"5873f6050f94ffbd5db5913711a1e779",
TEST_RESULT_VALID,
},
{
11,
"",
"Pseudorandom,Printable",
"75507078436d7536577a68535030553947",
"874d7cc9369ff9988642ffe05a7f2153",
4096u,
42u,
"38c6c68ab0ea2aab6e8ec42b6d08203e7f3c2a51c7771626b9df6ac6ac0e7c7b9e690ea53916e7a4ef0a",
TEST_RESULT_VALID,
},
{
12,
"",
"Pseudorandom,Printable",
"6f39505350597a445349783365374d7063",
"1569909588ec25a3afa147cb7fff9fb1",
4096u,
65u,
"8b3c1f69e3e992203f59b4aee9c0ed79d98bf7a1f261036d58e2289dcde27504129d357f8c21919f1f152e7d4a5c011e04f1adf2a3d0fdcb64cad396810332d291",
TEST_RESULT_VALID,
},
{
13,
"",
"Pseudorandom,Ascii",
"4b2d6c600e66535c7f3d6d6c",
"7a4c02db8bd8fcc2",
4096u,
16u,
"60f6a456e9a4f1d8dcfb7a73c58ab3be",
TEST_RESULT_VALID,
},
{
14,
"",
"Pseudorandom,Ascii",
"287e74200e6b69285f5f7e00",
"dddf018487fa4b95",
4096u,
42u,
"745ff4750e9371a28424220ea555138fed621e4b32c58503720dd1e2243803848f9fe9b74ed09afe759f",
TEST_RESULT_VALID,
},
{
15,
"",
"Pseudorandom,Ascii",
"0f3b5e220e1c000c2a703a4d",
"7cf71b19c0daf499",
4096u,
65u,
"9531ee2380908f10dd0806782a90dd01a513880e6d848ce8370e5a6dff7a061d6e20a2b1ecccadfed5feaae62fa64e0cc6fe98bd87f6311fbc624453344e694a94",
TEST_RESULT_VALID,
},
{
16,
"",
"Pseudorandom,Ascii",
"1f4b7b354903545f2b07720b",
"62f91ea01f3a18aa2f122bd15c4a615b",
4096u,
16u,
"ea4658ca124f8a8332e1241da381e22e",
TEST_RESULT_VALID,
},
{
17,
"",
"Pseudorandom,Ascii",
"5d7e1f70174b2f616c0d6722",
"4fb602173327228431dd8d088154c7ec",
4096u,
42u,
"7b89d1bd20dec87b8ecf9bae12fa0e5d9c0f1c010078249baeefded4f23e354a5fe9efa50d2d569ee12d",
TEST_RESULT_VALID,
},
{
18,
"",
"Pseudorandom,Ascii",
"2657324e694c6b242b174f1a",
"3cad67ef1eaf3aaafb5ee372d6b1ecb4",
4096u,
65u,
"08968b88460e0df143e1f52d0b1640e77266204bb552d3e9a260dfc782aef06707f7eb386a3037dc343792b6c41452549d812eca04be8bf01d436e1557bec6438d",
TEST_RESULT_VALID,
},
{
19,
"",
"Pseudorandom,Ascii",
"15296b0933473119180f3c0645202d5221633803",
"d7412e4137fc4410",
4096u,
16u,
"23055ea847137568a2ea8f84ae13d220",
TEST_RESULT_VALID,
},
{
20,
"",
"Pseudorandom,Ascii",
"2a1124361d53464245580130076d6b54001e3d01",
"7ecaaed1eab03c3f",
4096u,
42u,
"819a1fd3f182702d3629b0453352e7224048ed964e57b252a9a039c1d73292f2f668429a8aa530732edc",
TEST_RESULT_VALID,
},
{
21,
"",
"Pseudorandom,Ascii",
"666252024e18233308430820127e753e6b041f56",
"756fafa7fac1f019",
4096u,
65u,
"ba344a8df0cbedced95d6f5f8ea8f4d3e1aca52f751a2c1b529067df28d0e3d08ea42ffb6b8f8537dab32ce89ec0dd4a84c7683b5960d987ab7f5f744c7d8d7f84",
TEST_RESULT_VALID,
},
{
22,
"",
"Pseudorandom,Ascii",
"7a106c2773542c791d2f0a02632b69644f666278",
"a36350db68186d747254bd9835219487",
4096u,
16u,
"d5ce40d19ffa0ea0a0f9ede719053fcd",
TEST_RESULT_VALID,
},
{
23,
"",
"Pseudorandom,Ascii",
"0b3c6f070149615b5b461c7f5c3a366a6d375402",
"42be6c8fcd7858458fb97cece0069524",
4096u,
42u,
"840512f3702d1387ab28785750cca03d0452dcd3abbf39f56fa38c04dfe6e1e17570463a8cc074850070",
TEST_RESULT_VALID,
},
{
24,
"",
"Pseudorandom,Ascii",
"5177161d237c1b64426353434113015665344a6c",
"596dbf5830aa8b00682429883e0b1ed0",
4096u,
65u,
"f9e10e6fc595e3ae155910f4c019245b559bbec1a944de00bbbe1fe202265db4ccf28b9f10b519c1856e3386a15ba9005e05cf5e050718d4a92c89dc309f167a31",
TEST_RESULT_VALID,
},
{
25,
"",
"Pseudorandom,Utf8",
"d0a3d1bed38acc83",
"8dfae85c9f2072ae",
4096u,
16u,
"ae75e7ae9848e3550cf3ddfca4ed5e74",
TEST_RESULT_VALID,
},
{
26,
"",
"Pseudorandom,Utf8",
"d0bcccab64cf9a",
"15187b0393d8a441",
4096u,
42u,
"9b909246d2fb6e76a5375bcd608820f855e43b7782fb7aecfedc766fbd7296a99862c4ee9ffe52d2305d",
TEST_RESULT_VALID,
},
{
27,
"",
"Pseudorandom,Utf8",
"c4bddd8f4ad69d",
"775bde4bd6e40ddd",
4096u,
65u,
"555ab346c29248f24748dd7cb9ca4d7793894cf0ffdf337c01c6badf5ea8821eac516b7a93a74628be32468ecad35bc28bf422bcee9046ed9d5512765d644edf05",
TEST_RESULT_VALID,
},
{
28,
"",
"Pseudorandom,Utf8",
"c299d292cd92dcb8",
"99c55e182238c8e0c385447685e9ba85",
4096u,
16u,
"84d0773faa5dad4dbbd7d7f461272807",
TEST_RESULT_VALID,
},
{
29,
"",
"Pseudorandom,Utf8",
"d086d0bed193d9b6",
"42a7aca6a7664f87b405b49d62a074db",
4096u,
42u,
"58b8fd680c076f23f4e65bbb58a4af6a7160c4a8d81c99fb05f0543dd01923dcaef67a8ac6f14e6e1019",
TEST_RESULT_VALID,
},
{
30,
"",
"Pseudorandom,Utf8",
"da8ddcacde86d3b0",
"f3eb3938f338fe8639813beacd8100a5",
4096u,
65u,
"fca2e866aa3e4f42abe27feb90a55286bbd868c93bdd67029db96c77bf943eb094c9e31c55f108bd848824e0ef0bc69e763cbd7c3c6ddc008703a40bcbc8e22667",
TEST_RESULT_VALID,
},
{
31,
"",
"Pseudorandom,Utf8",
"cfbec3b9d7acc7a9d585d1a5c28fcca119",
"e9c55717a1259a29",
4096u,
16u,
"7612061da9d4dd1ee3638ab60eae5605",
TEST_RESULT_VALID,
},
{
32,
"",
"Pseudorandom,Utf8",
"d29cd099d197d1b0da9aca8ec2a3daa5c38a",
"5acc2d76a9f4444c",
4096u,
42u,
"845d37414eb3bba79503226c55112a62f787d88aae3f027c0028a06f63d7307dcf9c1c7cd8f255755562",
TEST_RESULT_VALID,
},
{
33,
"",
"Pseudorandom,Utf8",
"de89d193d18c75c2b8c6bcd190d198c3a2",
"c69c3b58917e0975",
4096u,
65u,
"94fa0a0e7150e8553aef53c3d695f8ef65b3e54c056ed1d0a0c46a064cb5891f4bdff7ee37f21136fb482dcb13421fdce7408b2cd18b9831dc11143aacfca500f0",
TEST_RESULT_VALID,
},
{
34,
"",
"Pseudorandom,Utf8",
"da9dd096cb93db88dbbed495ceaacf853c",
"200bba668b2010b1968b82091848937c",
4096u,
16u,
"33f720ca3aa8e6784f93d9d04983f88a",
TEST_RESULT_VALID,
},
{
35,
"",
"Pseudorandom,Utf8",
"de81d0a6cea9c7b3cbabce9bda90d29f73",
"36586fdefbe916369412c9f3e6337ddf",
4096u,
42u,
"5b043b06c042f0ed61f00d15b4d058425ecb822505d141757ad2b428f1ef71dbdb2bca191b7d7b5704b9",
TEST_RESULT_VALID,
},
{
36,
"",
"Pseudorandom,Utf8",
"d281da97c8a3d8b7ceb9db80dc8dd4a0c3be",
"ab7c17e3b78fe71e373b0ccb0fc3ccda",
4096u,
65u,
"67aee62bffe2d7742a2058bb146ba629f532e2c0576555f0fb385ae8ea7b34e2f8d8b24dd31ea3a14ec6f39138337771d86518d3d1742eb3a5c197d4732012a338",
TEST_RESULT_VALID,
},
{
37,
"",
"Pseudorandom,NonUtf8",
"8423ec7ea4ca4b03",
"8dfae85c9f2072ae",
4096u,
16u,
"de49fbeb68b9e092e952fb2f752b642b",
TEST_RESULT_VALID,
},
{
38,
"",
"Pseudorandom,NonUtf8",
"2c3c932bf0648bda",
"15187b0393d8a441",
4096u,
42u,
"49b18e7cf5f8803bc129c0f433de931f7e2c3ac1f3305789495ec3548787cee83c1c973f73f4bac9e80b",
TEST_RESULT_VALID,
},
{
39,
"",
"Pseudorandom,NonUtf8",
"393d474fd84a259d",
"775bde4bd6e40ddd",
4096u,
65u,
"f3a909587aacd3fd03e7fb4a48ece960d90a7a65b36f5b8f982f14f0997a4630e01cf092573a9af728f46e86b35099fe68ccab07a111b832718bd224af8a130194",
TEST_RESULT_VALID,
},
{
40,
"",
"Pseudorandom,NonUtf8",
"48997492c3528738",
"99c55e182238c8e0c385447685e9ba85",
4096u,
16u,
"c26c4d099817ab48baeb2ed94a6e0e66",
TEST_RESULT_VALID,
},
{
41,
"",
"Pseudorandom,NonUtf8",
"74064c3ebc53d676",
"42a7aca6a7664f87b405b49d62a074db",
4096u,
42u,
"2790b6ca89a36f6702f3fe2a031fbf5349613dd756b8e23e545180286b7f94746eb8df4ee00536a902e1",
TEST_RESULT_VALID,
},
{
42,
"",
"Pseudorandom,NonUtf8",
"668d4f2c8f86f4f0",
"f3eb3938f338fe8639813beacd8100a5",
4096u,
65u,
"44fbc1a0422401ed1b4f7a3cccf4c56ed6dd61bbca31ffc542e2930ea62b5c6deeff8cc9c709b2e96a5bcc3ef5b47fec89a0fad774ef5a406fcd319a374dcbf7db",
TEST_RESULT_VALID,
},
{
43,
"",
"Pseudorandom,NonUtf8",
"e3feb0f96dec61e9dd451465f88f132119",
"e9c55717a1259a29",
4096u,
16u,
"81c0ff3ddfee0fbb1c285ea772b21a93",
TEST_RESULT_VALID,
},
{
44,
"",
"Pseudorandom,NonUtf8",
"5c9ca419dc576470269a828e40a3aea5ca",
"5acc2d76a9f4444c",
4096u,
42u,
"a54129741f4d41c198e76bc688de03d221bee45538cdb9f265859af918a4b336f6fc9b9f9a0b44894107",
TEST_RESULT_VALID,
},
{
45,
"",
"Pseudorandom,NonUtf8",
"bf898453344c6875f0b8b9bc2c50fc58e2",
"c69c3b58917e0975",
4096u,
65u,
"d88a85b941a802f48a4fa80ebe4ca10e659d684a6310975dff862819930b60f0d776b728a716ef3b7abaea89c9b0fdcbb76c1b9fac44ad28d468800bbb20c7a76c",
TEST_RESULT_VALID,
},
{
46,
"",
"Pseudorandom,NonUtf8",
"9e9d7c166ad3bec856fe5d15d3aacbc53c",
"200bba668b2010b1968b82091848937c",
4096u,
16u,
"1a7db5ce7b3fa690dda6aed94b42a07d",
TEST_RESULT_VALID,
},
{
47,
"",
"Pseudorandom,NonUtf8",
"17812c26bba941f3c2ebdb9bb6904c9f73",
"36586fdefbe916369412c9f3e6337ddf",
4096u,
42u,
"41f0fdc44e8e51be0bf913af19524a6d041d6160194226fc90c17da715b4f7b6859060d72d8973bfa66d",
TEST_RESULT_VALID,
},
{
48,
"",
"Pseudorandom,NonUtf8",
"6c816697ba2366375bb986c0af0d7d20fe",
"ab7c17e3b78fe71e373b0ccb0fc3ccda",
4096u,
65u,
"81fb39ec6f23c4fd32fc923cea3fbfa42f5b10620f3f0c0716e71301d0886a1392f50ee0e7805964f44bc08abce926002a36fc7806828e7da93cf8ddb910a21e60",
TEST_RESULT_VALID,
},
{
49,
"empty password",
"Pseudorandom,Printable",
"",
"1a71e2118c9fbcc9",
4096u,
32u,
"221029235aaa16453fc00ce61bb81d2c0fe24e8a038dbf845578f7d3aa1006d9",
TEST_RESULT_VALID,
},
{
50,
"long password",
"Pseudorandom,Printable",
"523249584467597a5a4271363970667a4a714e744b7761545a4544494676766b6a6253417167566e456a6b456b454557504e69383653626a6e376b725764394d67",
"d26b99043c8ba3a4",
4096u,
32u,
"6aff25d08e9acf0bc81366c88c2939b2206a5f3e96a6ae1bb7754286edd72fb5",
TEST_RESULT_VALID,
},
{
51,
"long password",
"Pseudorandom,Printable",
"63727a466d396430795463456a6468545758693877674e516f544e6d486e61686f6956317071613133655471477933497531354b4f52516339494c53646756527a45524e6b4463723565676a62584a78426572536a74726b6b674341616a63356243354434706e66743836663754626663666370595a30767354454d4930524178",
"9266da5b8c102b27",
4096u,
32u,
"b967e5eb79c1ec4a3ad0cb09c18915793bd87b51911a5e9ca43cbe49eb328b83",
TEST_RESULT_VALID,
},
{
52,
"long password",
"Pseudorandom,Printable",
"32647a56696e6f45774464656c656257797058314d6f4f685975585a463172514b7a32535a6c307578576377796f3561416e6f42524e7a5044763072513662693742345a34324f50695258534c6859684441643262746f647633744d54424430744b46316e4b655942656565547a70413145434150713942687a4a4c555a67737636754e4b664450333558414d684a486c736a6f5a796b677130624d506265556941796d6f324371586b64524752633876544176684e5a5838536f564d33704e74594a4a7258766975337547583233736a353847723061614a4b45763765796c373248636e6167713474766e533737626d6376676c79536d347370707a65673869",
"6a06903b78dae6de",
4096u,
32u,
"b94a84f5e52d232868f5fe8f4c568ad582e7bd623eab7b7a4f4081f45ab2c7ea",
TEST_RESULT_VALID,
},
{
53,
"special case password",
"NonUtf8",
"ff",
"32140a66b88e1683",
4096u,
16u,
"bb50b900e301b23a4801bba57e163b47",
TEST_RESULT_VALID,
},
{
54,
"special case password",
"NonUtf8",
"ffffffffffffffff",
"8a359634423ed028",
4096u,
16u,
"08f89be37ee7d29f9c24c67a354effcb",
TEST_RESULT_VALID,
},
{
55,
"special case password",
"NonUtf8",
"c0c0c0c0c0c0c0c0",
"d6f596f170ed2414",
4096u,
16u,
"956f188642dfc807cb47658c203093e5",
TEST_RESULT_VALID,
},
{
56,
"special case password",
"NonUtf8",
"eeeeeeeeeeeeeeee",
"6b2269425e288d03",
4096u,
16u,
"c8b50d274f16cd66fce052a0e52f6840",
TEST_RESULT_VALID,
},
{
57,
"special case password",
"NonUtf8",
"f0f0f0f0f0f0f0f0",
"ebf0b04633711248",
4096u,
16u,
"5f4d98d86b3de83fe6a554c139256037",
TEST_RESULT_VALID,
},
{
58,
"special case password",
"Ascii",
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"9de9b71eeb9d9a34",
4096u,
16u,
"8458ae1b33e367c9724db9259bc06208",
TEST_RESULT_VALID,
},
};