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

672
tests/pbkdf2test_sha256.h Normal file
View File

@@ -0,0 +1,672 @@
/*
* 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_sha256_tests[] = {
{
1,
"RFC 7914",
"Rfc7914,Printable",
"706173737764",
"73616c74",
1u,
64u,
"55ac046e56e3089fec1691c22544b605f94185216dde0465e68b9d57c20dacbc49ca9cccf179b645991664b39d77ef317c71b845b1e30bd509112041d3a19783",
TEST_RESULT_VALID,
},
{
2,
"RFC 7914",
"Rfc7914,Printable",
"50617373776f7264",
"4e61436c",
80000u,
64u,
"4ddcd8f60b98be21830cee5ef22701f9641a4418d04c0414aeff08876b34ab56a1d425a1225833549adb841b51c9b3176a272bdebba1d078478f62b397f33c8d",
TEST_RESULT_VALID,
},
{
3,
"",
"Pseudorandom,Printable",
"7130577430643470",
"798acc7c76739d75",
4096u,
16u,
"0501c73cb9f40b6769513e70e525051e",
TEST_RESULT_VALID,
},
{
4,
"",
"Pseudorandom,Printable",
"5a30673349567272",
"84bbd18de5ec10ff",
4096u,
42u,
"05fd57d1cc373fa9f37e1857ac1c0af8fbf635e139a42f9dd25a4e4b4698ea13e943f42220384d32a272",
TEST_RESULT_VALID,
},
{
5,
"",
"Pseudorandom,Printable",
"7439315572766f47",
"5d76db9ca0f0bae2",
4096u,
65u,
"2a3974a8071f005997c00d33812d8cf52e6af76a7ac558bf5dedeb296464bccf696ad753a79eb7b1b21738584a58d03d2b6c2b7bda08788f844655f6a90b0e3444",
TEST_RESULT_VALID,
},
{
6,
"",
"Pseudorandom,Printable",
"6b6f67583748447a",
"0a8fbd0232a3a7f6e60d6564c92ea35f",
4096u,
16u,
"c81676dbeb95582c66c3fc2636f1cb7f",
TEST_RESULT_VALID,
},
{
7,
"",
"Pseudorandom,Printable",
"4939745242645168",
"0a3bb93c0de86a174ab005b8089706ab",
4096u,
42u,
"b7a44e0e93f5f7ec0e177292db0b4a1354b62709e0dfe02167e19586fa99a70d777b39f953fb4fa4c342",
TEST_RESULT_VALID,
},
{
8,
"",
"Pseudorandom,Printable",
"6f4f4d37324f6330",
"3827c3b6b1e6de7aab096eb75e23610d",
4096u,
65u,
"907bc6a107df5940fb4c986b3f1ed888bcb0c41462df94b58de682c5627c1125492fd3091b06d83ce09794edad3776adb107994f671efe7b3ccd1d3a8fdcb444cc",
TEST_RESULT_VALID,
},
{
9,
"",
"Pseudorandom,Printable",
"6761734354484546654d36526f61386349",
"cac9ae7ef670990e",
4096u,
16u,
"2a9fc926e220c7915ccd8cde2916ae87",
TEST_RESULT_VALID,
},
{
10,
"",
"Pseudorandom,Printable",
"75375330684678774e33586f76707a6551",
"201b1e277f4ff955",
4096u,
42u,
"0dc0835f4b34eb966f4cf0d662c020eb09b733c7baa78abe2be41a01a1ccad60aad4969ac3fbcb643511",
TEST_RESULT_VALID,
},
{
11,
"",
"Pseudorandom,Printable",
"51524b6a6d6d6b48524462507178696868",
"e71d6a702d2d54bc",
4096u,
65u,
"2cdbfdc4f06e4d0e743a49ca459eff921b2eaf70e5d69b3c913239c56376c78c47ab66927c322612ad97cb1c824ae425aaefc6647db405dfab3a89cfd2055a0f4c",
TEST_RESULT_VALID,
},
{
12,
"",
"Pseudorandom,Printable",
"3732317a52704b79306b4c6d3862317279",
"8b9314972ef99ac98b69b6c2ac4247c7",
4096u,
16u,
"0da1ed7920894303780ee9a34fb6fa2f",
TEST_RESULT_VALID,
},
{
13,
"",
"Pseudorandom,Printable",
"75507078436d7536577a68535030553947",
"874d7cc9369ff9988642ffe05a7f2153",
4096u,
42u,
"35367e9ce58daa37e51883e9828204d438ede1065acf9933dfee1aae0ac7b24b46ae0c2c16885b809e6b",
TEST_RESULT_VALID,
},
{
14,
"",
"Pseudorandom,Printable",
"6f39505350597a445349783365374d7063",
"1569909588ec25a3afa147cb7fff9fb1",
4096u,
65u,
"7afa4394324fdfe23b879a8fb932c908217e4368ee5ee8dccac2fe2d2f62c12e9f48620c50b7bdb05448c64987b10df54ff5012e9a5064e9f92c51cc7b635d270d",
TEST_RESULT_VALID,
},
{
15,
"",
"Pseudorandom,Ascii",
"4b2d6c600e66535c7f3d6d6c",
"7a4c02db8bd8fcc2",
4096u,
16u,
"b05992b03b7f25b4a24a27e98cdfff3a",
TEST_RESULT_VALID,
},
{
16,
"",
"Pseudorandom,Ascii",
"287e74200e6b69285f5f7e00",
"dddf018487fa4b95",
4096u,
42u,
"89d809be903d632abd1b29130229b3a837bb4943aafb86a520498fa1814cd3f82f0b6c7db8d09d19c439",
TEST_RESULT_VALID,
},
{
17,
"",
"Pseudorandom,Ascii",
"0f3b5e220e1c000c2a703a4d",
"7cf71b19c0daf499",
4096u,
65u,
"5f3110ce1e653e086b289eb972ddd496b44884b7eab0361d0e9a39426b1d977582bd32b84ae1a204a51dbd458757489e01928dbcced2397109a1470d8383804099",
TEST_RESULT_VALID,
},
{
18,
"",
"Pseudorandom,Ascii",
"1f4b7b354903545f2b07720b",
"62f91ea01f3a18aa2f122bd15c4a615b",
4096u,
16u,
"d4bbf153661b4516d740535b37780aaf",
TEST_RESULT_VALID,
},
{
19,
"",
"Pseudorandom,Ascii",
"5d7e1f70174b2f616c0d6722",
"4fb602173327228431dd8d088154c7ec",
4096u,
42u,
"8216132b4952f8be46586e22ce961b597671f9172027e36f2c4cbd189dcaf719981a9c03186d5faadd80",
TEST_RESULT_VALID,
},
{
20,
"",
"Pseudorandom,Ascii",
"2657324e694c6b242b174f1a",
"3cad67ef1eaf3aaafb5ee372d6b1ecb4",
4096u,
65u,
"7103c69766b64bae721776ac272db586c7ba3c4775e33e1f37a24fad51e599d56d344e4566d48928f3c1c52b91642b10c86a29d3d2490eee2889c2899802e38c82",
TEST_RESULT_VALID,
},
{
21,
"",
"Pseudorandom,Ascii",
"15296b0933473119180f3c0645202d5221633803",
"d7412e4137fc4410",
4096u,
16u,
"1c0b23dfd1a3ea727c5c596ca840b393",
TEST_RESULT_VALID,
},
{
22,
"",
"Pseudorandom,Ascii",
"2a1124361d53464245580130076d6b54001e3d01",
"7ecaaed1eab03c3f",
4096u,
42u,
"c0f82935e509c96ad0edf9aa2db243cb81cec0c047d5141915a58ce114c119290228f318a9c5dcd518f6",
TEST_RESULT_VALID,
},
{
23,
"",
"Pseudorandom,Ascii",
"666252024e18233308430820127e753e6b041f56",
"756fafa7fac1f019",
4096u,
65u,
"d571b3006053ce3060ddfdbcf3c782d834e49701d4c745f3a282618cacdff4c73cadb7e719de641860ab0ffc860518d0bf02cec16ca83c26f4df993050ee67f2f7",
TEST_RESULT_VALID,
},
{
24,
"",
"Pseudorandom,Ascii",
"7a106c2773542c791d2f0a02632b69644f666278",
"a36350db68186d747254bd9835219487",
4096u,
16u,
"5f0af11697779ae0530fab32806f2184",
TEST_RESULT_VALID,
},
{
25,
"",
"Pseudorandom,Ascii",
"0b3c6f070149615b5b461c7f5c3a366a6d375402",
"42be6c8fcd7858458fb97cece0069524",
4096u,
42u,
"88d3744fae380954ae5875eca20b998e0d0c991716a8ef90cc1e547d489415ce6f8310742defcf4ca6cd",
TEST_RESULT_VALID,
},
{
26,
"",
"Pseudorandom,Ascii",
"5177161d237c1b64426353434113015665344a6c",
"596dbf5830aa8b00682429883e0b1ed0",
4096u,
65u,
"d8e5a55f92ba0d6da87765c653c82f080472260640e59ebe7d003baca444bdbe553156e5c365be28fc0acb7927e5c9789cdf6b481aa1c39c444a0cfc8b6e475182",
TEST_RESULT_VALID,
},
{
27,
"",
"Pseudorandom,Utf8",
"d0a3d1bed38acc83",
"8dfae85c9f2072ae",
4096u,
16u,
"c06bc1f9a63de10fe5f6936991477029",
TEST_RESULT_VALID,
},
{
28,
"",
"Pseudorandom,Utf8",
"d0bcccab64cf9a",
"15187b0393d8a441",
4096u,
42u,
"6a6287564b66b1f08bfabdfe2907b870b8c6ad8071efd78a7302c9472d7b80fb50c662bf609827006831",
TEST_RESULT_VALID,
},
{
29,
"",
"Pseudorandom,Utf8",
"c4bddd8f4ad69d",
"775bde4bd6e40ddd",
4096u,
65u,
"7e52e8694056266a7da6527dac089f921298dfc497020eecee58d73fd123deb97cf3c2f532505468afc17e6e283ba6b68afcd5e6881be17e1647d3ab491a5589b1",
TEST_RESULT_VALID,
},
{
30,
"",
"Pseudorandom,Utf8",
"c299d292cd92dcb8",
"99c55e182238c8e0c385447685e9ba85",
4096u,
16u,
"fcfa00ce7c0249542e6f3a40ef0a86d0",
TEST_RESULT_VALID,
},
{
31,
"",
"Pseudorandom,Utf8",
"d086d0bed193d9b6",
"42a7aca6a7664f87b405b49d62a074db",
4096u,
42u,
"46abf02c99b9f6d86fbf2e11bf0642b658a82a9e034ddea40df78a84bbc4b1e1e9f5bfbc55b12fba4545",
TEST_RESULT_VALID,
},
{
32,
"",
"Pseudorandom,Utf8",
"da8ddcacde86d3b0",
"f3eb3938f338fe8639813beacd8100a5",
4096u,
65u,
"4438d49f0cd0ff7026fa6283b25bac570e1c845eaccdd80060e896f5420ee54533eb649a6fd9d99d29ceb7dcb18d059d422840aef7d4452d888f59bdd760b5db73",
TEST_RESULT_VALID,
},
{
33,
"",
"Pseudorandom,Utf8",
"cfbec3b9d7acc7a9d585d1a5c28fcca119",
"e9c55717a1259a29",
4096u,
16u,
"a9a7c8ade1041532e085ff65c35f28e8",
TEST_RESULT_VALID,
},
{
34,
"",
"Pseudorandom,Utf8",
"d29cd099d197d1b0da9aca8ec2a3daa5c38a",
"5acc2d76a9f4444c",
4096u,
42u,
"e34b5cf037bec44307bb8a60bbdc7d5f19badd15825150ec453adb490b947c3c1bc4132ec2217be47f60",
TEST_RESULT_VALID,
},
{
35,
"",
"Pseudorandom,Utf8",
"de89d193d18c75c2b8c6bcd190d198c3a2",
"c69c3b58917e0975",
4096u,
65u,
"d9ac15032443c7ed2678a07849c65897a2625f367fee614895c6f4f655094721024342ad24f0fa654bbd1abc7d01993ab21120da4e6f5b36a67885462d14442732",
TEST_RESULT_VALID,
},
{
36,
"",
"Pseudorandom,Utf8",
"da9dd096cb93db88dbbed495ceaacf853c",
"200bba668b2010b1968b82091848937c",
4096u,
16u,
"230bf1d40a4ccfe9a1b5241a8266cef9",
TEST_RESULT_VALID,
},
{
37,
"",
"Pseudorandom,Utf8",
"de81d0a6cea9c7b3cbabce9bda90d29f73",
"36586fdefbe916369412c9f3e6337ddf",
4096u,
42u,
"978fd90caf8646ef894d8c9ffe19d20f0f0dfe80cf5bfe8464385bc0552e226a82b1fa764e8198ffda9f",
TEST_RESULT_VALID,
},
{
38,
"",
"Pseudorandom,Utf8",
"d281da97c8a3d8b7ceb9db80dc8dd4a0c3be",
"ab7c17e3b78fe71e373b0ccb0fc3ccda",
4096u,
65u,
"92b10b7d996d6e3f5d8e7e2c1075cc89c837b85cb72aff0092449b256254591178a6bf7fdfe3742f5fe5e402788058f4f90efc9cc9e9e7547b27bd4d34da333314",
TEST_RESULT_VALID,
},
{
39,
"",
"Pseudorandom,NonUtf8",
"8423ec7ea4ca4b03",
"8dfae85c9f2072ae",
4096u,
16u,
"5425a8ac3db02f9675331c0560a7b641",
TEST_RESULT_VALID,
},
{
40,
"",
"Pseudorandom,NonUtf8",
"2c3c932bf0648bda",
"15187b0393d8a441",
4096u,
42u,
"9eb4049ccee01488f15af3b988ef6d4817fce166686c17a7ea1cdc8bc548883ed1d53df6439fecda324b",
TEST_RESULT_VALID,
},
{
41,
"",
"Pseudorandom,NonUtf8",
"393d474fd84a259d",
"775bde4bd6e40ddd",
4096u,
65u,
"a6d3a1636fe688f9a0aef5050e749c9f641669e6b953958263752382cb324de125315c4f340464c935e15e60dfa61fc8e8cd15386b2ed9894fad8b327338dc91f7",
TEST_RESULT_VALID,
},
{
42,
"",
"Pseudorandom,NonUtf8",
"48997492c3528738",
"99c55e182238c8e0c385447685e9ba85",
4096u,
16u,
"2b7d2346fbb52fbff8881db235132319",
TEST_RESULT_VALID,
},
{
43,
"",
"Pseudorandom,NonUtf8",
"74064c3ebc53d676",
"42a7aca6a7664f87b405b49d62a074db",
4096u,
42u,
"a97c2fb6bd6a91470d78af24ee8f0f9e783517ba0396db031a46640c8436368ba9b5d0e048952bb2a6f0",
TEST_RESULT_VALID,
},
{
44,
"",
"Pseudorandom,NonUtf8",
"668d4f2c8f86f4f0",
"f3eb3938f338fe8639813beacd8100a5",
4096u,
65u,
"8a4399e9487079701b079b6ad3587ff62593ff75c36629268e0cc2f88089203ac27a81ef9b4fa9ab6db5e220fca8f3d46c2b8c5c4d1149d461d1cd2c0884496608",
TEST_RESULT_VALID,
},
{
45,
"",
"Pseudorandom,NonUtf8",
"e3feb0f96dec61e9dd451465f88f132119",
"e9c55717a1259a29",
4096u,
16u,
"a2641a7a323435e0443cfd8dd60a536e",
TEST_RESULT_VALID,
},
{
46,
"",
"Pseudorandom,NonUtf8",
"5c9ca419dc576470269a828e40a3aea5ca",
"5acc2d76a9f4444c",
4096u,
42u,
"df3c139e07076d5e37d9dd0b59164903830d8fd1c4cb0b3189a5f97cd73b66f8066c31630bb44e705d9f",
TEST_RESULT_VALID,
},
{
47,
"",
"Pseudorandom,NonUtf8",
"bf898453344c6875f0b8b9bc2c50fc58e2",
"c69c3b58917e0975",
4096u,
65u,
"bb14e909b953a6576fdd607ccb8ee2d69fc1f9458ae597010c08a17094d64beb156f3db86203d441b7a2a192d75fb8f8ce78baf6f059f3b982a1e1ea32a6f1a958",
TEST_RESULT_VALID,
},
{
48,
"",
"Pseudorandom,NonUtf8",
"9e9d7c166ad3bec856fe5d15d3aacbc53c",
"200bba668b2010b1968b82091848937c",
4096u,
16u,
"38a92f260cc84a8eb5943df1f19f64a1",
TEST_RESULT_VALID,
},
{
49,
"",
"Pseudorandom,NonUtf8",
"17812c26bba941f3c2ebdb9bb6904c9f73",
"36586fdefbe916369412c9f3e6337ddf",
4096u,
42u,
"a410ebcad1e884660353e7324d04f9f0e68ea3bb925fefe32b86c8f590029d63f9abc5c34c9a7b07845f",
TEST_RESULT_VALID,
},
{
50,
"",
"Pseudorandom,NonUtf8",
"6c816697ba2366375bb986c0af0d7d20fe",
"ab7c17e3b78fe71e373b0ccb0fc3ccda",
4096u,
65u,
"2577e802465d3e309dc76be377bbabdc8e59838d9f4f0a23ccd67f118094a851edd9a6ab4d332d8927bb0b77e71da28d6f5db78b2196758340ebf25e74cf681a1f",
TEST_RESULT_VALID,
},
{
51,
"empty password",
"Pseudorandom,Printable",
"",
"1a71e2118c9fbcc9",
4096u,
32u,
"3e513d89ea5ad303f17cbf7cbdea54a940f0f5811844dfa875a55a8241d2f8df",
TEST_RESULT_VALID,
},
{
52,
"long password",
"Pseudorandom,Printable",
"523249584467597a5a4271363970667a4a714e744b7761545a4544494676766b6a6253417167566e456a6b456b454557504e69383653626a6e376b725764394d67",
"d26b99043c8ba3a4",
4096u,
32u,
"c8595fa30dc95fb839bebfcc230f06844b2f75a393570b22d6c14d647837b87a",
TEST_RESULT_VALID,
},
{
53,
"long password",
"Pseudorandom,Printable",
"63727a466d396430795463456a6468545758693877674e516f544e6d486e61686f6956317071613133655471477933497531354b4f52516339494c53646756527a45524e6b4463723565676a62584a78426572536a74726b6b674341616a63356243354434706e66743836663754626663666370595a30767354454d4930524178",
"9266da5b8c102b27",
4096u,
32u,
"24a86f12235e0232bc80a84635a43934b2d37ae1120b4aa1728a3ead93868980",
TEST_RESULT_VALID,
},
{
54,
"long password",
"Pseudorandom,Printable",
"32647a56696e6f45774464656c656257797058314d6f4f685975585a463172514b7a32535a6c307578576377796f3561416e6f42524e7a5044763072513662693742345a34324f50695258534c6859684441643262746f647633744d54424430744b46316e4b655942656565547a70413145434150713942687a4a4c555a67737636754e4b664450333558414d684a486c736a6f5a796b677130624d506265556941796d6f324371586b64524752633876544176684e5a5838536f564d33704e74594a4a7258766975337547583233736a353847723061614a4b45763765796c373248636e6167713474766e533737626d6376676c79536d347370707a65673869",
"6a06903b78dae6de",
4096u,
32u,
"a50be9c16f6bf68808436aa3bc6eec36d3c5653c9c7510c1a4a641755b8325fb",
TEST_RESULT_VALID,
},
{
55,
"special case password",
"NonUtf8",
"ff",
"32140a66b88e1683",
4096u,
16u,
"49bc8d940c8f67ae5ee0764f59dea94e",
TEST_RESULT_VALID,
},
{
56,
"special case password",
"NonUtf8",
"ffffffffffffffff",
"8a359634423ed028",
4096u,
16u,
"00ef53593c10c8986f36838017194c2c",
TEST_RESULT_VALID,
},
{
57,
"special case password",
"NonUtf8",
"c0c0c0c0c0c0c0c0",
"d6f596f170ed2414",
4096u,
16u,
"b81cd442c5aa1b23aee69225a501cc70",
TEST_RESULT_VALID,
},
{
58,
"special case password",
"NonUtf8",
"eeeeeeeeeeeeeeee",
"6b2269425e288d03",
4096u,
16u,
"a80f332f10dfc0e4380b2fac8449fe77",
TEST_RESULT_VALID,
},
{
59,
"special case password",
"NonUtf8",
"f0f0f0f0f0f0f0f0",
"ebf0b04633711248",
4096u,
16u,
"a516a9d9e5d310227dc19ef15357b4b1",
TEST_RESULT_VALID,
},
{
60,
"special case password",
"Ascii",
"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"9de9b71eeb9d9a34",
4096u,
16u,
"5869f35bb108f1c45605ca8109e6661d",
TEST_RESULT_VALID,
},
};