diff options
author | Jeffrey Walton <noloader@gmail.com> | 2015-11-18 15:32:28 -0500 |
---|---|---|
committer | Jeffrey Walton <noloader@gmail.com> | 2015-11-18 15:32:28 -0500 |
commit | 6ac1e46a1fb01f01705b67dd553d5ba317b1dc3e (patch) | |
tree | f0d873d0b377a91dce5ee384e60426ef57efc92b /pssr.cpp | |
parent | d2fda9bd4231a7dfcb44e59150f11246d992843f (diff) | |
download | cryptopp-git-6ac1e46a1fb01f01705b67dd553d5ba317b1dc3e.tar.gz |
Cleared issues 11,12,13 (Clang integrated assembler), 58 (RC rollup), 66 (Coverity rollup)
Diffstat (limited to 'pssr.cpp')
-rw-r--r-- | pssr.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -77,7 +77,8 @@ void PSSR_MEM_Base::ComputeMessageRepresentative(RandomNumberGenerator &rng, GetMGF().GenerateAndMask(hash, representative, representativeByteLength - u - digestSize, h, digestSize, false);
byte *xorStart = representative + representativeByteLength - u - digestSize - salt.size() - recoverableMessageLength - 1;
xorStart[0] ^= 1;
- xorbuf(xorStart + 1, recoverableMessage, recoverableMessageLength);
+ if (recoverableMessage && recoverableMessageLength)
+ xorbuf(xorStart + 1, recoverableMessage, recoverableMessageLength);
xorbuf(xorStart + 1 + recoverableMessageLength, salt, salt.size());
if (hashIdentifier.first && hashIdentifier.second)
{
@@ -114,7 +115,9 @@ DecodingResult PSSR_MEM_Base::RecoverMessageFromRepresentative( size_t &recoverableMessageLength = result.messageLength;
valid = (representative[representativeByteLength - 1] == (hashIdentifier.second ? 0xcc : 0xbc)) && valid;
- valid = VerifyBufsEqual(representative + representativeByteLength - u, hashIdentifier.first, hashIdentifier.second) && valid;
+
+ if (hashIdentifier.first && hashIdentifier.second)
+ valid = VerifyBufsEqual(representative + representativeByteLength - u, hashIdentifier.first, hashIdentifier.second) && valid;
GetMGF().GenerateAndMask(hash, representative, representativeByteLength - u - digestSize, h, digestSize);
if (representativeBitLength % 8 != 0)
|