diff options
author | weidai <weidai11@users.noreply.github.com> | 2005-01-20 04:19:35 +0000 |
---|---|---|
committer | weidai <weidai11@users.noreply.github.com> | 2005-01-20 04:19:35 +0000 |
commit | b3924f2108c0b0825060e91f6fde8202ce35624d (patch) | |
tree | 1f61e8bf59450a028415e5a3f08565a6ceb86afe /fipstest.cpp | |
parent | 79e29d0de49969af44474cc890cffd7b1d6b1a4b (diff) | |
download | cryptopp-git-b3924f2108c0b0825060e91f6fde8202ce35624d.tar.gz |
changes done for FIPS-140 lab code drop
Diffstat (limited to 'fipstest.cpp')
-rw-r--r-- | fipstest.cpp | 89 |
1 files changed, 50 insertions, 39 deletions
diff --git a/fipstest.cpp b/fipstest.cpp index 7a3f1a59..a9245c84 100644 --- a/fipstest.cpp +++ b/fipstest.cpp @@ -39,17 +39,18 @@ template <class CIPHER> void X917RNG_KnownAnswerTest( const char *key, const char *seed, + const char *deterministicTimeVector, const char *output, - unsigned int deterministicTimeVector, CIPHER *dummy = NULL) { #ifdef OS_RNG_AVAILABLE - std::string decodedKey, decodedSeed; + std::string decodedKey, decodedSeed, decodedDeterministicTimeVector; StringSource(key, true, new HexDecoder(new StringSink(decodedKey))); StringSource(seed, true, new HexDecoder(new StringSink(decodedSeed))); + StringSource(deterministicTimeVector, true, new HexDecoder(new StringSink(decodedDeterministicTimeVector))); AutoSeededX917RNG<CIPHER> rng; - rng.Reseed((const byte *)decodedKey.data(), decodedKey.size(), (const byte *)decodedSeed.data(), deterministicTimeVector); + rng.Reseed((const byte *)decodedKey.data(), decodedKey.size(), (const byte *)decodedSeed.data(), (const byte *)decodedDeterministicTimeVector.data()); KnownAnswerTest(rng, output); #else throw 0; @@ -360,19 +361,9 @@ void DoPowerUpSelfTest(const char *moduleFilename, const byte *expectedModuleMac X917RNG_KnownAnswerTest<DES_EDE3>( "48851090B4992453E83CDA86416534E53EA2FCE1A0B3A40C", // key "7D00BD0A79F6B0F5", // seed - "22B590B08B53363AEB89AD65F81A5B6FB83F326CE06BF35751E6C41B43B729C4", // output - 1489728269); // time vector - -/* SymmetricEncryptionKnownAnswerTest<DES>( - "0123456789abcdef", // key - "1234567890abcdef", // IV - "4e6f77206973207468652074696d6520666f7220616c6c20", // plaintext - "3fa40e8a984d48156a271787ab8883f9893d51ec4b563b53", // ecb - "E5C7CDDE872BF27C43E934008C389C0F683788499A7C05F6", // cbc - "F3096249C7F46E51A69E839B1A92F78403467133898EA622", // cfb - "f3096249c7f46e5135f24a242eeb3d3f3d6d5be3255af8c3", // ofb - "F3096249C7F46E51163A8CA0FFC94C27FA2F80F480B86F75");// ctr -*/ + "0000000000000001", // time vector + "fdc31a6dd6b43aca81dfe8a696a2f9cf661955a44124a05033b7fff71b5b0341"); // output + SymmetricEncryptionKnownAnswerTest<DES_EDE3>( "385D7189A5C3D485E1370AA5D408082B5CCCCB5E19F2D90E", "C141B5FCCD28DC8A", @@ -414,10 +405,14 @@ void DoPowerUpSelfTest(const char *moduleFilename, const byte *expectedModuleMac "874d6191b620e3261bef6864990db6ce9806f66b7970fdff8617187bb9fffdff5ae4df3edbd5d35e5b4f09020db03eab1e031dda2fbe03d1792170a0f3009cee"); // ctr - SecureHashKnownAnswerTest<SHA>( + SecureHashKnownAnswerTest<SHA1>( "abc", "A9993E364706816ABA3E25717850C26C9CD0D89D"); -/* + + SecureHashKnownAnswerTest<SHA224>( + "abc", + "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7"); + SecureHashKnownAnswerTest<SHA256>( "abc", "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"); @@ -429,46 +424,62 @@ void DoPowerUpSelfTest(const char *moduleFilename, const byte *expectedModuleMac SecureHashKnownAnswerTest<SHA512>( "abc", "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"); -*/ - MAC_KnownAnswerTest<HMAC<SHA> >( + + MAC_KnownAnswerTest<HMAC<SHA1> >( "303132333435363738393a3b3c3d3e3f40414243", "Sample #2", "0922d3405faa3d194f82a45830737d5cc6c75d24"); -/* - MAC_KnownAnswerTest<HMAC<SHA256> >( - "303132333435363738393a3b3c3d3e3f40414243", - "abc", - "D28363F335B2DAE468793A38680DEA9F7FB8BE1DCEDA197CDB3B1CB59A9F6422"); - MAC_KnownAnswerTest<HMAC<SHA384> >( - "303132333435363738393a3b3c3d3e3f40414243", - "abc", - "E7740C592F1414C969190EFACF51FC8BE1CB52F5DC5E686200D2CA1773D151DB19C59112371CE374165A6BF72AEF69D0"); - - MAC_KnownAnswerTest<HMAC<SHA512> >( - "303132333435363738393a3b3c3d3e3f40414243", - "abc", - "BF07864E733B995862F3C2D432C7FF2F5EB073FFFC4F880CD94D5D21086476B7428F27BE694A9D9CB3BB500FE1255852BAFCBAF4042390B3706CDF02421B51AC"); -*/ - SignatureKnownAnswerTest<RSASS<PKCS1v15, SHA> >( + const char *keyRSA1 = "30820150020100300d06092a864886f70d01010105000482013a3082013602010002400a66791dc6988168de7ab77419bb7fb0" "c001c62710270075142942e19a8d8c51d053b3e3782a1de5dc5af4ebe99468170114a1dfe67cdc9a9af55d655620bbab0203010001" "02400123c5b61ba36edb1d3679904199a89ea80c09b9122e1400c09adcf7784676d01d23356a7d44d6bd8bd50e94bfc723fa" "87d8862b75177691c11d757692df8881022033d48445c859e52340de704bcdda065fbb4058d740bd1d67d29e9c146c11cf61" "0220335e8408866b0fd38dc7002d3f972c67389a65d5d8306566d5c4f2a5aa52628b0220045ec90071525325d3d46db79695e9af" "acc4523964360e02b119baa366316241022015eb327360c7b60d12e5e2d16bdcd97981d17fba6b70db13b20b436e24eada590220" - "2ca6366d72781dfa24d34a9a24cbc2ae927a9958af426563ff63fb11658a461d", + "2ca6366d72781dfa24d34a9a24cbc2ae927a9958af426563ff63fb11658a461d"; + + const char *keyRSA2 = + "30820273020100300D06092A864886F70D01010105000482025D3082025902010002818100D40AF9" + "A2B713034249E5780056D70FC7DE75D76E44565AA6A6B8ED9646F3C19F9E254D72D7DE6E49DB2264" + "0C1D05AB9E2A5F901D8F3FE1F7AE02CEE2ECCE54A40ABAE55A004692752E70725AEEE7CDEA67628A" + "82A9239B4AB660C2BC56D9F01E90CBAAB9BF0FC8E17173CEFC5709A29391A7DDF3E0B758691AAF30" + "725B292F4F020111027F18C0BA087D082C45D75D3594E0767E4820818EB35612B80CEAB8C880ACA5" + "44B6876DFFEF85A576C0D45B551AFAA1FD63209CD745DF75C5A0F0B580296EA466CD0338207E4752" + "FF4E7DB724D8AE18CE5CF4153BB94C27869FBB50E64F02546E4B02997A0B8623E64017CC770759C6" + "695DB649EEFD829D688D441BCC4E7348F1024100EF86DD7AF3F32CDE8A9F6564E43A559A0C9F8BAD" + "36CC25330548B347AC158A345631FA90F7B873C36EFFAE2F7823227A3F580B5DD18304D5932751E7" + "43E9234F024100E2A039854B55688740E32A51DF4AF88613D91A371CF8DDD95D780A89D7CF2119A9" + "54F1AC0F3DCDB2F6959926E6D9D37D8BC07A4C634DE6F16315BD5F0DAC340102407ECEEDB9903572" + "1B76909F174BA6698DCA72953D957B22C0A871C8531EDE3A1BB52984A719BC010D1CA57A555DB83F" + "6DE54CBAB932AEC652F38D497A6F3F30CF024100854F30E4FF232E6DADB2CD99926855F484255AB7" + "01FBCDCB27EC426F33A7046972AA700ADBCA008763DF87440F52F4E070531AC385B55AAC1C2AE7DD" + "8F9278F1024100C313F4AF9E4A9DE1253C21080CE524251560C111550772FD08690F13FBE658342E" + "BD2D41C9DCB12374E871B1839E26CAE252E1AE3DAAD5F1EE1F42B4D0EE7581"; + + SignatureKnownAnswerTest<RSASS<PKCS1v15, SHA1> >( + keyRSA1, "Everyone gets Friday off.", "0610761F95FFD1B8F29DA34212947EC2AA0E358866A722F03CC3C41487ADC604A48FF54F5C6BEDB9FB7BD59F82D6E55D8F3174BA361B2214B2D74E8825E04E81"); + SignatureKnownAnswerTest<RSASS_ISO<SHA1> >( + keyRSA2, + "test", + "32F6BA41C8930DE71EE67F2627172CC539EDE04267FDE03AC295E3C50311F26C3B275D3AF513AC96" + "8EE493BAB7DA3A754661D1A7C4A0D1A2B7EE8B313AACD8CB8BFBC5C15EFB0EF15C86A9334A1E87AD" + "291EB961B5CA0E84930429B28780816AA94F96FC2367B71E2D2E4866FA966795B147F00600E5207E" + "2F189C883B37477C"); + SignaturePairwiseConsistencyTest<DSA>( "3082014A0201003082012B06072A8648CE3804013082011E02818100F468699A6F6EBCC0120D3B34C8E007F125EC7D81F763B8D0F33869AE3BD6B9F2ECCC7DF34DF84C0307449E9B85D30D57194BCCEB310F48141914DD13A077AAF9B624A6CBE666BBA1D7EBEA95B5BA6F54417FD5D4E4220C601E071D316A24EA814E8B0122DBF47EE8AEEFD319EBB01DD95683F10DBB4FEB023F8262A07EAEB7FD02150082AD4E034DA6EEACDFDAE68C36F2BAD614F9E53B02818071AAF73361A26081529F7D84078ADAFCA48E031DB54AD57FB1A833ADBD8672328AABAA0C756247998D7A5B10DACA359D231332CE8120B483A784FE07D46EEBFF0D7D374A10691F78653E6DC29E27CCB1B174923960DFE5B959B919B2C3816C19251832AFD8E35D810E598F82877ABF7D40A041565168BD7F0E21E3FE2A8D8C1C0416021426EBA66E846E755169F84A1DA981D86502405DDF"); - SignaturePairwiseConsistencyTest<ECDSA<EC2N, SHA> >( + SignaturePairwiseConsistencyTest<ECDSA<EC2N, SHA1> >( "302D020100301006072A8648CE3D020106052B8104000404163014020101040F0070337065E1E196980A9D00E37211"); - SignaturePairwiseConsistencyTest<ECDSA<ECP, SHA> >( + SignaturePairwiseConsistencyTest<ECDSA<ECP, SHA1> >( "3039020100301306072A8648CE3D020106082A8648CE3D030101041F301D02010104182BB8A13C8B867010BD9471D9E81FDB01ABD0538C64D6249A"); + + SignaturePairwiseConsistencyTest<RSASS<PSS, SHA1> >(keyRSA1); } catch (...) { |