Removed USING_NAMESPACE(std). Switch cout and friends to use std::cout

This commit is contained in:
Jeffrey Walton 2015-07-29 23:12:44 -04:00
parent 414b673706
commit 978b7149f2
3 changed files with 302 additions and 304 deletions

View File

@ -46,7 +46,9 @@
#include "validate.h"
USING_NAMESPACE(CryptoPP)
USING_NAMESPACE(std)
// using CryptoPP::auto_ptr;
using std::auto_ptr;
bool ValidateAll(bool thorough)
{
@ -122,9 +124,9 @@ bool ValidateAll(bool thorough)
pass=ValidateESIGN() && pass;
if (pass)
cout << "\nAll tests passed!\n";
std::cout << "\nAll tests passed!\n";
else
cout << "\nOops! Not all tests passed.\n";
std::cout << "\nOops! Not all tests passed.\n";
return pass;
}
@ -133,7 +135,7 @@ bool TestSettings()
{
bool pass = true;
cout << "\nTesting Settings...\n\n";
std::cout << "\nTesting Settings...\n\n";
word32 w;
memcpy_s(&w, sizeof(w), "\x01\x02\x03\x04", 4);
@ -141,87 +143,87 @@ bool TestSettings()
if (w == 0x04030201L)
{
#ifdef IS_LITTLE_ENDIAN
cout << "passed: ";
std::cout << "passed: ";
#else
cout << "FAILED: ";
std::cout << "FAILED: ";
pass = false;
#endif
cout << "Your machine is little endian.\n";
std::cout << "Your machine is little endian.\n";
}
else if (w == 0x01020304L)
{
#ifndef IS_LITTLE_ENDIAN
cout << "passed: ";
std::cout << "passed: ";
#else
cout << "FAILED: ";
std::cout << "FAILED: ";
pass = false;
#endif
cout << "Your machine is big endian.\n";
std::cout << "Your machine is big endian.\n";
}
else
{
cout << "FAILED: Your machine is neither big endian nor little endian.\n";
std::cout << "FAILED: Your machine is neither big endian nor little endian.\n";
pass = false;
}
#ifdef CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS
byte testvals[10] = {1,2,2,3,3,3,3,2,2,1};
if (*(word32 *)(testvals+3) == 0x03030303 && *(word64 *)(testvals+1) == W64LIT(0x0202030303030202))
cout << "passed: Your machine allows unaligned data access.\n";
std::cout << "passed: Your machine allows unaligned data access.\n";
else
{
cout << "FAILED: Unaligned data access gave incorrect results.\n";
std::cout << "FAILED: Unaligned data access gave incorrect results.\n";
pass = false;
}
#else
cout << "passed: CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS is not defined. Will restrict to aligned data access.\n";
std::cout << "passed: CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS is not defined. Will restrict to aligned data access.\n";
#endif
if (sizeof(byte) == 1)
cout << "passed: ";
std::cout << "passed: ";
else
{
cout << "FAILED: ";
std::cout << "FAILED: ";
pass = false;
}
cout << "sizeof(byte) == " << sizeof(byte) << endl;
std::cout << "sizeof(byte) == " << sizeof(byte) << std::endl;
if (sizeof(word16) == 2)
cout << "passed: ";
std::cout << "passed: ";
else
{
cout << "FAILED: ";
std::cout << "FAILED: ";
pass = false;
}
cout << "sizeof(word16) == " << sizeof(word16) << endl;
std::cout << "sizeof(word16) == " << sizeof(word16) << std::endl;
if (sizeof(word32) == 4)
cout << "passed: ";
std::cout << "passed: ";
else
{
cout << "FAILED: ";
std::cout << "FAILED: ";
pass = false;
}
cout << "sizeof(word32) == " << sizeof(word32) << endl;
std::cout << "sizeof(word32) == " << sizeof(word32) << std::endl;
if (sizeof(word64) == 8)
cout << "passed: ";
std::cout << "passed: ";
else
{
cout << "FAILED: ";
std::cout << "FAILED: ";
pass = false;
}
cout << "sizeof(word64) == " << sizeof(word64) << endl;
std::cout << "sizeof(word64) == " << sizeof(word64) << std::endl;
#ifdef CRYPTOPP_WORD128_AVAILABLE
if (sizeof(word128) == 16)
cout << "passed: ";
std::cout << "passed: ";
else
{
cout << "FAILED: ";
std::cout << "FAILED: ";
pass = false;
}
cout << "sizeof(word128) == " << sizeof(word128) << endl;
std::cout << "sizeof(word128) == " << sizeof(word128) << std::endl;
#endif
if (sizeof(word) == 2*sizeof(hword)
@ -229,17 +231,17 @@ bool TestSettings()
&& sizeof(dword) == 2*sizeof(word)
#endif
)
cout << "passed: ";
std::cout << "passed: ";
else
{
cout << "FAILED: ";
std::cout << "FAILED: ";
pass = false;
}
cout << "sizeof(hword) == " << sizeof(hword) << ", sizeof(word) == " << sizeof(word);
std::cout << "sizeof(hword) == " << sizeof(hword) << ", sizeof(word) == " << sizeof(word);
#ifdef CRYPTOPP_NATIVE_DWORD_AVAILABLE
cout << ", sizeof(dword) == " << sizeof(dword);
std::cout << ", sizeof(dword) == " << sizeof(dword);
#endif
cout << endl;
std::cout << std::endl;
#ifdef CRYPTOPP_CPUID_AVAILABLE
bool hasMMX = HasMMX();
@ -251,19 +253,19 @@ bool TestSettings()
if ((isP4 && (!hasMMX || !hasSSE2)) || (hasSSE2 && !hasMMX) || (cacheLineSize < 16 || cacheLineSize > 256 || !IsPowerOf2(cacheLineSize)))
{
cout << "FAILED: ";
std::cout << "FAILED: ";
pass = false;
}
else
cout << "passed: ";
std::cout << "passed: ";
cout << "hasMMX == " << hasMMX << ", hasISSE == " << hasISSE << ", hasSSE2 == " << hasSSE2 << ", hasSSSE3 == " << hasSSSE3 << ", hasAESNI == " << HasAESNI() << ", hasCLMUL == " << HasCLMUL() << ", isP4 == " << isP4 << ", cacheLineSize == " << cacheLineSize;
cout << ", AESNI_INTRINSICS == " << CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE << endl;
std::cout << "hasMMX == " << hasMMX << ", hasISSE == " << hasISSE << ", hasSSE2 == " << hasSSE2 << ", hasSSSE3 == " << hasSSSE3 << ", hasAESNI == " << HasAESNI() << ", hasCLMUL == " << HasCLMUL() << ", isP4 == " << isP4 << ", cacheLineSize == " << cacheLineSize;
std::cout << ", AESNI_INTRINSICS == " << CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE << std::endl;
#endif
if (!pass)
{
cout << "Some critical setting in config.h is in error. Please fix it and recompile." << endl;
std::cout << "Some critical setting in config.h is in error. Please fix it and recompile." << std::endl;
abort();
}
return pass;
@ -281,7 +283,7 @@ bool TestOS_RNG()
if (rng.get())
{
cout << "\nTesting operating system provided blocking random number generator...\n\n";
std::cout << "\nTesting operating system provided blocking random number generator...\n\n";
MeterFilter meter;
RandomNumberSource test(*rng, UINT_MAX, false, new Deflator(new Redirector(meter)));
@ -299,12 +301,12 @@ bool TestOS_RNG()
if (total < 16)
{
cout << "FAILED:";
std::cout << "FAILED:";
pass = false;
}
else
cout << "passed:";
cout << " it took " << long(t1) << " seconds to generate " << total << " bytes" << endl;
std::cout << "passed:";
std::cout << " it took " << long(t1) << " seconds to generate " << total << " bytes" << std::endl;
#if 0 // disable this part. it's causing an unpredictable pause during the validation testing
if (t1 < 2)
@ -329,12 +331,12 @@ bool TestOS_RNG()
}
if (length > 1024)
{
cout << "FAILED:";
std::cout << "FAILED:";
pass = false;
}
else
cout << "passed:";
cout << " it generated " << length << " bytes in " << long(time(NULL) - t) << " seconds" << endl;
std::cout << "passed:";
std::cout << " it generated " << length << " bytes in " << long(time(NULL) - t) << " seconds" << std::endl;
}
#endif
@ -342,15 +344,15 @@ bool TestOS_RNG()
if (meter.GetTotalBytes() < total)
{
cout << "FAILED:";
std::cout << "FAILED:";
pass = false;
}
else
cout << "passed:";
cout << " " << total << " generated bytes compressed to " << (size_t)meter.GetTotalBytes() << " bytes by DEFLATE" << endl;
std::cout << "passed:";
std::cout << " " << total << " generated bytes compressed to " << (size_t)meter.GetTotalBytes() << " bytes by DEFLATE" << std::endl;
}
else
cout << "\nNo operating system provided blocking random number generator, skipping test." << endl;
std::cout << "\nNo operating system provided blocking random number generator, skipping test." << std::endl;
rng.reset(NULL);
#ifdef NONBLOCKING_RNG_AVAILABLE
@ -360,37 +362,34 @@ bool TestOS_RNG()
if (rng.get())
{
cout << "\nTesting operating system provided nonblocking random number generator...\n\n";
std::cout << "\nTesting operating system provided nonblocking random number generator...\n\n";
MeterFilter meter;
RandomNumberSource test(*rng, 100000, true, new Deflator(new Redirector(meter)));
if (meter.GetTotalBytes() < 100000)
{
cout << "FAILED:";
std::cout << "FAILED:";
pass = false;
}
else
cout << "passed:";
cout << " 100000 generated bytes compressed to " << (size_t)meter.GetTotalBytes() << " bytes by DEFLATE" << endl;
std::cout << "passed:";
std::cout << " 100000 generated bytes compressed to " << (size_t)meter.GetTotalBytes() << " bytes by DEFLATE" << std::endl;
}
else
cout << "\nNo operating system provided nonblocking random number generator, skipping test." << endl;
std::cout << "\nNo operating system provided nonblocking random number generator, skipping test." << std::endl;
return pass;
}
// VC50 workaround
typedef auto_ptr<BlockTransformation> apbt;
class CipherFactory
{
public:
virtual unsigned int BlockSize() const =0;
virtual unsigned int KeyLength() const =0;
virtual apbt NewEncryption(const byte *key) const =0;
virtual apbt NewDecryption(const byte *key) const =0;
virtual auto_ptr<BlockTransformation> NewEncryption(const byte *key) const =0;
virtual auto_ptr<BlockTransformation> NewDecryption(const byte *key) const =0;
};
template <class E, class D> class FixedRoundsCipherFactory : public CipherFactory
@ -400,10 +399,10 @@ public:
unsigned int BlockSize() const {return E::BLOCKSIZE;}
unsigned int KeyLength() const {return m_keylen;}
apbt NewEncryption(const byte *key) const
{return apbt(new E(key, m_keylen));}
apbt NewDecryption(const byte *key) const
{return apbt(new D(key, m_keylen));}
auto_ptr<BlockTransformation> NewEncryption(const byte *key) const
{return auto_ptr<BlockTransformation>(new E(key, m_keylen));}
auto_ptr<BlockTransformation> NewDecryption(const byte *key) const
{return auto_ptr<BlockTransformation>(new D(key, m_keylen));}
unsigned int m_keylen;
};
@ -416,17 +415,17 @@ public:
unsigned int BlockSize() const {return E::BLOCKSIZE;}
unsigned int KeyLength() const {return m_keylen;}
apbt NewEncryption(const byte *key) const
{return apbt(new E(key, m_keylen, m_rounds));}
apbt NewDecryption(const byte *key) const
{return apbt(new D(key, m_keylen, m_rounds));}
auto_ptr<BlockTransformation> NewEncryption(const byte *key) const
{return auto_ptr<BlockTransformation>(new E(key, m_keylen, m_rounds));}
auto_ptr<BlockTransformation> NewDecryption(const byte *key) const
{return auto_ptr<BlockTransformation>(new D(key, m_keylen, m_rounds));}
unsigned int m_keylen, m_rounds;
};
bool BlockTransformationTest(const CipherFactory &cg, BufferedTransformation &valdata, unsigned int tuples = 0xffff)
{
HexEncoder output(new FileSink(cout));
HexEncoder output(new FileSink(std::cout));
SecByteBlock plain(cg.BlockSize()), cipher(cg.BlockSize()), out(cg.BlockSize()), outplain(cg.BlockSize());
SecByteBlock key(cg.KeyLength());
bool pass=true, fail;
@ -437,23 +436,23 @@ bool BlockTransformationTest(const CipherFactory &cg, BufferedTransformation &va
valdata.Get(plain, cg.BlockSize());
valdata.Get(cipher, cg.BlockSize());
apbt transE = cg.NewEncryption(key);
auto_ptr<BlockTransformation> transE = cg.NewEncryption(key);
transE->ProcessBlock(plain, out);
fail = !VerifyBufsEqual(out, cipher, cg.BlockSize());
apbt transD = cg.NewDecryption(key);
auto_ptr<BlockTransformation> transD = cg.NewDecryption(key);
transD->ProcessBlock(out, outplain);
fail=fail || !VerifyBufsEqual(outplain, plain, cg.BlockSize());
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
std::cout << (fail ? "FAILED " : "passed ");
output.Put(key, cg.KeyLength());
cout << " ";
std::cout << " ";
output.Put(outplain, cg.BlockSize());
cout << " ";
std::cout << " ";
output.Put(out, cg.BlockSize());
cout << endl;
std::cout << std::endl;
}
return pass;
}
@ -515,12 +514,12 @@ bool TestFilter(BufferedTransformation &bt, const byte *in, size_t inLen, const
bool ValidateDES()
{
cout << "\nDES validation suite running...\n\n";
std::cout << "\nDES validation suite running...\n\n";
FileSource valdata("TestData/descert.dat", true, new HexDecoder);
bool pass = BlockTransformationTest(FixedRoundsCipherFactory<DESEncryption, DESDecryption>(), valdata);
cout << "\nTesting EDE2, EDE3, and XEX3 variants...\n\n";
std::cout << "\nTesting EDE2, EDE3, and XEX3 variants...\n\n";
FileSource valdata1("TestData/3desval.dat", true, new HexDecoder);
pass = BlockTransformationTest(FixedRoundsCipherFactory<DES_EDE2_Encryption, DES_EDE2_Decryption>(), valdata1, 1) && pass;
@ -559,7 +558,7 @@ bool TestModeIV(SymmetricCipher &e, SymmetricCipher &d)
bool ValidateCipherModes()
{
cout << "\nTesting DES modes...\n\n";
std::cout << "\nTesting DES modes...\n\n";
static const byte key[] = {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};
static const byte iv[] = {0x12,0x34,0x56,0x78,0x90,0xab,0xcd,0xef};
static const byte plain[] = { // "Now is the time for all " without tailing 0
@ -581,13 +580,13 @@ bool ValidateCipherModes()
fail = !TestFilter(StreamTransformationFilter(modeE, NULL, StreamTransformationFilter::NO_PADDING).Ref(),
plain, sizeof(plain), encrypted, sizeof(encrypted));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "ECB encryption" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "ECB encryption" << std::endl;
ECB_Mode_ExternalCipher::Decryption modeD(desD);
fail = !TestFilter(StreamTransformationFilter(modeD, NULL, StreamTransformationFilter::NO_PADDING).Ref(),
encrypted, sizeof(encrypted), plain, sizeof(plain));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "ECB decryption" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "ECB decryption" << std::endl;
}
{
// from FIPS 81
@ -600,17 +599,17 @@ bool ValidateCipherModes()
fail = !TestFilter(StreamTransformationFilter(modeE, NULL, StreamTransformationFilter::NO_PADDING).Ref(),
plain, sizeof(plain), encrypted, sizeof(encrypted));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC encryption with no padding" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC encryption with no padding" << std::endl;
CBC_Mode_ExternalCipher::Decryption modeD(desD, iv);
fail = !TestFilter(StreamTransformationFilter(modeD, NULL, StreamTransformationFilter::NO_PADDING).Ref(),
encrypted, sizeof(encrypted), plain, sizeof(plain));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC decryption with no padding" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC decryption with no padding" << std::endl;
fail = !TestModeIV(modeE, modeD);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC mode IV generation" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC mode IV generation" << std::endl;
}
{
// generated with Crypto++, matches FIPS 81
@ -625,13 +624,13 @@ bool ValidateCipherModes()
fail = !TestFilter(StreamTransformationFilter(modeE).Ref(),
plain, sizeof(plain), encrypted, sizeof(encrypted));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC encryption with PKCS #7 padding" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC encryption with PKCS #7 padding" << std::endl;
CBC_Mode_ExternalCipher::Decryption modeD(desD, iv);
fail = !TestFilter(StreamTransformationFilter(modeD).Ref(),
encrypted, sizeof(encrypted), plain, sizeof(plain));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC decryption with PKCS #7 padding" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC decryption with PKCS #7 padding" << std::endl;
}
{
// generated with Crypto++ 5.2, matches FIPS 81
@ -646,13 +645,13 @@ bool ValidateCipherModes()
fail = !TestFilter(StreamTransformationFilter(modeE, NULL, StreamTransformationFilter::ONE_AND_ZEROS_PADDING).Ref(),
plain, sizeof(plain), encrypted, sizeof(encrypted));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC encryption with one-and-zeros padding" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC encryption with one-and-zeros padding" << std::endl;
CBC_Mode_ExternalCipher::Decryption modeD(desD, iv);
fail = !TestFilter(StreamTransformationFilter(modeD, NULL, StreamTransformationFilter::ONE_AND_ZEROS_PADDING).Ref(),
encrypted, sizeof(encrypted), plain, sizeof(plain));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC decryption with one-and-zeros padding" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC decryption with one-and-zeros padding" << std::endl;
}
{
static const byte plain[] = {'a', 0, 0, 0, 0, 0, 0, 0};
@ -664,13 +663,13 @@ bool ValidateCipherModes()
fail = !TestFilter(StreamTransformationFilter(modeE, NULL, StreamTransformationFilter::ZEROS_PADDING).Ref(),
plain, 1, encrypted, sizeof(encrypted));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC encryption with zeros padding" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC encryption with zeros padding" << std::endl;
CBC_Mode_ExternalCipher::Decryption modeD(desD, iv);
fail = !TestFilter(StreamTransformationFilter(modeD, NULL, StreamTransformationFilter::ZEROS_PADDING).Ref(),
encrypted, sizeof(encrypted), plain, sizeof(plain));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC decryption with zeros padding" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC decryption with zeros padding" << std::endl;
}
{
// generated with Crypto++, matches FIPS 81
@ -684,17 +683,17 @@ bool ValidateCipherModes()
fail = !TestFilter(StreamTransformationFilter(modeE).Ref(),
plain, sizeof(plain), encrypted, sizeof(encrypted));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC encryption with ciphertext stealing (CTS)" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC encryption with ciphertext stealing (CTS)" << std::endl;
CBC_CTS_Mode_ExternalCipher::Decryption modeD(desD, iv);
fail = !TestFilter(StreamTransformationFilter(modeD).Ref(),
encrypted, sizeof(encrypted), plain, sizeof(plain));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC decryption with ciphertext stealing (CTS)" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC decryption with ciphertext stealing (CTS)" << std::endl;
fail = !TestModeIV(modeE, modeD);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC CTS IV generation" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC CTS IV generation" << std::endl;
}
{
// generated with Crypto++
@ -709,13 +708,13 @@ bool ValidateCipherModes()
plain, 3, encrypted, sizeof(encrypted));
fail = !VerifyBufsEqual(stolenIV, decryptionIV, 8) || fail;
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC encryption with ciphertext and IV stealing" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC encryption with ciphertext and IV stealing" << std::endl;
CBC_CTS_Mode_ExternalCipher::Decryption modeD(desD, stolenIV);
fail = !TestFilter(StreamTransformationFilter(modeD).Ref(),
encrypted, sizeof(encrypted), plain, 3);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC decryption with ciphertext and IV stealing" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC decryption with ciphertext and IV stealing" << std::endl;
}
{
static const byte encrypted[] = { // from FIPS 81
@ -727,17 +726,17 @@ bool ValidateCipherModes()
fail = !TestFilter(StreamTransformationFilter(modeE).Ref(),
plain, sizeof(plain), encrypted, sizeof(encrypted));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CFB encryption" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CFB encryption" << std::endl;
CFB_Mode_ExternalCipher::Decryption modeD(desE, iv);
fail = !TestFilter(StreamTransformationFilter(modeD).Ref(),
encrypted, sizeof(encrypted), plain, sizeof(plain));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CFB decryption" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CFB decryption" << std::endl;
fail = !TestModeIV(modeE, modeD);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CFB mode IV generation" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CFB mode IV generation" << std::endl;
}
{
static const byte plain[] = { // "Now is the." without tailing 0
@ -749,17 +748,17 @@ bool ValidateCipherModes()
fail = !TestFilter(StreamTransformationFilter(modeE).Ref(),
plain, sizeof(plain), encrypted, sizeof(encrypted));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CFB (8-bit feedback) encryption" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CFB (8-bit feedback) encryption" << std::endl;
CFB_Mode_ExternalCipher::Decryption modeD(desE, iv, 1);
fail = !TestFilter(StreamTransformationFilter(modeD).Ref(),
encrypted, sizeof(encrypted), plain, sizeof(plain));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CFB (8-bit feedback) decryption" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CFB (8-bit feedback) decryption" << std::endl;
fail = !TestModeIV(modeE, modeD);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CFB (8-bit feedback) IV generation" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CFB (8-bit feedback) IV generation" << std::endl;
}
{
static const byte encrypted[] = { // from Eric Young's libdes
@ -771,17 +770,17 @@ bool ValidateCipherModes()
fail = !TestFilter(StreamTransformationFilter(modeE).Ref(),
plain, sizeof(plain), encrypted, sizeof(encrypted));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "OFB encryption" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "OFB encryption" << std::endl;
OFB_Mode_ExternalCipher::Decryption modeD(desE, iv);
fail = !TestFilter(StreamTransformationFilter(modeD).Ref(),
encrypted, sizeof(encrypted), plain, sizeof(plain));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "OFB decryption" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "OFB decryption" << std::endl;
fail = !TestModeIV(modeE, modeD);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "OFB IV generation" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "OFB IV generation" << std::endl;
}
{
static const byte encrypted[] = { // generated with Crypto++
@ -793,17 +792,17 @@ bool ValidateCipherModes()
fail = !TestFilter(StreamTransformationFilter(modeE).Ref(),
plain, sizeof(plain), encrypted, sizeof(encrypted));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "Counter Mode encryption" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "Counter Mode encryption" << std::endl;
CTR_Mode_ExternalCipher::Decryption modeD(desE, iv);
fail = !TestFilter(StreamTransformationFilter(modeD).Ref(),
encrypted, sizeof(encrypted), plain, sizeof(plain));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "Counter Mode decryption" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "Counter Mode decryption" << std::endl;
fail = !TestModeIV(modeE, modeD);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "Counter Mode IV generation" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "Counter Mode IV generation" << std::endl;
}
{
static const byte plain[] = { // "7654321 Now is the time for "
@ -820,41 +819,41 @@ bool ValidateCipherModes()
HashFilter cbcmacFilter(cbcmac);
fail = !TestFilter(cbcmacFilter, plain, sizeof(plain), mac1, sizeof(mac1));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "CBC MAC" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "CBC MAC" << std::endl;
DMAC<DES> dmac(key);
HashFilter dmacFilter(dmac);
fail = !TestFilter(dmacFilter, plain, sizeof(plain), mac2, sizeof(mac2));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "DMAC" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "DMAC" << std::endl;
}
{
CTR_Mode<AES>::Encryption modeE(plain, 16, plain);
CTR_Mode<AES>::Decryption modeD(plain, 16, plain);
fail = !TestModeIV(modeE, modeD);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "AES CTR Mode" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "AES CTR Mode" << std::endl;
}
{
OFB_Mode<AES>::Encryption modeE(plain, 16, plain);
OFB_Mode<AES>::Decryption modeD(plain, 16, plain);
fail = !TestModeIV(modeE, modeD);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "AES OFB Mode" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "AES OFB Mode" << std::endl;
}
{
CFB_Mode<AES>::Encryption modeE(plain, 16, plain);
CFB_Mode<AES>::Decryption modeD(plain, 16, plain);
fail = !TestModeIV(modeE, modeD);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "AES CFB Mode" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "AES CFB Mode" << std::endl;
}
{
CBC_Mode<AES>::Encryption modeE(plain, 16, plain);
CBC_Mode<AES>::Decryption modeD(plain, 16, plain);
fail = !TestModeIV(modeE, modeD);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ") << "AES CBC Mode" << endl;
std::cout << (fail ? "FAILED " : "passed ") << "AES CBC Mode" << std::endl;
}
return pass;
@ -862,7 +861,7 @@ bool ValidateCipherModes()
bool ValidateIDEA()
{
cout << "\nIDEA validation suite running...\n\n";
std::cout << "\nIDEA validation suite running...\n\n";
FileSource valdata("TestData/ideaval.dat", true, new HexDecoder);
return BlockTransformationTest(FixedRoundsCipherFactory<IDEAEncryption, IDEADecryption>(), valdata);
@ -870,7 +869,7 @@ bool ValidateIDEA()
bool ValidateSAFER()
{
cout << "\nSAFER validation suite running...\n\n";
std::cout << "\nSAFER validation suite running...\n\n";
FileSource valdata("TestData/saferval.dat", true, new HexDecoder);
bool pass = true;
@ -883,10 +882,10 @@ bool ValidateSAFER()
bool ValidateRC2()
{
cout << "\nRC2 validation suite running...\n\n";
std::cout << "\nRC2 validation suite running...\n\n";
FileSource valdata("TestData/rc2val.dat", true, new HexDecoder);
HexEncoder output(new FileSink(cout));
HexEncoder output(new FileSink(std::cout));
SecByteBlock plain(RC2Encryption::BLOCKSIZE), cipher(RC2Encryption::BLOCKSIZE), out(RC2Encryption::BLOCKSIZE), outplain(RC2Encryption::BLOCKSIZE);
SecByteBlock key(128);
bool pass=true, fail;
@ -901,23 +900,23 @@ bool ValidateRC2()
valdata.Get(plain, RC2Encryption::BLOCKSIZE);
valdata.Get(cipher, RC2Encryption::BLOCKSIZE);
apbt transE(new RC2Encryption(key, keyLen, effectiveLen));
auto_ptr<BlockTransformation> transE(new RC2Encryption(key, keyLen, effectiveLen));
transE->ProcessBlock(plain, out);
fail = !VerifyBufsEqual(out, cipher, RC2Encryption::BLOCKSIZE);
apbt transD(new RC2Decryption(key, keyLen, effectiveLen));
auto_ptr<BlockTransformation> transD(new RC2Decryption(key, keyLen, effectiveLen));
transD->ProcessBlock(out, outplain);
fail=fail || !VerifyBufsEqual(outplain, plain, RC2Encryption::BLOCKSIZE);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
std::cout << (fail ? "FAILED " : "passed ");
output.Put(key, keyLen);
cout << " ";
std::cout << " ";
output.Put(outplain, RC2Encryption::BLOCKSIZE);
cout << " ";
std::cout << " ";
output.Put(out, RC2Encryption::BLOCKSIZE);
cout << endl;
std::cout << std::endl;
}
return pass;
}
@ -1048,44 +1047,43 @@ bool ValidateARC4()
0x9e,0x27,0x55,0xab,0x18,0x1a,0xb7,0xe9,0x40,0xb0,
0xc0};
// VC60 workaround: auto_ptr lacks reset()
member_ptr<Weak::ARC4> arc4;
auto_ptr<Weak::ARC4> arc4;
bool pass=true, fail;
size_t i;
cout << "\nARC4 validation suite running...\n\n";
std::cout << "\nARC4 validation suite running...\n\n";
arc4.reset(new Weak::ARC4(Key0, sizeof(Key0)));
arc4->ProcessString(Input0, sizeof(Input0));
fail = !VerifyBufsEqual(Input0, Output0, sizeof(Input0));
cout << (fail ? "FAILED" : "passed") << " Test 0" << endl;
std::cout << (fail ? "FAILED" : "passed") << " Test 0" << std::endl;
pass = pass && !fail;
arc4.reset(new Weak::ARC4(Key1, sizeof(Key1)));
arc4->ProcessString(Key1, Input1, sizeof(Key1));
fail = !VerifyBufsEqual(Output1, Key1, sizeof(Key1));
cout << (fail ? "FAILED" : "passed") << " Test 1" << endl;
std::cout << (fail ? "FAILED" : "passed") << " Test 1" << std::endl;
pass = pass && !fail;
arc4.reset(new Weak::ARC4(Key2, sizeof(Key2)));
for (i=0, fail=false; i<sizeof(Input2); i++)
if (arc4->ProcessByte(Input2[i]) != Output2[i])
fail = true;
cout << (fail ? "FAILED" : "passed") << " Test 2" << endl;
std::cout << (fail ? "FAILED" : "passed") << " Test 2" << std::endl;
pass = pass && !fail;
arc4.reset(new Weak::ARC4(Key3, sizeof(Key3)));
for (i=0, fail=false; i<sizeof(Input3); i++)
if (arc4->ProcessByte(Input3[i]) != Output3[i])
fail = true;
cout << (fail ? "FAILED" : "passed") << " Test 3" << endl;
std::cout << (fail ? "FAILED" : "passed") << " Test 3" << std::endl;
pass = pass && !fail;
arc4.reset(new Weak::ARC4(Key4, sizeof(Key4)));
for (i=0, fail=false; i<sizeof(Input4); i++)
if (arc4->ProcessByte(Input4[i]) != Output4[i])
fail = true;
cout << (fail ? "FAILED" : "passed") << " Test 4" << endl;
std::cout << (fail ? "FAILED" : "passed") << " Test 4" << std::endl;
pass = pass && !fail;
return pass;
@ -1093,7 +1091,7 @@ bool ValidateARC4()
bool ValidateRC5()
{
cout << "\nRC5 validation suite running...\n\n";
std::cout << "\nRC5 validation suite running...\n\n";
FileSource valdata("TestData/rc5val.dat", true, new HexDecoder);
return BlockTransformationTest(VariableRoundsCipherFactory<RC5Encryption, RC5Decryption>(16, 12), valdata);
@ -1101,7 +1099,7 @@ bool ValidateRC5()
bool ValidateRC6()
{
cout << "\nRC6 validation suite running...\n\n";
std::cout << "\nRC6 validation suite running...\n\n";
FileSource valdata("TestData/rc6val.dat", true, new HexDecoder);
bool pass = true;
@ -1113,7 +1111,7 @@ bool ValidateRC6()
bool ValidateMARS()
{
cout << "\nMARS validation suite running...\n\n";
std::cout << "\nMARS validation suite running...\n\n";
FileSource valdata("TestData/marsval.dat", true, new HexDecoder);
bool pass = true;
@ -1125,7 +1123,7 @@ bool ValidateMARS()
bool ValidateRijndael()
{
cout << "\nRijndael (AES) validation suite running...\n\n";
std::cout << "\nRijndael (AES) validation suite running...\n\n";
FileSource valdata("TestData/rijndael.dat", true, new HexDecoder);
bool pass = true;
@ -1138,7 +1136,7 @@ bool ValidateRijndael()
bool ValidateTwofish()
{
cout << "\nTwofish validation suite running...\n\n";
std::cout << "\nTwofish validation suite running...\n\n";
FileSource valdata("TestData/twofishv.dat", true, new HexDecoder);
bool pass = true;
@ -1150,7 +1148,7 @@ bool ValidateTwofish()
bool ValidateSerpent()
{
cout << "\nSerpent validation suite running...\n\n";
std::cout << "\nSerpent validation suite running...\n\n";
FileSource valdata("TestData/serpentv.dat", true, new HexDecoder);
bool pass = true;
@ -1162,9 +1160,9 @@ bool ValidateSerpent()
bool ValidateBlowfish()
{
cout << "\nBlowfish validation suite running...\n\n";
std::cout << "\nBlowfish validation suite running...\n\n";
HexEncoder output(new FileSink(cout));
HexEncoder output(new FileSink(std::cout));
static const char *key[]={"abcdefghijklmnopqrstuvwxyz", "Who is John Galt?"};
byte *plain[]={(byte *)"BLOWFISH", (byte *)"\xfe\xdc\xba\x98\x76\x54\x32\x10"};
byte *cipher[]={(byte *)"\x32\x4e\xd0\xfe\xf4\x13\xa2\x03", (byte *)"\xcc\x91\x73\x2b\x80\x22\xf6\x84"};
@ -1182,21 +1180,21 @@ bool ValidateBlowfish()
fail = fail || !VerifyBufsEqual(outplain, plain[i], 8);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << '\"' << key[i] << '\"';
std::cout << (fail ? "FAILED " : "passed ");
std::cout << '\"' << key[i] << '\"';
for (int j=0; j<(signed int)(30-strlen(key[i])); j++)
cout << ' ';
std::cout << ' ';
output.Put(outplain, 8);
cout << " ";
std::cout << " ";
output.Put(out, 8);
cout << endl;
std::cout << std::endl;
}
return pass;
}
bool ValidateThreeWay()
{
cout << "\n3-WAY validation suite running...\n\n";
std::cout << "\n3-WAY validation suite running...\n\n";
FileSource valdata("TestData/3wayval.dat", true, new HexDecoder);
return BlockTransformationTest(FixedRoundsCipherFactory<ThreeWayEncryption, ThreeWayDecryption>(), valdata);
@ -1204,7 +1202,7 @@ bool ValidateThreeWay()
bool ValidateGOST()
{
cout << "\nGOST validation suite running...\n\n";
std::cout << "\nGOST validation suite running...\n\n";
FileSource valdata("TestData/gostval.dat", true, new HexDecoder);
return BlockTransformationTest(FixedRoundsCipherFactory<GOSTEncryption, GOSTDecryption>(), valdata);
@ -1212,7 +1210,7 @@ bool ValidateGOST()
bool ValidateSHARK()
{
cout << "\nSHARK validation suite running...\n\n";
std::cout << "\nSHARK validation suite running...\n\n";
FileSource valdata("TestData/sharkval.dat", true, new HexDecoder);
return BlockTransformationTest(FixedRoundsCipherFactory<SHARKEncryption, SHARKDecryption>(), valdata);
@ -1222,14 +1220,14 @@ bool ValidateCAST()
{
bool pass = true;
cout << "\nCAST-128 validation suite running...\n\n";
std::cout << "\nCAST-128 validation suite running...\n\n";
FileSource val128("TestData/cast128v.dat", true, new HexDecoder);
pass = BlockTransformationTest(FixedRoundsCipherFactory<CAST128Encryption, CAST128Decryption>(16), val128, 1) && pass;
pass = BlockTransformationTest(FixedRoundsCipherFactory<CAST128Encryption, CAST128Decryption>(10), val128, 1) && pass;
pass = BlockTransformationTest(FixedRoundsCipherFactory<CAST128Encryption, CAST128Decryption>(5), val128, 1) && pass;
cout << "\nCAST-256 validation suite running...\n\n";
std::cout << "\nCAST-256 validation suite running...\n\n";
FileSource val256("TestData/cast256v.dat", true, new HexDecoder);
pass = BlockTransformationTest(FixedRoundsCipherFactory<CAST256Encryption, CAST256Decryption>(16), val256, 1) && pass;
@ -1241,7 +1239,7 @@ bool ValidateCAST()
bool ValidateSquare()
{
cout << "\nSquare validation suite running...\n\n";
std::cout << "\nSquare validation suite running...\n\n";
FileSource valdata("TestData/squareva.dat", true, new HexDecoder);
return BlockTransformationTest(FixedRoundsCipherFactory<SquareEncryption, SquareDecryption>(), valdata);
@ -1249,7 +1247,7 @@ bool ValidateSquare()
bool ValidateSKIPJACK()
{
cout << "\nSKIPJACK validation suite running...\n\n";
std::cout << "\nSKIPJACK validation suite running...\n\n";
FileSource valdata("TestData/skipjack.dat", true, new HexDecoder);
return BlockTransformationTest(FixedRoundsCipherFactory<SKIPJACKEncryption, SKIPJACKDecryption>(), valdata);
@ -1262,7 +1260,7 @@ bool ValidateSEAL()
byte key[] = {0x67, 0x45, 0x23, 0x01, 0xef, 0xcd, 0xab, 0x89, 0x98, 0xba, 0xdc, 0xfe, 0x10, 0x32, 0x54, 0x76, 0xc3, 0xd2, 0xe1, 0xf0};
byte iv[] = {0x01, 0x35, 0x77, 0xaf};
cout << "\nSEAL validation suite running...\n\n";
std::cout << "\nSEAL validation suite running...\n\n";
SEAL<>::Encryption seal(key, sizeof(key), iv);
unsigned int size = sizeof(input);
@ -1279,7 +1277,7 @@ bool ValidateSEAL()
seal.ProcessString(output+2, size-2);
pass = pass && VerifyBufsEqual(output+1, input+1, size-1);
cout << (pass ? "passed" : "FAILED") << endl;
std::cout << (pass ? "passed" : "FAILED") << std::endl;
return pass;
}
@ -1315,36 +1313,36 @@ bool ValidateBaseCode()
"39445230745055316462580A324E6E6132397A6433742F6734654C6A354F586D352B6A7036757673"
"3765377638504879382F5431397666342B6672372F50332B0A";
cout << "\nBase64, base32 and hex coding validation suite running...\n\n";
std::cout << "\nBase64, base32 and hex coding validation suite running...\n\n";
fail = !TestFilter(HexEncoder().Ref(), data, 255, (const byte *)hexEncoded, strlen(hexEncoded));
cout << (fail ? "FAILED " : "passed ");
cout << "Hex Encoding\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "Hex Encoding\n";
pass = pass && !fail;
fail = !TestFilter(HexDecoder().Ref(), (const byte *)hexEncoded, strlen(hexEncoded), data, 255);
cout << (fail ? "FAILED " : "passed ");
cout << "Hex Decoding\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "Hex Decoding\n";
pass = pass && !fail;
fail = !TestFilter(Base32Encoder().Ref(), data, 255, (const byte *)base32Encoded, strlen(base32Encoded));
cout << (fail ? "FAILED " : "passed ");
cout << "Base32 Encoding\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "Base32 Encoding\n";
pass = pass && !fail;
fail = !TestFilter(Base32Decoder().Ref(), (const byte *)base32Encoded, strlen(base32Encoded), data, 255);
cout << (fail ? "FAILED " : "passed ");
cout << "Base32 Decoding\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "Base32 Decoding\n";
pass = pass && !fail;
fail = !TestFilter(Base64Encoder(new HexEncoder).Ref(), data, 255, (const byte *)base64AndHexEncoded, strlen(base64AndHexEncoded));
cout << (fail ? "FAILED " : "passed ");
cout << "Base64 Encoding\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "Base64 Encoding\n";
pass = pass && !fail;
fail = !TestFilter(HexDecoder(new Base64Decoder).Ref(), (const byte *)base64AndHexEncoded, strlen(base64AndHexEncoded), data, 255);
cout << (fail ? "FAILED " : "passed ");
cout << "Base64 Decoding\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "Base64 Decoding\n";
pass = pass && !fail;
return pass;
@ -1352,7 +1350,7 @@ bool ValidateBaseCode()
bool ValidateSHACAL2()
{
cout << "\nSHACAL-2 validation suite running...\n\n";
std::cout << "\nSHACAL-2 validation suite running...\n\n";
bool pass = true;
FileSource valdata("TestData/shacal2v.dat", true, new HexDecoder);
@ -1363,7 +1361,7 @@ bool ValidateSHACAL2()
bool ValidateCamellia()
{
cout << "\nCamellia validation suite running...\n\n";
std::cout << "\nCamellia validation suite running...\n\n";
bool pass = true;
FileSource valdata("TestData/camellia.dat", true, new HexDecoder);
@ -1375,40 +1373,40 @@ bool ValidateCamellia()
bool ValidateSalsa()
{
cout << "\nSalsa validation suite running...\n";
std::cout << "\nSalsa validation suite running...\n";
return RunTestDataFile("TestVectors/salsa.txt");
}
bool ValidateSosemanuk()
{
cout << "\nSosemanuk validation suite running...\n";
std::cout << "\nSosemanuk validation suite running...\n";
return RunTestDataFile("TestVectors/sosemanuk.txt");
}
bool ValidateVMAC()
{
cout << "\nVMAC validation suite running...\n";
std::cout << "\nVMAC validation suite running...\n";
return RunTestDataFile("TestVectors/vmac.txt");
}
bool ValidateCCM()
{
cout << "\nAES/CCM validation suite running...\n";
std::cout << "\nAES/CCM validation suite running...\n";
return RunTestDataFile("TestVectors/ccm.txt");
}
bool ValidateGCM()
{
cout << "\nAES/GCM validation suite running...\n";
cout << "\n2K tables:";
std::cout << "\nAES/GCM validation suite running...\n";
std::cout << "\n2K tables:";
bool pass = RunTestDataFile("TestVectors/gcm.txt", MakeParameters(Name::TableSize(), (int)2048));
cout << "\n64K tables:";
std::cout << "\n64K tables:";
return RunTestDataFile("TestVectors/gcm.txt", MakeParameters(Name::TableSize(), (int)64*1024)) && pass;
}
bool ValidateCMAC()
{
cout << "\nCMAC validation suite running...\n";
std::cout << "\nCMAC validation suite running...\n";
return RunTestDataFile("TestVectors/cmac.txt");
}

View File

@ -52,7 +52,7 @@ private:
bool ValidateBBS()
{
cout << "\nBlumBlumShub validation suite running...\n\n";
std::cout << "\nBlumBlumShub validation suite running...\n\n";
Integer p("212004934506826557583707108431463840565872545889679278744389317666981496005411448865750399674653351");
Integer q("100677295735404212434355574418077394581488455772477016953458064183204108039226017738610663984508231");
@ -74,30 +74,30 @@ bool ValidateBBS()
fail = !VerifyBufsEqual(output1, buf, 20);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
std::cout << (fail ? "FAILED " : "passed ");
for (j=0;j<20;j++)
cout << setw(2) << setfill('0') << hex << (int)buf[j];
cout << endl;
std::cout << setw(2) << setfill('0') << hex << (int)buf[j];
std::cout << std::endl;
bbs.Seek(10);
bbs.GenerateBlock(buf, 10);
fail = !VerifyBufsEqual(output1+10, buf, 10);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
std::cout << (fail ? "FAILED " : "passed ");
for (j=0;j<10;j++)
cout << setw(2) << setfill('0') << hex << (int)buf[j];
cout << endl;
std::cout << setw(2) << setfill('0') << hex << (int)buf[j];
std::cout << std::endl;
bbs.Seek(1234567);
bbs.GenerateBlock(buf, 20);
fail = !VerifyBufsEqual(output2, buf, 20);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
std::cout << (fail ? "FAILED " : "passed ");
for (j=0;j<20;j++)
cout << setw(2) << setfill('0') << hex << (int)buf[j];
cout << endl;
std::cout << setw(2) << setfill('0') << hex << (int)buf[j];
std::cout << std::endl;
return pass;
}
@ -109,8 +109,8 @@ bool SignatureValidate(PK_Signer &priv, PK_Verifier &pub, bool thorough = false)
fail = !pub.GetMaterial().Validate(GlobalRNG(), thorough ? 3 : 2) || !priv.GetMaterial().Validate(GlobalRNG(), thorough ? 3 : 2);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "signature key validation\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "signature key validation\n";
static const byte message[] = "test message";
const unsigned int messageLen = COUNTOF(message);
@ -120,15 +120,15 @@ bool SignatureValidate(PK_Signer &priv, PK_Verifier &pub, bool thorough = false)
fail = !pub.VerifyMessage(message, messageLen, signature, signatureLength);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "signature and verification\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "signature and verification\n";
++signature[0];
fail = pub.VerifyMessage(message, messageLen, signature, signatureLength);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "checking invalid signature" << endl;
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "checking invalid signature" << std::endl;
if (priv.MaxRecoverableLength() > 0)
{
@ -138,16 +138,16 @@ bool SignatureValidate(PK_Signer &priv, PK_Verifier &pub, bool thorough = false)
fail = !(result.isValidCoding && result.messageLength == messageLen && VerifyBufsEqual(recovered, message, messageLen));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "signature and verification with recovery" << endl;
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "signature and verification with recovery" << std::endl;
++signature[0];
result = pub.RecoverMessage(recovered, NULL, 0, signature, signatureLength);
fail = result.isValidCoding;
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "recovery with invalid signature" << endl;
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "recovery with invalid signature" << std::endl;
}
return pass;
@ -160,8 +160,8 @@ bool CryptoSystemValidate(PK_Decryptor &priv, PK_Encryptor &pub, bool thorough =
fail = !pub.GetMaterial().Validate(GlobalRNG(), thorough ? 3 : 2) || !priv.GetMaterial().Validate(GlobalRNG(), thorough ? 3 : 2);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "cryptosystem key validation\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "cryptosystem key validation\n";
static const byte message[] = "test message";
const int messageLen = COUNTOF(message);
@ -174,8 +174,8 @@ bool CryptoSystemValidate(PK_Decryptor &priv, PK_Encryptor &pub, bool thorough =
fail = fail || !VerifyBufsEqual(message, plaintext, messageLen);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "encryption and decryption\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "encryption and decryption\n";
return pass;
}
@ -183,10 +183,10 @@ bool CryptoSystemValidate(PK_Decryptor &priv, PK_Encryptor &pub, bool thorough =
bool SimpleKeyAgreementValidate(SimpleKeyAgreementDomain &d)
{
if (d.GetCryptoParameters().Validate(GlobalRNG(), 3))
cout << "passed simple key agreement domain parameters validation" << endl;
std::cout << "passed simple key agreement domain parameters validation" << std::endl;
else
{
cout << "FAILED simple key agreement domain parameters invalid" << endl;
std::cout << "FAILED simple key agreement domain parameters invalid" << std::endl;
return false;
}
@ -202,27 +202,27 @@ bool SimpleKeyAgreementValidate(SimpleKeyAgreementDomain &d)
if (!(d.Agree(val1, priv1, pub2) && d.Agree(val2, priv2, pub1)))
{
cout << "FAILED simple key agreement failed" << endl;
std::cout << "FAILED simple key agreement failed" << std::endl;
return false;
}
if (!VerifyBufsEqual(val1.begin(), val2.begin(), d.AgreedValueLength()))
{
cout << "FAILED simple agreed values not equal" << endl;
std::cout << "FAILED simple agreed values not equal" << std::endl;
return false;
}
cout << "passed simple key agreement" << endl;
std::cout << "passed simple key agreement" << std::endl;
return true;
}
bool AuthenticatedKeyAgreementValidate(AuthenticatedKeyAgreementDomain &d)
{
if (d.GetCryptoParameters().Validate(GlobalRNG(), 3))
cout << "passed authenticated key agreement domain parameters validation" << endl;
std::cout << "passed authenticated key agreement domain parameters validation" << std::endl;
else
{
cout << "FAILED authenticated key agreement domain parameters invalid" << endl;
std::cout << "FAILED authenticated key agreement domain parameters invalid" << std::endl;
return false;
}
@ -242,23 +242,23 @@ bool AuthenticatedKeyAgreementValidate(AuthenticatedKeyAgreementDomain &d)
if (!(d.Agree(val1, spriv1, epriv1, spub2, epub2) && d.Agree(val2, spriv2, epriv2, spub1, epub1)))
{
cout << "FAILED authenticated key agreement failed" << endl;
std::cout << "FAILED authenticated key agreement failed" << std::endl;
return false;
}
if (!VerifyBufsEqual(val1.begin(), val2.begin(), d.AgreedValueLength()))
{
cout << "FAILED authenticated agreed values not equal" << endl;
std::cout << "FAILED authenticated agreed values not equal" << std::endl;
return false;
}
cout << "passed authenticated key agreement" << endl;
std::cout << "passed authenticated key agreement" << std::endl;
return true;
}
bool ValidateRSA()
{
cout << "\nRSA validation suite running...\n\n";
std::cout << "\nRSA validation suite running...\n\n";
byte out[100], outPlain[100];
bool pass = true, fail;
@ -279,21 +279,21 @@ bool ValidateRSA()
fail = !VerifyBufsEqual(signature, out, 64);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "signature check against test vector\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "signature check against test vector\n";
fail = !rsaPub.VerifyMessage((byte *)plain, strlen(plain), out, signatureLength);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "verification check against test vector\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "verification check against test vector\n";
out[10]++;
fail = rsaPub.VerifyMessage((byte *)plain, strlen(plain), out, signatureLength);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "invalid signature verification\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "invalid signature verification\n";
}
{
FileSource keys("TestData/rsa1024.dat", true, new HexDecoder);
@ -336,8 +336,8 @@ bool ValidateRSA()
fail = !result.isValidCoding || (result.messageLength!=8) || !VerifyBufsEqual(out, encrypted, 50) || !VerifyBufsEqual(plain, outPlain, 8);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "PKCS 2.0 encryption and decryption\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "PKCS 2.0 encryption and decryption\n";
}
return pass;
@ -345,7 +345,7 @@ bool ValidateRSA()
bool ValidateDH()
{
cout << "\nDH validation suite running...\n\n";
std::cout << "\nDH validation suite running...\n\n";
FileSource f("TestData/dh1024.dat", true, new HexDecoder());
DH dh(f);
@ -354,7 +354,7 @@ bool ValidateDH()
bool ValidateMQV()
{
cout << "\nMQV validation suite running...\n\n";
std::cout << "\nMQV validation suite running...\n\n";
FileSource f("TestData/mqv1024.dat", true, new HexDecoder());
MQV mqv(f);
@ -363,7 +363,7 @@ bool ValidateMQV()
bool ValidateLUC_DH()
{
cout << "\nLUC-DH validation suite running...\n\n";
std::cout << "\nLUC-DH validation suite running...\n\n";
FileSource f("TestData/lucd512.dat", true, new HexDecoder());
LUC_DH dh(f);
@ -372,7 +372,7 @@ bool ValidateLUC_DH()
bool ValidateXTR_DH()
{
cout << "\nXTR-DH validation suite running...\n\n";
std::cout << "\nXTR-DH validation suite running...\n\n";
FileSource f("TestData/xtrdh171.dat", true, new HexDecoder());
XTR_DH dh(f);
@ -381,7 +381,7 @@ bool ValidateXTR_DH()
bool ValidateElGamal()
{
cout << "\nElGamal validation suite running...\n\n";
std::cout << "\nElGamal validation suite running...\n\n";
bool pass = true;
{
FileSource fc("TestData/elgc1024.dat", true, new HexDecoder);
@ -399,7 +399,7 @@ bool ValidateElGamal()
bool ValidateDLIES()
{
cout << "\nDLIES validation suite running...\n\n";
std::cout << "\nDLIES validation suite running...\n\n";
bool pass = true;
{
FileSource fc("TestData/dlie1024.dat", true, new HexDecoder);
@ -408,7 +408,7 @@ bool ValidateDLIES()
pass = CryptoSystemValidate(privC, pubC) && pass;
}
{
cout << "Generating new encryption key..." << endl;
std::cout << "Generating new encryption key..." << std::endl;
DLIES<>::GroupParameters gp;
gp.GenerateRandomWithKeySize(GlobalRNG(), 128);
DLIES<>::Decryptor decryptor;
@ -422,7 +422,7 @@ bool ValidateDLIES()
bool ValidateNR()
{
cout << "\nNR validation suite running...\n\n";
std::cout << "\nNR validation suite running...\n\n";
bool pass = true;
{
FileSource f("TestData/nr2048.dat", true, new HexDecoder);
@ -433,7 +433,7 @@ bool ValidateNR()
pass = SignatureValidate(privS, pubS) && pass;
}
{
cout << "Generating new signature key..." << endl;
std::cout << "Generating new signature key..." << std::endl;
NR<SHA>::Signer privS(GlobalRNG(), 256);
NR<SHA>::Verifier pubS(privS);
@ -444,7 +444,7 @@ bool ValidateNR()
bool ValidateDSA(bool thorough)
{
cout << "\nDSA validation suite running...\n\n";
std::cout << "\nDSA validation suite running...\n\n";
bool pass = true;
FileSource fs1("TestData/dsa1024.dat", true, new HexDecoder());
@ -460,7 +460,7 @@ bool ValidateDSA(bool thorough)
bool ValidateLUC()
{
cout << "\nLUC validation suite running...\n\n";
std::cout << "\nLUC validation suite running...\n\n";
bool pass=true;
{
@ -479,14 +479,14 @@ bool ValidateLUC()
bool ValidateLUC_DL()
{
cout << "\nLUC-HMP validation suite running...\n\n";
std::cout << "\nLUC-HMP validation suite running...\n\n";
FileSource f("TestData/lucs512.dat", true, new HexDecoder);
LUC_HMP<SHA>::Signer privS(f);
LUC_HMP<SHA>::Verifier pubS(privS);
bool pass = SignatureValidate(privS, pubS);
cout << "\nLUC-IES validation suite running...\n\n";
std::cout << "\nLUC-IES validation suite running...\n\n";
FileSource fc("TestData/lucc512.dat", true, new HexDecoder);
LUC_IES<>::Decryptor privC(fc);
@ -498,7 +498,7 @@ bool ValidateLUC_DL()
bool ValidateRabin()
{
cout << "\nRabin validation suite running...\n\n";
std::cout << "\nRabin validation suite running...\n\n";
bool pass=true;
{
@ -517,7 +517,7 @@ bool ValidateRabin()
bool ValidateRW()
{
cout << "\nRW validation suite running...\n\n";
std::cout << "\nRW validation suite running...\n\n";
bool pass=true;
FileSource f("TestData/rw1024.dat", true, new HexDecoder);
@ -531,7 +531,7 @@ bool ValidateRW()
/*
bool ValidateBlumGoldwasser()
{
cout << "\nBlumGoldwasser validation suite running...\n\n";
std::cout << "\nBlumGoldwasser validation suite running...\n\n";
FileSource f("TestData/blum512.dat", true, new HexDecoder);
BlumGoldwasserPrivateKey priv(f);
@ -543,7 +543,7 @@ bool ValidateBlumGoldwasser()
bool ValidateECP()
{
cout << "\nECP validation suite running...\n\n";
std::cout << "\nECP validation suite running...\n\n";
ECIES<ECP>::Decryptor cpriv(GlobalRNG(), ASN1::secp192r1());
ECIES<ECP>::Encryptor cpub(cpriv);
@ -568,7 +568,7 @@ bool ValidateECP()
pass = SimpleKeyAgreementValidate(ecdhc) && pass;
pass = AuthenticatedKeyAgreementValidate(ecmqvc) && pass;
cout << "Turning on point compression..." << endl;
std::cout << "Turning on point compression..." << std::endl;
cpriv.AccessKey().AccessGroupParameters().SetPointCompression(true);
cpub.AccessKey().AccessGroupParameters().SetPointCompression(true);
ecdhc.AccessGroupParameters().SetPointCompression(true);
@ -577,13 +577,13 @@ bool ValidateECP()
pass = SimpleKeyAgreementValidate(ecdhc) && pass;
pass = AuthenticatedKeyAgreementValidate(ecmqvc) && pass;
cout << "Testing SEC 2, NIST, and Brainpool recommended curves..." << endl;
std::cout << "Testing SEC 2, NIST, and Brainpool recommended curves..." << std::endl;
OID oid;
while (!(oid = DL_GroupParameters_EC<ECP>::GetNextRecommendedParametersOID(oid)).m_values.empty())
{
DL_GroupParameters_EC<ECP> params(oid);
bool fail = !params.Validate(GlobalRNG(), 2);
cout << (fail ? "FAILED" : "passed") << " " << dec << params.GetCurve().GetField().MaxElementBitLength() << " bits" << endl;
std::cout << (fail ? "FAILED" : "passed") << " " << dec << params.GetCurve().GetField().MaxElementBitLength() << " bits" << std::endl;
pass = pass && !fail;
}
@ -592,7 +592,7 @@ bool ValidateECP()
bool ValidateEC2N()
{
cout << "\nEC2N validation suite running...\n\n";
std::cout << "\nEC2N validation suite running...\n\n";
ECIES<EC2N>::Decryptor cpriv(GlobalRNG(), ASN1::sect193r1());
ECIES<EC2N>::Encryptor cpub(cpriv);
@ -615,7 +615,7 @@ bool ValidateEC2N()
pass = SimpleKeyAgreementValidate(ecdhc) && pass;
pass = AuthenticatedKeyAgreementValidate(ecmqvc) && pass;
cout << "Turning on point compression..." << endl;
std::cout << "Turning on point compression..." << std::endl;
cpriv.AccessKey().AccessGroupParameters().SetPointCompression(true);
cpub.AccessKey().AccessGroupParameters().SetPointCompression(true);
ecdhc.AccessGroupParameters().SetPointCompression(true);
@ -625,13 +625,13 @@ bool ValidateEC2N()
pass = AuthenticatedKeyAgreementValidate(ecmqvc) && pass;
#if 0 // TODO: turn this back on when I make EC2N faster for pentanomial basis
cout << "Testing SEC 2 recommended curves..." << endl;
std::cout << "Testing SEC 2 recommended curves..." << std::endl;
OID oid;
while (!(oid = DL_GroupParameters_EC<EC2N>::GetNextRecommendedParametersOID(oid)).m_values.empty())
{
DL_GroupParameters_EC<EC2N> params(oid);
bool fail = !params.Validate(GlobalRNG(), 2);
cout << (fail ? "FAILED" : "passed") << " " << params.GetCurve().GetField().MaxElementBitLength() << " bits" << endl;
std::cout << (fail ? "FAILED" : "passed") << " " << params.GetCurve().GetField().MaxElementBitLength() << " bits" << std::endl;
pass = pass && !fail;
}
#endif
@ -641,7 +641,7 @@ bool ValidateEC2N()
bool ValidateECDSA()
{
cout << "\nECDSA validation suite running...\n\n";
std::cout << "\nECDSA validation suite running...\n\n";
// from Sample Test Vectors for P1363
GF2NT gf2n(191, 9, 0);
@ -672,14 +672,14 @@ bool ValidateECDSA()
fail = (rOut != r) || (sOut != s);
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "signature check against test vector\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "signature check against test vector\n";
fail = !pub.VerifyMessage((byte *)"abc", 3, sig, sizeof(sig));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "verification check against test vector\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "verification check against test vector\n";
fail = pub.VerifyMessage((byte *)"xyz", 3, sig, sizeof(sig));
pass = pass && !fail;
@ -691,7 +691,7 @@ bool ValidateECDSA()
bool ValidateESIGN()
{
cout << "\nESIGN validation suite running...\n\n";
std::cout << "\nESIGN validation suite running...\n\n";
bool pass = true, fail;
@ -713,10 +713,10 @@ bool ValidateESIGN()
fail = !verifier.VerifyMessage((byte *)plain, strlen(plain), signature, verifier.SignatureLength());
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
cout << "verification check against test vector\n";
std::cout << (fail ? "FAILED " : "passed ");
std::cout << "verification check against test vector\n";
cout << "Generating signature key from seed..." << endl;
std::cout << "Generating signature key from seed..." << std::endl;
signer.AccessKey().GenerateRandom(GlobalRNG(), MakeParameters("Seed", ConstByteArrayParameter((const byte *)"test", 4))("KeySize", 3*512));
verifier = signer;

View File

@ -61,13 +61,13 @@ bool HashModuleTest(HashTransformation &md, const HashTestTuple *testSet, unsign
fail = !VerifyBufsEqual(digest, testSet[i].output, md.DigestSize());
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
std::cout << (fail ? "FAILED " : "passed ");
for (j=0; j<md.DigestSize(); j++)
cout << setw(2) << setfill('0') << hex << (int)digest[j];
cout << " \"" << (char *)testSet[i].input << '\"';
std::cout << setw(2) << setfill('0') << hex << (int)digest[j];
std::cout << " \"" << (char *)testSet[i].input << '\"';
if (testSet[i].repeatTimes != 1)
cout << " repeated " << dec << testSet[i].repeatTimes << " times";
cout << endl;
std::cout << " repeated " << dec << testSet[i].repeatTimes << " times";
std::cout << std::endl;
}
return pass;
@ -89,7 +89,7 @@ bool ValidateCRC32()
CRC32 crc;
cout << "\nCRC-32 validation suite running...\n\n";
std::cout << "\nCRC-32 validation suite running...\n\n";
return HashModuleTest(crc, testSet, COUNTOF(testSet));
}
@ -108,7 +108,7 @@ bool ValidateAdler32()
Adler32 md;
cout << "\nAdler-32 validation suite running...\n\n";
std::cout << "\nAdler-32 validation suite running...\n\n";
return HashModuleTest(md, testSet, COUNTOF(testSet));
}
@ -127,7 +127,7 @@ bool ValidateMD2()
Weak::MD2 md2;
cout << "\nMD2 validation suite running...\n\n";
std::cout << "\nMD2 validation suite running...\n\n";
return HashModuleTest(md2, testSet, COUNTOF(testSet));
}
@ -146,7 +146,7 @@ bool ValidateMD4()
Weak::MD4 md4;
cout << "\nMD4 validation suite running...\n\n";
std::cout << "\nMD4 validation suite running...\n\n";
return HashModuleTest(md4, testSet, COUNTOF(testSet));
}
@ -165,25 +165,25 @@ bool ValidateMD5()
Weak::MD5 md5;
cout << "\nMD5 validation suite running...\n\n";
std::cout << "\nMD5 validation suite running...\n\n";
return HashModuleTest(md5, testSet, COUNTOF(testSet));
}
bool ValidateSHA()
{
cout << "\nSHA validation suite running...\n\n";
std::cout << "\nSHA validation suite running...\n\n";
return RunTestDataFile("TestVectors/sha.txt");
}
bool ValidateSHA2()
{
cout << "\nSHA validation suite running...\n\n";
std::cout << "\nSHA validation suite running...\n\n";
return RunTestDataFile("TestVectors/sha.txt");
}
bool ValidateTiger()
{
cout << "\nTiger validation suite running...\n\n";
std::cout << "\nTiger validation suite running...\n\n";
static const HashTestTuple testSet[] =
{
@ -259,19 +259,19 @@ bool ValidateRIPEMD()
bool pass = true;
cout << "\nRIPEMD-128 validation suite running...\n\n";
std::cout << "\nRIPEMD-128 validation suite running...\n\n";
RIPEMD128 md128;
pass = HashModuleTest(md128, testSet128, COUNTOF(testSet128)) && pass;
cout << "\nRIPEMD-160 validation suite running...\n\n";
std::cout << "\nRIPEMD-160 validation suite running...\n\n";
RIPEMD160 md160;
pass = HashModuleTest(md160, testSet160, COUNTOF(testSet160)) && pass;
cout << "\nRIPEMD-256 validation suite running...\n\n";
std::cout << "\nRIPEMD-256 validation suite running...\n\n";
RIPEMD256 md256;
pass = HashModuleTest(md256, testSet256, COUNTOF(testSet256)) && pass;
cout << "\nRIPEMD-320 validation suite running...\n\n";
std::cout << "\nRIPEMD-320 validation suite running...\n\n";
RIPEMD320 md320;
pass = HashModuleTest(md320, testSet320, COUNTOF(testSet320)) && pass;
@ -293,7 +293,7 @@ bool ValidateHAVAL()
bool pass=true;
cout << "\nHAVAL validation suite running...\n\n";
std::cout << "\nHAVAL validation suite running...\n\n";
{
HAVAL3 md(16);
pass = HashModuleTest(md, testSet+0, 1) && pass;
@ -368,15 +368,15 @@ bool ValidateMD5MAC()
byte digest[MD5MAC::DIGESTSIZE];
bool pass=true, fail;
cout << "\nMD5MAC validation suite running...\n";
std::cout << "\nMD5MAC validation suite running...\n";
for (int k=0; k<2; k++)
{
MD5MAC mac(keys[k]);
cout << "\nKEY: ";
std::cout << "\nKEY: ";
for (int j=0;j<MD5MAC::KEYLENGTH;j++)
cout << setw(2) << setfill('0') << hex << (int)keys[k][j];
cout << endl << endl;
std::cout << setw(2) << setfill('0') << hex << (int)keys[k][j];
std::cout << std::endl << std::endl;
for (int i=0;i<7;i++)
{
mac.Update((byte *)TestVals[i], strlen(TestVals[i]));
@ -384,10 +384,10 @@ bool ValidateMD5MAC()
fail = !VerifyBufsEqual(digest, output[k][i], MD5MAC::DIGESTSIZE)
|| !mac.VerifyDigest(output[k][i], (byte *)TestVals[i], strlen(TestVals[i]));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
std::cout << (fail ? "FAILED " : "passed ");
for (int j=0;j<MD5MAC::DIGESTSIZE;j++)
cout << setw(2) << setfill('0') << hex << (int)digest[j];
cout << " \"" << TestVals[i] << '\"' << endl;
std::cout << setw(2) << setfill('0') << hex << (int)digest[j];
std::cout << " \"" << TestVals[i] << '\"' << std::endl;
}
}
@ -439,15 +439,15 @@ bool ValidateXMACC()
byte digest[XMACC_MD5::DIGESTSIZE];
bool pass=true, fail;
cout << "\nXMACC/MD5 validation suite running...\n";
std::cout << "\nXMACC/MD5 validation suite running...\n";
for (int k=0; k<2; k++)
{
XMACC_MD5 mac(keys[k], counters[k]);
cout << "\nKEY: ";
std::cout << "\nKEY: ";
for (int j=0;j<XMACC_MD5::KEYLENGTH;j++)
cout << setw(2) << setfill('0') << hex << (int)keys[k][j];
cout << " COUNTER: 0x" << hex << counters[k] << endl << endl;
std::cout << setw(2) << setfill('0') << hex << (int)keys[k][j];
std::cout << " COUNTER: 0x" << hex << counters[k] << std::endl << std::endl;
for (int i=0;i<7;i++)
{
mac.Update((byte *)TestVals[i], strlen(TestVals[i]));
@ -455,10 +455,10 @@ bool ValidateXMACC()
fail = !VerifyBufsEqual(digest, output[k][i], XMACC_MD5::DIGESTSIZE)
|| !mac.VerifyDigest(output[k][i], (byte *)TestVals[i], strlen(TestVals[i]));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
std::cout << (fail ? "FAILED " : "passed ");
for (int j=0;j<XMACC_MD5::DIGESTSIZE;j++)
cout << setw(2) << setfill('0') << hex << (int)digest[j];
cout << " \"" << TestVals[i] << '\"' << endl;
std::cout << setw(2) << setfill('0') << hex << (int)digest[j];
std::cout << " \"" << TestVals[i] << '\"' << std::endl;
}
}
@ -495,7 +495,7 @@ bool ValidateTTMAC()
byte digest[TTMAC::DIGESTSIZE];
bool pass=true, fail;
cout << "\nTwo-Track-MAC validation suite running...\n";
std::cout << "\nTwo-Track-MAC validation suite running...\n";
TTMAC mac(key, sizeof(key));
for (size_t k=0; k<COUNTOF(TestVals); k++)
@ -505,10 +505,10 @@ bool ValidateTTMAC()
fail = !VerifyBufsEqual(digest, output[k], TTMAC::DIGESTSIZE)
|| !mac.VerifyDigest(output[k], (byte *)TestVals[k], strlen(TestVals[k]));
pass = pass && !fail;
cout << (fail ? "FAILED " : "passed ");
std::cout << (fail ? "FAILED " : "passed ");
for (int j=0;j<TTMAC::DIGESTSIZE;j++)
cout << setw(2) << setfill('0') << hex << (int)digest[j];
cout << " \"" << TestVals[k] << '\"' << endl;
std::cout << setw(2) << setfill('0') << hex << (int)digest[j];
std::cout << " \"" << TestVals[k] << '\"' << std::endl;
}
return true;
@ -529,7 +529,7 @@ bool TestPBKDF(PasswordBasedKeyDerivationFunction &pbkdf, const PBKDF_TestTuple
{
const PBKDF_TestTuple &tuple = testSet[i];
string password, salt, derivedKey;
std::string password, salt, derivedKey;
StringSource(tuple.hexPassword, true, new HexDecoder(new StringSink(password)));
StringSource(tuple.hexSalt, true, new HexDecoder(new StringSink(salt)));
StringSource(tuple.hexDerivedKey, true, new HexDecoder(new StringSink(derivedKey)));
@ -539,13 +539,13 @@ bool TestPBKDF(PasswordBasedKeyDerivationFunction &pbkdf, const PBKDF_TestTuple
bool fail = !VerifyBufsEqual(derived, reinterpret_cast<const unsigned char*>(derivedKey.data()), derived.size());
pass = pass && !fail;
HexEncoder enc(new FileSink(cout));
cout << (fail ? "FAILED " : "passed ");
HexEncoder enc(new FileSink(std::cout));
std::cout << (fail ? "FAILED " : "passed ");
enc.Put(tuple.purpose);
cout << " " << tuple.iterations;
cout << " " << tuple.hexPassword << " " << tuple.hexSalt << " ";
std::cout << " " << tuple.iterations;
std::cout << " " << tuple.hexPassword << " " << tuple.hexSalt << " ";
enc.Put(derived, derived.size());
cout << endl;
std::cout << std::endl;
}
return pass;
@ -573,7 +573,7 @@ bool ValidatePBKDF()
PKCS12_PBKDF<SHA1> pbkdf;
cout << "\nPKCS #12 PBKDF validation suite running...\n\n";
std::cout << "\nPKCS #12 PBKDF validation suite running...\n\n";
pass = TestPBKDF(pbkdf, testSet, COUNTOF(testSet)) && pass;
}
@ -587,7 +587,7 @@ bool ValidatePBKDF()
PKCS5_PBKDF2_HMAC<SHA1> pbkdf;
cout << "\nPKCS #5 PBKDF2 validation suite running...\n\n";
std::cout << "\nPKCS #5 PBKDF2 validation suite running...\n\n";
pass = TestPBKDF(pbkdf, testSet, COUNTOF(testSet)) && pass;
}
@ -608,7 +608,7 @@ bool TestHKDF(KeyDerivationFunction &kdf, const HKDF_TestTuple *testSet, unsigne
{
const HKDF_TestTuple &tuple = testSet[i];
string secret, context, salt, derivedKey;
std::string secret, context, salt, derivedKey;
StringSource(tuple.hexSecret, true, new HexDecoder(new StringSink(secret)));
StringSource(tuple.hexSalt ? tuple.hexSalt : "", true, new HexDecoder(new StringSink(salt)));
StringSource(tuple.hexContext ? tuple.hexContext : "", true, new HexDecoder(new StringSink(context)));
@ -624,12 +624,12 @@ bool TestHKDF(KeyDerivationFunction &kdf, const HKDF_TestTuple *testSet, unsigne
bool fail = !VerifyBufsEqual(derived, reinterpret_cast<const unsigned char*>(derivedKey.data()), derived.size());
pass = pass && !fail;
HexEncoder enc(new FileSink(cout));
cout << (fail ? "FAILED " : "passed ");
cout << " " << tuple.hexSecret << " " << (tuple.hexSalt ? tuple.hexSalt : "<NO SALT>");
cout << " " << (tuple.hexContext ? tuple.hexContext : "<NO CTX>") << " ";
HexEncoder enc(new FileSink(std::cout));
std::cout << (fail ? "FAILED " : "passed ");
std::cout << " " << tuple.hexSecret << " " << (tuple.hexSalt ? tuple.hexSalt : "<NO SALT>");
std::cout << " " << (tuple.hexContext ? tuple.hexContext : "<NO CTX>") << " ";
enc.Put(derived, derived.size());
cout << endl;
std::cout << std::endl;
}
return pass;
@ -653,7 +653,7 @@ bool ValidateHKDF()
HKDF<SHA1> hkdf;
cout << "\nRFC 5869 HKDF(SHA-1) validation suite running...\n\n";
std::cout << "\nRFC 5869 HKDF(SHA-1) validation suite running...\n\n";
pass = TestHKDF(hkdf, testSet, COUNTOF(testSet)) && pass;
}
@ -671,7 +671,7 @@ bool ValidateHKDF()
HKDF<SHA256> hkdf;
cout << "\nRFC 5869 HKDF(SHA-256) validation suite running...\n\n";
std::cout << "\nRFC 5869 HKDF(SHA-256) validation suite running...\n\n";
pass = TestHKDF(hkdf, testSet, COUNTOF(testSet)) && pass;
}
@ -690,7 +690,7 @@ bool ValidateHKDF()
HKDF<SHA512> hkdf;
cout << "\nRFC 5869 HKDF(SHA-512) validation suite running...\n\n";
std::cout << "\nRFC 5869 HKDF(SHA-512) validation suite running...\n\n";
pass = TestHKDF(hkdf, testSet, COUNTOF(testSet)) && pass;
}