Use FRC::randbytes instead of reading >32 bytes from RNG

There was only one place in the codebase where we're directly reading >32 bytes from
the RNG. One possibility would be to make the built-in RNG support large reads, but
using FastRandomContext lets us reuse code better.

There is no change in behavior here, because the FastRandomContext constructor
uses GetRandBytes internally.
This commit is contained in:
Pieter Wuille 2018-12-17 17:00:06 -08:00
parent d71d0d7b7f
commit 6a57ca91da

View file

@ -181,12 +181,12 @@ void PaymentServerTests::paymentServerTests()
QCOMPARE(PaymentServer::verifyExpired(r.paymentRequest.getDetails()), true); QCOMPARE(PaymentServer::verifyExpired(r.paymentRequest.getDetails()), true);
// Test BIP70 DoS protection: // Test BIP70 DoS protection:
unsigned char randData[BIP70_MAX_PAYMENTREQUEST_SIZE + 1]; auto randdata = FastRandomContext().randbytes(BIP70_MAX_PAYMENTREQUEST_SIZE + 1);
GetRandBytes(randData, sizeof(randData));
// Write data to a temp file: // Write data to a temp file:
QTemporaryFile tempFile; QTemporaryFile tempFile;
tempFile.open(); tempFile.open();
tempFile.write((const char*)randData, sizeof(randData)); tempFile.write((const char*)randdata.data(), randdata.size());
tempFile.close(); tempFile.close();
// compares 50001 <= BIP70_MAX_PAYMENTREQUEST_SIZE == false // compares 50001 <= BIP70_MAX_PAYMENTREQUEST_SIZE == false
QCOMPARE(PaymentServer::verifySize(tempFile.size()), false); QCOMPARE(PaymentServer::verifySize(tempFile.size()), false);