BlindOutputs: fixup blinding check at end

This commit is contained in:
Gregory Sanders 2017-02-15 17:12:14 -05:00
parent 2b0d1520b6
commit 3d4838f525

View file

@ -250,12 +250,17 @@ bool BlindOutputs(std::vector<uint256 >& input_blinding_factors, const std::vect
}
}
// secp throws a fit if total isn't larger than number of inputs
if (nBlindsOut < 1) {
return false;
}
// Check blinding(even if nothing has been done)
unsigned char tempFinalBlind[32];
memcpy(tempFinalBlind, &blind[nBlinded-1][0], 32);
memset(&blind[nBlinded-1][0], 0, 32);
memcpy(tempFinalBlind, blindptrs.back(), 32);
memset(blindptrs.back(), 0, 32);
assert(secp256k1_pedersen_blind_generator_blind_sum(secp256k1_blind_context, &blindedAmounts[0], &assetblindptrs[0], &blindptrs[0], nBlindsOut + nBlindsIn, nBlindsIn));
if (memcmp(&blind[nBlinded-1][0], tempFinalBlind, 32))
if (memcmp(blindptrs.back(), tempFinalBlind, 32))
return false;
return true;