parent
d938406410
commit
87a60d8825
|
|
@ -123,3 +123,159 @@ Key: r80 0xaa
|
|||
Message: "Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"
|
||||
MAC: 0x69ea60798d71616cce5fd0871e23754cd75d5a0a
|
||||
Test: Verify
|
||||
|
||||
AlgorithmType: MAC
|
||||
Name: HMAC(SHA-224)
|
||||
Source: RFC 4231
|
||||
Comment: Test Case 1
|
||||
Key: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
|
||||
Message: "Hi There"
|
||||
MAC: 0x896fb1128abbdf196832107cd49df33f47b4b1169912ba4f53684b22
|
||||
Test: Verify
|
||||
Comment: Test Case 2
|
||||
Key: "Jefe"
|
||||
Message: "what do ya want for nothing?"
|
||||
MAC: 0xa30e01098bc6dbbf45690f3a7e9e6d0f8bbea2a39e6148008fd05e44
|
||||
Test: Verify
|
||||
Comment: Test Case 3
|
||||
Key: 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
Message: r50 0xdd
|
||||
MAC: 0x7fb3cb3588c6c1f6ffa9694d7d6ad2649365b0c1f65d69d1ec8333ea
|
||||
Test: Verify
|
||||
Comment: Test Case 4
|
||||
Key: 0x0102030405060708090a0b0c0d0e0f10111213141516171819
|
||||
Message: r50 0xcd
|
||||
MAC: 0x6c11506874013cac6a2abc1bb382627cec6a90d86efc012de7afec5a
|
||||
Test: Verify
|
||||
Comment: Test Case 5
|
||||
Key: 0x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
|
||||
Message: "Test With Truncation"
|
||||
MAC: 0x0e2aea68a90c8d37c988bcdb9fca6fa8
|
||||
Test: VerifyTruncated
|
||||
Comment: Test Case 6
|
||||
Key: r131 0xaa
|
||||
Message: "Test Using Larger Than Block-Size Key - Hash Key First"
|
||||
MAC: 0x95e9a0db962095adaebe9b2d6f0dbce2d499f112f2d2b7273fa6870e
|
||||
Test: Verify
|
||||
Comment: Test Case 7
|
||||
Key: r131 0xaa
|
||||
Message: "This is a test using a larger than block-size key and a larger than block-size data. The key needs to be hashed before being used by the HMAC algorithm.")
|
||||
MAC: 0x3a854166ac5d9f023f54d517d0b39dbd946770db9c2b95c9f6f565d1
|
||||
Test: Verify
|
||||
|
||||
AlgorithmType: MAC
|
||||
Name: HMAC(SHA-256)
|
||||
Source: RFC 4231
|
||||
Comment: Test Case 1
|
||||
Key: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
|
||||
Message: "Hi There"
|
||||
MAC: b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7
|
||||
Test: Verify
|
||||
Comment: Test Case 2
|
||||
Key: "Jefe"
|
||||
Message: "what do ya want for nothing?"
|
||||
MAC: 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843
|
||||
Test: Verify
|
||||
Comment: Test Case 3
|
||||
Key: 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
Message: r50 0xdd
|
||||
MAC: 773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe
|
||||
Test: Verify
|
||||
Comment: Test Case 4
|
||||
Key: 0x0102030405060708090a0b0c0d0e0f10111213141516171819
|
||||
Message: r50 0xcd
|
||||
MAC: 82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b
|
||||
Test: Verify
|
||||
Comment: Test Case 5
|
||||
Key: 0x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
|
||||
Message: "Test With Truncation"
|
||||
MAC: a3b6167473100ee06e0c796c2955552b
|
||||
Test: VerifyTruncated
|
||||
Comment: Test Case 6
|
||||
Key: r131 0xaa
|
||||
Message: "Test Using Larger Than Block-Size Key - Hash Key First"
|
||||
MAC: 60e431591ee0b67f0d8a26aacbf5b77f8e0bc6213728c5140546040f0ee37f54
|
||||
Test: Verify
|
||||
Comment: Test Case 7
|
||||
Key: r131 0xaa
|
||||
Message: "This is a test using a larger than block-size key and a larger than block-size data. The key needs to be hashed before being used by the HMAC algorithm.")
|
||||
MAC: 9b09ffa71b942fcb27635fbcd5b0e944bfdc63644f0713938a7f51535c3a35e2
|
||||
Test: Verify
|
||||
|
||||
AlgorithmType: MAC
|
||||
Name: HMAC(SHA-384)
|
||||
Source: RFC 4231
|
||||
Comment: Test Case 1
|
||||
Key: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
|
||||
Message: "Hi There"
|
||||
MAC: afd03944d84895626b0825f4ab46907f15f9dadbe4101ec682aa034c7cebc59cfaea9ea9076ede7f4af152e8b2fa9cb6
|
||||
Test: Verify
|
||||
Comment: Test Case 2
|
||||
Key: "Jefe"
|
||||
Message: "what do ya want for nothing?"
|
||||
MAC: af45d2e376484031617f78d2b58a6b1b9c7ef464f5a01b47e42ec3736322445e8e2240ca5e69e2c78b3239ecfab21649
|
||||
Test: Verify
|
||||
Comment: Test Case 3
|
||||
Key: 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
Message: r50 0xdd
|
||||
MAC: 88062608d3e6ad8a0aa2ace014c8a86f0aa635d947ac9febe83ef4e55966144b2a5ab39dc13814b94e3ab6e101a34f27
|
||||
Test: Verify
|
||||
Comment: Test Case 4
|
||||
Key: 0x0102030405060708090a0b0c0d0e0f10111213141516171819
|
||||
Message: r50 0xcd
|
||||
MAC: 3e8a69b7783c25851933ab6290af6ca77a9981480850009cc5577c6e1f573b4e6801dd23c4a7d679ccf8a386c674cffb
|
||||
Test: Verify
|
||||
Comment: Test Case 5
|
||||
Key: 0x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
|
||||
Message: "Test With Truncation"
|
||||
MAC: 3abf34c3503b2a23a46efc619baef897
|
||||
Test: VerifyTruncated
|
||||
Comment: Test Case 6
|
||||
Key: r131 0xaa
|
||||
Message: "Test Using Larger Than Block-Size Key - Hash Key First"
|
||||
MAC: 4ece084485813e9088d2c63a041bc5b44f9ef1012a2b588f3cd11f05033ac4c60c2ef6ab4030fe8296248df163f44952
|
||||
Test: Verify
|
||||
Comment: Test Case 7
|
||||
Key: r131 0xaa
|
||||
Message: "This is a test using a larger than block-size key and a larger than block-size data. The key needs to be hashed before being used by the HMAC algorithm.")
|
||||
MAC: 6617178e941f020d351e2f254e8fd32c602420feb0b8fb9adccebb82461e99c5a678cc31e799176d3860e6110c46523e
|
||||
Test: Verify
|
||||
|
||||
AlgorithmType: MAC
|
||||
Name: HMAC(SHA-512)
|
||||
Source: RFC 4231
|
||||
Comment: Test Case 1
|
||||
Key: 0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
|
||||
Message: "Hi There"
|
||||
MAC: 87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cdedaa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854
|
||||
Test: Verify
|
||||
Comment: Test Case 2
|
||||
Key: "Jefe"
|
||||
Message: "what do ya want for nothing?"
|
||||
MAC: 164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737
|
||||
Test: Verify
|
||||
Comment: Test Case 3
|
||||
Key: 0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
Message: r50 0xdd
|
||||
MAC: fa73b0089d56a284efb0f0756c890be9b1b5dbdd8ee81a3655f83e33b2279d39bf3e848279a722c806b485a47e67c807b946a337bee8942674278859e13292fb
|
||||
Test: Verify
|
||||
Comment: Test Case 4
|
||||
Key: 0x0102030405060708090a0b0c0d0e0f10111213141516171819
|
||||
Message: r50 0xcd
|
||||
MAC: b0ba465637458c6990e5a8c5f61d4af7e576d97ff94b872de76f8050361ee3dba91ca5c11aa25eb4d679275cc5788063a5f19741120c4f2de2adebeb10a298dd
|
||||
Test: Verify
|
||||
Comment: Test Case 5
|
||||
Key: 0x0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c
|
||||
Message: "Test With Truncation"
|
||||
MAC: 415fad6271580a531d4179bc891d87a6
|
||||
Test: VerifyTruncated
|
||||
Comment: Test Case 6
|
||||
Key: r131 0xaa
|
||||
Message: "Test Using Larger Than Block-Size Key - Hash Key First"
|
||||
MAC: 80b24263c7c1a3ebb71493c1dd7be8b49b46d1f41b4aeec1121b013783f8f3526b56d037e05f2598bd0fd2215d6a1e5295e64f73f63f0aec8b915a985d786598
|
||||
Test: Verify
|
||||
Comment: Test Case 7
|
||||
Key: r131 0xaa
|
||||
Message: "This is a test using a larger than block-size key and a larger than block-size data. The key needs to be hashed before being used by the HMAC algorithm.")
|
||||
MAC: e37b6a775dc87dbaa4dfa9f96e5e3ffddebd71f8867289865df5a32d20cdc944b6022cac3c4982b10d5eeb55c3e4de15134676fb6de0446065c97440fa8c6a58
|
||||
Test: Verify
|
||||
|
|
|
|||
|
|
@ -745,7 +745,7 @@ bool RunTestDataFile(const char *filename, const NameValuePairs &overrideParamet
|
|||
{
|
||||
unsigned int totalTests = 0, failedTests = 0;
|
||||
TestDataFile(filename, overrideParameters, totalTests, failedTests);
|
||||
cout << "\nTests complete. Total tests = " << totalTests << ". Failed tests = " << failedTests << ".\n";
|
||||
cout << dec << "\nTests complete. Total tests = " << totalTests << ". Failed tests = " << failedTests << ".\n";
|
||||
if (failedTests != 0)
|
||||
cout << "SOME TESTS FAILED!\n";
|
||||
return failedTests == 0;
|
||||
|
|
|
|||
|
|
@ -76,6 +76,10 @@ void RegisterFactories()
|
|||
RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<Weak::MD5> >();
|
||||
RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA1> >();
|
||||
RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<RIPEMD160> >();
|
||||
RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA224> >();
|
||||
RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA256> >();
|
||||
RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA384> >();
|
||||
RegisterDefaultFactoryFor<MessageAuthenticationCode, HMAC<SHA512> >();
|
||||
RegisterDefaultFactoryFor<MessageAuthenticationCode, TTMAC>();
|
||||
RegisterDefaultFactoryFor<MessageAuthenticationCode, VMAC<AES> >();
|
||||
RegisterDefaultFactoryFor<MessageAuthenticationCode, VMAC<AES, 64> >();
|
||||
|
|
|
|||
44
validat3.cpp
44
validat3.cpp
|
|
@ -321,15 +321,11 @@ bool ValidateHAVAL()
|
|||
|
||||
bool ValidatePanama()
|
||||
{
|
||||
cout << "\nPanama validation suite running...\n";
|
||||
|
||||
return RunTestDataFile("TestVectors/panama.txt");
|
||||
}
|
||||
|
||||
bool ValidateWhirlpool()
|
||||
{
|
||||
cout << "\nWhirlpool Hash Function validation suite running...\n";
|
||||
|
||||
return RunTestDataFile("TestVectors/whrlpool.txt");
|
||||
}
|
||||
|
||||
|
|
@ -397,45 +393,7 @@ bool ValidateMD5MAC()
|
|||
|
||||
bool ValidateHMAC()
|
||||
{
|
||||
typedef HMAC<Weak::MD5> HMAC_MD5;
|
||||
|
||||
const char* keys[]=
|
||||
{
|
||||
"\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
|
||||
"Jefe",
|
||||
"\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA",
|
||||
"\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
|
||||
"\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
|
||||
"\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
|
||||
"\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
|
||||
"\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA"
|
||||
};
|
||||
|
||||
HashTestTuple testSet[] =
|
||||
{
|
||||
HashTestTuple("Hi There", "\x92\x94\x72\x7a\x36\x38\xbb\x1c\x13\xf4\x8e\xf8\x15\x8b\xfc\x9d"),
|
||||
HashTestTuple("what do ya want for nothing?", "\x75\x0c\x78\x3e\x6a\xb0\xb5\x03\xea\xa8\x6e\x31\x0a\x5d\xb7\x38"),
|
||||
HashTestTuple("\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD\xDD",
|
||||
"\x56\xbe\x34\x52\x1d\x14\x4c\x88\xdb\xb8\xc7\x33\xf0\xe8\xb3\xf6"),
|
||||
HashTestTuple("Test Using Larger Than Block-Size Key - Hash Key First", "\x6b\x1a\xb7\xfe\x4b\xd7\xbf\x8f\x0b\x62\xe6\xce\x61\xb9\xd0\xcd")
|
||||
};
|
||||
|
||||
bool pass=true;
|
||||
|
||||
cout << "\nHMAC/MD5 validation suite running...\n";
|
||||
|
||||
for (int k=0; k<4; k++)
|
||||
{
|
||||
HMAC_MD5 mac((byte *)keys[k], strlen(keys[k]));
|
||||
cout << "\nKEY: ";
|
||||
for (int j=0; keys[k][j] != 0; j++)
|
||||
cout << setw(2) << setfill('0') << hex << (int)(byte)keys[k][j];
|
||||
cout << endl;
|
||||
|
||||
pass = HashModuleTest(mac, testSet+k, 1) && pass;
|
||||
}
|
||||
|
||||
return pass;
|
||||
return RunTestDataFile("TestVectors/hmac.txt");
|
||||
}
|
||||
|
||||
#ifdef CRYPTOPP_REMOVED
|
||||
|
|
|
|||
Loading…
Reference in New Issue