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_sha512.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_sha512_tests[] = {
{
1,
"",
"Pseudorandom,Printable",
"7130577430643470",
"798acc7c76739d75",
4096u,
16u,
"4935390897319c3efc15d19304109c79",
TEST_RESULT_VALID,
},
{
2,
"",
"Pseudorandom,Printable",
"5a30673349567272",
"84bbd18de5ec10ff",
4096u,
42u,
"d1b8e64e3b67a548c8bda3118eab1bc3f81b4cc9ead842eda18f6685533c2c7f4f49b8c7a78fea13b776",
TEST_RESULT_VALID,
},
{
3,
"",
"Pseudorandom,Printable",
"7439315572766f47",
"5d76db9ca0f0bae2",
4096u,
65u,
"a5d7f0fe4adc54e2ac5edc54e005827a90cbd46c00b72be68f8fbd1da98c079b98622a69b1ea44c0d94cdae03c339b742d047ac63cac0d9af59786baee4a158080",
TEST_RESULT_VALID,
},
{
4,
"",
"Pseudorandom,Printable",
"6b6f67583748447a",
"0a8fbd0232a3a7f6e60d6564c92ea35f",
4096u,
16u,
"23cb042249cf5d03f0cbfe8726df1bee",
TEST_RESULT_VALID,
},
{
5,
"",
"Pseudorandom,Printable",
"4939745242645168",
"0a3bb93c0de86a174ab005b8089706ab",
4096u,
42u,
"8c9a9843f6c108ad5b95d872bd93f1afd8001871e24ae03100ab33a47b3bf923de1e0bb4a95985563a87",
TEST_RESULT_VALID,
},
{
6,
"",
"Pseudorandom,Printable",
"6f4f4d37324f6330",
"3827c3b6b1e6de7aab096eb75e23610d",
4096u,
65u,
"0159b91e667079e448ae9707f9d538fcc4f297165f6fc85b2966f951669600ee7553f2b80e72f7c2688f2f4cf0f9f7eaf070333987aa7f7d45843076e1708e1229",
TEST_RESULT_VALID,
},
{
7,
"",
"Pseudorandom,Printable",
"6761734354484546654d36526f61386349",
"cac9ae7ef670990e",
4096u,
16u,
"4f423de7d3ce6dde25a9c88058f175d4",
TEST_RESULT_VALID,
},
{
8,
"",
"Pseudorandom,Printable",
"75375330684678774e33586f76707a6551",
"201b1e277f4ff955",
4096u,
42u,
"f5161add0381cd85fd3816902a56f1e5f84349362d9780eca06c201d1aa976106f5c55146c06d33d131d",
TEST_RESULT_VALID,
},
{
9,
"",
"Pseudorandom,Printable",
"51524b6a6d6d6b48524462507178696868",
"e71d6a702d2d54bc",
4096u,
65u,
"8d4c0251d0344406a8e31261046fb4f2bdd7ef402afa5c4eb5020afc2d516ce2ceaf84a2fb904737234fdfe1b2226c5f64ec5a106ef18e9571a53b0db6a9136f43",
TEST_RESULT_VALID,
},
{
10,
"",
"Pseudorandom,Printable",
"3732317a52704b79306b4c6d3862317279",
"8b9314972ef99ac98b69b6c2ac4247c7",
4096u,
16u,
"68b052397d9d0009393f939d8a41030a",
TEST_RESULT_VALID,
},
{
11,
"",
"Pseudorandom,Printable",
"75507078436d7536577a68535030553947",
"874d7cc9369ff9988642ffe05a7f2153",
4096u,
42u,
"f6db4aec63695dfa52aa449120b118ef399ed5efa73c3f59c7aa08cd3cd0aa4401634a7bbf61d753752c",
TEST_RESULT_VALID,
},
{
12,
"",
"Pseudorandom,Printable",
"6f39505350597a445349783365374d7063",
"1569909588ec25a3afa147cb7fff9fb1",
4096u,
65u,
"b8b2e382821089b02c972c1ca1495bc8d021fabe77733335555c6b27c4a6e73098e8385055891e8a55c05be3d20279bb168b8011f60705928dd05d1451775b62f1",
TEST_RESULT_VALID,
},
{
13,
"",
"Pseudorandom,Ascii",
"4b2d6c600e66535c7f3d6d6c",
"7a4c02db8bd8fcc2",
4096u,
16u,
"d3aca4f6df6e06b97c44fd295ed07965",
TEST_RESULT_VALID,
},
{
14,
"",
"Pseudorandom,Ascii",
"287e74200e6b69285f5f7e00",
"dddf018487fa4b95",
4096u,
42u,
"1fe411d3bde75e596197040e192dd0aa56ba282125db6e91090caace7bef3b07bbd4d3170b3ca8548587",
TEST_RESULT_VALID,
},
{
15,
"",
"Pseudorandom,Ascii",
"0f3b5e220e1c000c2a703a4d",
"7cf71b19c0daf499",
4096u,
65u,
"bcc6ca2f82450f4bff09009af28215e68b01ccfcaabdf176a7eceb61974cdd9a9ce3bd10b1d7f781c4d82612fb42bf3db424912389a0727515fef785d2cc28275c",
TEST_RESULT_VALID,
},
{
16,
"",
"Pseudorandom,Ascii",
"1f4b7b354903545f2b07720b",
"62f91ea01f3a18aa2f122bd15c4a615b",
4096u,
16u,
"26bfec4392af75d5e912d47c7d911fc5",
TEST_RESULT_VALID,
},
{
17,
"",
"Pseudorandom,Ascii",
"5d7e1f70174b2f616c0d6722",
"4fb602173327228431dd8d088154c7ec",
4096u,
42u,
"21f15760b44d879949320ecfa6fb1023c15f6284127c985ce36d83de2fa6e25fe5f98e0e0bcb89acda3f",
TEST_RESULT_VALID,
},
{
18,
"",
"Pseudorandom,Ascii",
"2657324e694c6b242b174f1a",
"3cad67ef1eaf3aaafb5ee372d6b1ecb4",
4096u,
65u,
"26c4a80bfa48325beefc3a32c543b1ed9dcb67458dba5c41b9ec1ea87ba82f52a98beaf2578f1e1d6f781676bc4664e9b629250bf0ad8440f8ceb05c51101ae8c7",
TEST_RESULT_VALID,
},
{
19,
"",
"Pseudorandom,Ascii",
"15296b0933473119180f3c0645202d5221633803",
"d7412e4137fc4410",
4096u,
16u,
"49fa49e9d9d4b8a230b888550fa95d4e",
TEST_RESULT_VALID,
},
{
20,
"",
"Pseudorandom,Ascii",
"2a1124361d53464245580130076d6b54001e3d01",
"7ecaaed1eab03c3f",
4096u,
42u,
"d80c7b2a6c4bfeede1926ad9fac65400078b865bc02d145fc0e045fe37cbbde4cafad121e4935f0b3052",
TEST_RESULT_VALID,
},
{
21,
"",
"Pseudorandom,Ascii",
"666252024e18233308430820127e753e6b041f56",
"756fafa7fac1f019",
4096u,
65u,
"ca4168cd34fd8bf311c180bcf00d7c50482c89f9bd639f8e3217ebcefc99f7cc4bf7fce90a9faed87912293163d5bdb55a61566bccc7366195d72b76f3b26ad332",
TEST_RESULT_VALID,
},
{
22,
"",
"Pseudorandom,Ascii",
"7a106c2773542c791d2f0a02632b69644f666278",
"a36350db68186d747254bd9835219487",
4096u,
16u,
"878ede7d7b80d4dfb2d7bffba76b288d",
TEST_RESULT_VALID,
},
{
23,
"",
"Pseudorandom,Ascii",
"0b3c6f070149615b5b461c7f5c3a366a6d375402",
"42be6c8fcd7858458fb97cece0069524",
4096u,
42u,
"4d631b173437810b9dc991a9b81d2e8a4981cfed6fd6ae508db3f6f6bb4d267388741ead7d3272fd5075",
TEST_RESULT_VALID,
},
{
24,
"",
"Pseudorandom,Ascii",
"5177161d237c1b64426353434113015665344a6c",
"596dbf5830aa8b00682429883e0b1ed0",
4096u,
65u,
"a4647786a04fa4129f5c4c43ff7ca48362b9e25bc962345355f01036c5df2962fab2906218267bd04b11a1834abb965e861e2fa3d721e4dded92ed7eefed058609",
TEST_RESULT_VALID,
},
{
25,
"",
"Pseudorandom,Utf8",
"d0a3d1bed38acc83",
"8dfae85c9f2072ae",
4096u,
16u,
"6b62ce6976fe2c9bd0a8a7acba7b83b5",
TEST_RESULT_VALID,
},
{
26,
"",
"Pseudorandom,Utf8",
"d0bcccab64cf9a",
"15187b0393d8a441",
4096u,
42u,
"3b80d72751093ad48c08b70fd13308834078b52c3c14e47523e189a475b6f6678dafb991bcb5c0b73f2c",
TEST_RESULT_VALID,
},
{
27,
"",
"Pseudorandom,Utf8",
"c4bddd8f4ad69d",
"775bde4bd6e40ddd",
4096u,
65u,
"4bb5ebbe99297ac9a3e3b14ad1a5b52307fbdb991e9bae74561a93e7165086f4a198ad515be73ccda118168150ece8627199ff267c3132e3a556ba3d8d812d8392",
TEST_RESULT_VALID,
},
{
28,
"",
"Pseudorandom,Utf8",
"c299d292cd92dcb8",
"99c55e182238c8e0c385447685e9ba85",
4096u,
16u,
"876ae3968ee80397415e7137d9bddf76",
TEST_RESULT_VALID,
},
{
29,
"",
"Pseudorandom,Utf8",
"d086d0bed193d9b6",
"42a7aca6a7664f87b405b49d62a074db",
4096u,
42u,
"a0d55ac130b1ef52e4dc05203cb78304cc49f56dd165eafc51f009d44cddf6e4befa59d3231c2393e9ab",
TEST_RESULT_VALID,
},
{
30,
"",
"Pseudorandom,Utf8",
"da8ddcacde86d3b0",
"f3eb3938f338fe8639813beacd8100a5",
4096u,
65u,
"1837beaf1c4a9efe10e8f8f6dafea3e494708a2512d7b64a396ed69b419b8c7e65f6ba2809c8555b62be2640d0ae297a68136f7a3fe8e226b87467e67c6254a6a2",
TEST_RESULT_VALID,
},
{
31,
"",
"Pseudorandom,Utf8",
"cfbec3b9d7acc7a9d585d1a5c28fcca119",
"e9c55717a1259a29",
4096u,
16u,
"1b3587d675b3170ab20fdb14f8c88e42",
TEST_RESULT_VALID,
},
{
32,
"",
"Pseudorandom,Utf8",
"d29cd099d197d1b0da9aca8ec2a3daa5c38a",
"5acc2d76a9f4444c",
4096u,
42u,
"93b0fc1b0313bab41929332682d9d2a5b947fbb5bbdb37c06d897dfc4a309eff5f1b1806a6a3b6f5fedf",
TEST_RESULT_VALID,
},
{
33,
"",
"Pseudorandom,Utf8",
"de89d193d18c75c2b8c6bcd190d198c3a2",
"c69c3b58917e0975",
4096u,
65u,
"e44c3d06dc5128edd230cd9bfcbd204fde2369fb39d6370cbb0021ce1610003d7d1789e83f3fa9ed5842f1a5afde4609b3b09ef6595b7f8647c26c6ae87f4b776f",
TEST_RESULT_VALID,
},
{
34,
"",
"Pseudorandom,Utf8",
"da9dd096cb93db88dbbed495ceaacf853c",
"200bba668b2010b1968b82091848937c",
4096u,
16u,
"6a294cfc91bd87da2700085a289a3f10",
TEST_RESULT_VALID,
},
{
35,
"",
"Pseudorandom,Utf8",
"de81d0a6cea9c7b3cbabce9bda90d29f73",
"36586fdefbe916369412c9f3e6337ddf",
4096u,
42u,
"18d49eaf798f4fab75aaadb42f8bcff45b83da5fad7932705cc829897692cedb161268aa04659ef2a1d8",
TEST_RESULT_VALID,
},
{
36,
"",
"Pseudorandom,Utf8",
"d281da97c8a3d8b7ceb9db80dc8dd4a0c3be",
"ab7c17e3b78fe71e373b0ccb0fc3ccda",
4096u,
65u,
"ab933595222171a6bf0ef7288f4761d4e6dd29e68e566fde1b3bb6a5ae380b591334e680ed1fc70f181c54f3a6ea17388cf25c7f18555b1f67a6837b3590578161",
TEST_RESULT_VALID,
},
{
37,
"",
"Pseudorandom,NonUtf8",
"8423ec7ea4ca4b03",
"8dfae85c9f2072ae",
4096u,
16u,
"196cb574f499f6e20cd00a4eb0f70d4a",
TEST_RESULT_VALID,
},
{
38,
"",
"Pseudorandom,NonUtf8",
"2c3c932bf0648bda",
"15187b0393d8a441",
4096u,
42u,
"28ea911364150649f9c5831e5d3ab76b4c4009416ba68143388d00e294437ade367fd24fbc79a5173544",
TEST_RESULT_VALID,
},
{
39,
"",
"Pseudorandom,NonUtf8",
"393d474fd84a259d",
"775bde4bd6e40ddd",
4096u,
65u,
"38688a90efa49043340f480ba134e4d34f2f444c049864b918fbae5e324c7d11e5c790c4d6c4741bbedccc55f02a40a19edb117339e21fff27fd3b3b56b348403f",
TEST_RESULT_VALID,
},
{
40,
"",
"Pseudorandom,NonUtf8",
"48997492c3528738",
"99c55e182238c8e0c385447685e9ba85",
4096u,
16u,
"f3d1fa6c1cb2bc8f8fae275b69746f03",
TEST_RESULT_VALID,
},
{
41,
"",
"Pseudorandom,NonUtf8",
"74064c3ebc53d676",
"42a7aca6a7664f87b405b49d62a074db",
4096u,
42u,
"abb8c155cde2637d33261bd5c1db245ceb1e59e8cf223927697375bbc42273bf4f291d582885f9a5b634",
TEST_RESULT_VALID,
},
{
42,
"",
"Pseudorandom,NonUtf8",
"668d4f2c8f86f4f0",
"f3eb3938f338fe8639813beacd8100a5",
4096u,
65u,
"51960fa5ea92577833bd8ef87911c7e0ace4a94fd4f76afb6ec145455257593953389c7cbe497eae1d787f95b8472b0c251406492c64c25db19ace47d24d8f5a75",
TEST_RESULT_VALID,
},
{
43,
"",
"Pseudorandom,NonUtf8",
"e3feb0f96dec61e9dd451465f88f132119",
"e9c55717a1259a29",
4096u,
16u,
"2008be3283e9f6049829a4157c1c3088",
TEST_RESULT_VALID,
},
{
44,
"",
"Pseudorandom,NonUtf8",
"5c9ca419dc576470269a828e40a3aea5ca",
"5acc2d76a9f4444c",
4096u,
42u,
"81a8a54d860990b96d5aa9debadc95c6164ac85294a2350b20b893e73ab7421845bc69ede73805bfcff7",
TEST_RESULT_VALID,
},
{
45,
"",
"Pseudorandom,NonUtf8",
"bf898453344c6875f0b8b9bc2c50fc58e2",
"c69c3b58917e0975",
4096u,
65u,
"0452a418242f9539f8849d65466c96c984e021ddfde942a6a7e0b6dd1584dc8a536b1722684021444bf60fd958f391a5ba92fa6a44450d089faec32179f01f04c6",
TEST_RESULT_VALID,
},
{
46,
"",
"Pseudorandom,NonUtf8",
"9e9d7c166ad3bec856fe5d15d3aacbc53c",
"200bba668b2010b1968b82091848937c",
4096u,
16u,
"6320a1e2cc157e09607d4fc9a4ae3269",
TEST_RESULT_VALID,
},
{
47,
"",
"Pseudorandom,NonUtf8",
"17812c26bba941f3c2ebdb9bb6904c9f73",
"36586fdefbe916369412c9f3e6337ddf",
4096u,
42u,
"d42a8d13e4901d902c6ebf070fa3b253af9a0783cf5260daca193090337ad8ab783a2e46eb8022996c18",
TEST_RESULT_VALID,
},
{
48,
"",
"Pseudorandom,NonUtf8",
"6c816697ba2366375bb986c0af0d7d20fe",
"ab7c17e3b78fe71e373b0ccb0fc3ccda",
4096u,
65u,
"634fc75709b5d0e585269c6f31280bdc79c1aaaf72fd5a13e9848c5fc1be7caeff06fbda3fd83ec67aee6286e4411da66f1c9da5414734d5388f9f95c25a13c99a",
TEST_RESULT_VALID,
},
{
49,
"empty password",
"Pseudorandom,Printable",
"",
"1a71e2118c9fbcc9",
4096u,
32u,
"580ad63c3ade95c330d57e32af17fd342457fb0289b5d74c2d01ee109293bbdb",
TEST_RESULT_VALID,
},
{
50,
"long password",
"Pseudorandom,Printable",
"523249584467597a5a4271363970667a4a714e744b7761545a4544494676766b6a6253417167566e456a6b456b454557504e69383653626a6e376b725764394d67",
"d26b99043c8ba3a4",
4096u,
32u,
"983adc3df73cffc0649a9c9682498c6bacbe91980e809d0cf002200d913b2b73",
TEST_RESULT_VALID,
},
{
51,
"long password",
"Pseudorandom,Printable",
"63727a466d396430795463456a6468545758693877674e516f544e6d486e61686f6956317071613133655471477933497531354b4f52516339494c53646756527a45524e6b4463723565676a62584a78426572536a74726b6b674341616a63356243354434706e66743836663754626663666370595a30767354454d4930524178",
"9266da5b8c102b27",
4096u,
32u,
"9a3a9c839c05c455f1e83959f486b23b15f6e91bdf71b3da11bb0dd71ec98d49",
TEST_RESULT_VALID,
},
{
52,
"long password",
"Pseudorandom,Printable",
"32647a56696e6f45774464656c656257797058314d6f4f685975585a463172514b7a32535a6c307578576377796f3561416e6f42524e7a5044763072513662693742345a34324f50695258534c6859684441643262746f647633744d54424430744b46316e4b655942656565547a70413145434150713942687a4a4c555a67737636754e4b664450333558414d684a486c736a6f5a796b677130624d506265556941796d6f324371586b64524752633876544176684e5a5838536f564d33704e74594a4a7258766975337547583233736a353847723061614a4b45763765796c373248636e6167713474766e533737626d6376676c79536d347370707a65673869",
"6a06903b78dae6de",
4096u,
32u,
"c27d89fdfb870fe02f4e3843025d33e91fa2eff7f8a18eefe7113818d1765126",
TEST_RESULT_VALID,
},
{
53,
"special case password",
"NonUtf8",
"ff",
"32140a66b88e1683",
4096u,
16u,
"73eb7888fbad86cdb299455454d26429",
TEST_RESULT_VALID,
},
{
54,
"special case password",
"NonUtf8",
"ffffffffffffffff",
"8a359634423ed028",
4096u,
16u,
"f0bdbf5507d74ab49ee220500107d69f",
TEST_RESULT_VALID,
},
{
55,
"special case password",
"NonUtf8",
"c0c0c0c0c0c0c0c0",
"d6f596f170ed2414",
4096u,
16u,
"51eaac2999bab0ba22134d21f95ea277",
TEST_RESULT_VALID,
},
{
56,
"special case password",
"NonUtf8",
"eeeeeeeeeeeeeeee",
"6b2269425e288d03",
4096u,
16u,
"f4e6be1916b7d1e21e8c4ea77c75b54e",
TEST_RESULT_VALID,
},
{
57,
"special case password",
"NonUtf8",
"f0f0f0f0f0f0f0f0",
"ebf0b04633711248",
4096u,
16u,
"51baf8f1ecab753e30fd1ff995c29355",
TEST_RESULT_VALID,
},
{
58,
"special case password",
"Ascii",
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"9de9b71eeb9d9a34",
4096u,
16u,
"2900d1f4870e09094070d986784dbcc8",
TEST_RESULT_VALID,
},
};