summaryrefslogtreecommitdiff
path: root/validat5.cpp
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2018-07-29 22:35:36 -0400
committerJeffrey Walton <noloader@gmail.com>2018-07-29 22:35:36 -0400
commitf290746a363a971dc55355fd829eb0f3b936eb8e (patch)
tree13ab1f208402a118d6cf6b50e5c52cb76668e0ad /validat5.cpp
parentbf37ccda6d9301a16012f7ed2c2fa20ee8079048 (diff)
downloadcryptopp-git-f290746a363a971dc55355fd829eb0f3b936eb8e.tar.gz
Remove Coverity worakaround StreamState
Use std::ostringstream instead. Eventually I'd like to see the output stream passed into the function of interest. It will avoid problems on some mobile OSes that don't have standard inputs and outputs.
Diffstat (limited to 'validat5.cpp')
-rw-r--r--validat5.cpp48
1 files changed, 23 insertions, 25 deletions
diff --git a/validat5.cpp b/validat5.cpp
index 44c004a9..b0b27849 100644
--- a/validat5.cpp
+++ b/validat5.cpp
@@ -69,10 +69,9 @@ struct HashTestTuple
bool HashModuleTest(HashTransformation &md, const HashTestTuple *testSet, unsigned int testSetSize)
{
bool pass=true, fail;
- SecByteBlock digest(md.DigestSize());
+ std::ostringstream oss;
- // Coverity finding, also see http://stackoverflow.com/a/34509163/608639.
- StreamState ss(std::cout);
+ SecByteBlock digest(md.DigestSize());
for (unsigned int i=0; i<testSetSize; i++)
{
unsigned j;
@@ -83,15 +82,16 @@ bool HashModuleTest(HashTransformation &md, const HashTestTuple *testSet, unsign
fail = !!memcmp(digest, testSet[i].output, md.DigestSize()) != 0;
pass = pass && !fail;
- std::cout << (fail ? "FAILED " : "passed ");
+ oss << (fail ? "FAILED " : "passed ");
for (j=0; j<md.DigestSize(); j++)
- std::cout << std::setw(2) << std::setfill('0') << std::hex << (int)digest[j];
- std::cout << " \"" << (char *)testSet[i].input << '\"';
+ oss << std::setw(2) << std::setfill('0') << std::hex << (int)digest[j];
+ oss << " \"" << (char *)testSet[i].input << '\"';
if (testSet[i].repeatTimes != 1)
- std::cout << " repeated " << std::dec << testSet[i].repeatTimes << " times";
- std::cout << std::endl;
+ oss << " repeated " << std::dec << testSet[i].repeatTimes << " times";
+ oss << std::endl;
}
+ std::cout << oss.str();
return pass;
}
@@ -407,21 +407,19 @@ bool ValidateMD5MAC()
{0x18,0xe3,0x49,0xa5,0x24,0x44,0xb3,0x0e,0x5e,0xba,0x5a,0xdd,0xdc,0xd9,0xf1,0x8d},
{0xf2,0xb9,0x06,0xa5,0xb8,0x4b,0x9b,0x4b,0xbe,0x95,0xed,0x32,0x56,0x4e,0xe7,0xeb}}};
- // Coverity finding, also see http://stackoverflow.com/a/34509163/608639.
- StreamState ss(std::cout);
-
byte digest[MD5MAC::DIGESTSIZE];
bool pass=true, fail;
+ std::ostringstream oss;
- std::cout << "\nMD5MAC validation suite running...\n";
+ oss << "\nMD5MAC validation suite running...\n";
for (int k=0; k<2; k++)
{
MD5MAC mac(keys[k]);
- std::cout << "\nKEY: ";
+ oss << "\nKEY: ";
for (int j=0;j<MD5MAC::KEYLENGTH;j++)
- std::cout << std::setw(2) << std::setfill('0') << std::hex << (int)keys[k][j];
- std::cout << std::endl << std::endl;
+ oss << std::setw(2) << std::setfill('0') << std::hex << (int)keys[k][j];
+ oss << std::endl << std::endl;
for (int i=0;i<7;i++)
{
mac.Update((byte *)TestVals[i], strlen(TestVals[i]));
@@ -429,13 +427,14 @@ bool ValidateMD5MAC()
fail = !!memcmp(digest, output[k][i], MD5MAC::DIGESTSIZE)
|| !mac.VerifyDigest(output[k][i], (byte *)TestVals[i], strlen(TestVals[i]));
pass = pass && !fail;
- std::cout << (fail ? "FAILED " : "passed ");
+ oss << (fail ? "FAILED " : "passed ");
for (int j=0;j<MD5MAC::DIGESTSIZE;j++)
- std::cout << std::setw(2) << std::setfill('0') << std::hex << (int)digest[j];
- std::cout << " \"" << TestVals[i] << '\"' << std::endl;
+ oss << std::setw(2) << std::setfill('0') << std::hex << (int)digest[j];
+ oss << " \"" << TestVals[i] << '\"' << std::endl;
}
}
+ std::cout << oss.str();
return pass;
}
#endif
@@ -540,13 +539,11 @@ bool ValidateTTMAC()
{0x54,0xba,0xc3,0x92,0xa8,0x86,0x80,0x6d,0x16,0x95,0x56,0xfc,0xbb,0x67,0x89,0xb5,0x4f,0xb3,0x64,0xfb},
{0x0c,0xed,0x2c,0x9f,0x8f,0x0d,0x9d,0x03,0x98,0x1a,0xb5,0xc8,0x18,0x4b,0xac,0x43,0xdd,0x54,0xc4,0x84}};
- // Coverity finding, also see http://stackoverflow.com/a/34509163/608639.
- StreamState ss(std::cout);
-
byte digest[TTMAC::DIGESTSIZE];
bool pass=true, fail;
+ std::ostringstream oss;
- std::cout << "\nTwo-Track-MAC validation suite running...\n";
+ oss << "\nTwo-Track-MAC validation suite running...\n";
TTMAC mac(key, sizeof(key));
for (unsigned int k = 0; k<COUNTOF(TestVals); k++)
@@ -556,12 +553,13 @@ bool ValidateTTMAC()
fail = !!memcmp(digest, output[k], TTMAC::DIGESTSIZE)
|| !mac.VerifyDigest(output[k], (byte *)TestVals[k], strlen(TestVals[k]));
pass = pass && !fail;
- std::cout << (fail ? "FAILED " : "passed ");
+ oss << (fail ? "FAILED " : "passed ");
for (int j=0;j<TTMAC::DIGESTSIZE;j++)
- std::cout << std::setw(2) << std::setfill('0') << std::hex << (int)digest[j];
- std::cout << " \"" << TestVals[k] << '\"' << std::endl;
+ oss << std::setw(2) << std::setfill('0') << std::hex << (int)digest[j];
+ oss << " \"" << TestVals[k] << '\"' << std::endl;
}
+ std::cout << oss.str();
return true;
}