Skip to content

Commit a3f5657

Browse files
Add test cases covering the relevant key length boundaries: 64 bytes +/- 1 byte for HMAC-SHA256 and 128 bytes +/- 1 byte for HMAC-SHA512
1 parent 2c66cea commit a3f5657

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

src/test/crypto_tests.cpp

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,22 @@ BOOST_AUTO_TEST_CASE(hmac_sha256_testvectors) {
340340
"647320746f20626520686173686564206265666f7265206265696e6720757365"
341341
"642062792074686520484d414320616c676f726974686d2e",
342342
"9b09ffa71b942fcb27635fbcd5b0e944bfdc63644f0713938a7f51535c3a35e2");
343+
// Test case with key length 63 bytes.
344+
TestHMACSHA256("4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
345+
"4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a6566",
346+
"7768617420646f2079612077616e7420666f72206e6f7468696e673f",
347+
"9de4b546756c83516720a4ad7fe7bdbeac4298c6fdd82b15f895a6d10b0769a6");
348+
// Test case with key length 64 bytes.
349+
TestHMACSHA256("4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
350+
"4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665",
351+
"7768617420646f2079612077616e7420666f72206e6f7468696e673f",
352+
"528c609a4c9254c274585334946b7c2661bad8f1fc406b20f6892478d19163dd");
353+
// Test case with key length 65 bytes.
354+
TestHMACSHA256("4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
355+
"4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
356+
"4a",
357+
"7768617420646f2079612077616e7420666f72206e6f7468696e673f",
358+
"d06af337f359a2330deffb8e3cbe4b5b7aa8ca1f208528cdbd245d5dc63c4483");
343359
}
344360

345361
BOOST_AUTO_TEST_CASE(hmac_sha512_testvectors) {
@@ -383,6 +399,31 @@ BOOST_AUTO_TEST_CASE(hmac_sha512_testvectors) {
383399
"642062792074686520484d414320616c676f726974686d2e",
384400
"e37b6a775dc87dbaa4dfa9f96e5e3ffddebd71f8867289865df5a32d20cdc944"
385401
"b6022cac3c4982b10d5eeb55c3e4de15134676fb6de0446065c97440fa8c6a58");
402+
// Test case with key length 127 bytes.
403+
TestHMACSHA512("4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
404+
"4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
405+
"4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
406+
"4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a6566",
407+
"7768617420646f2079612077616e7420666f72206e6f7468696e673f",
408+
"267424dfb8eeb999f3e5ec39a4fe9fd14c923e6187e0897063e5c9e02b2e624a"
409+
"c04413e762977df71a9fb5d562b37f89dfdfb930fce2ed1fa783bbc2a203d80e");
410+
// Test case with key length 128 bytes.
411+
TestHMACSHA512("4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
412+
"4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
413+
"4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
414+
"4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665",
415+
"7768617420646f2079612077616e7420666f72206e6f7468696e673f",
416+
"43aaac07bb1dd97c82c04df921f83b16a68d76815cd1a30d3455ad43a3d80484"
417+
"2bb35462be42cc2e4b5902de4d204c1c66d93b47d1383e3e13a3788687d61258");
418+
// Test case with key length 129 bytes.
419+
TestHMACSHA512("4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
420+
"4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
421+
"4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
422+
"4a6566654a6566654a6566654a6566654a6566654a6566654a6566654a656665"
423+
"4a",
424+
"7768617420646f2079612077616e7420666f72206e6f7468696e673f",
425+
"0b273325191cfc1b4b71d5075c8fcad67696309d292b1dad2cd23983a35feb8e"
426+
"fb29795e79f2ef27f68cb1e16d76178c307a67beaad9456fac5fdffeadb16e2c");
386427
}
387428

388429
BOOST_AUTO_TEST_CASE(aes_testvectors) {

0 commit comments

Comments
 (0)