diff options
author | Billy Donahue <billy.donahue@mongodb.com> | 2019-10-09 17:09:10 +0000 |
---|---|---|
committer | evergreen <evergreen@mongodb.com> | 2019-10-09 17:09:10 +0000 |
commit | e1f433d2c47f623ceb5d1d1aee7605fefb71b846 (patch) | |
tree | c5e9cf60c65093839d1402e9755faf8342dd78e4 /src/mongo/db/time_proof_service.cpp | |
parent | 3cb9e7903a73e0bbcd1b00823bbd53e0f4341acd (diff) | |
download | mongo-e1f433d2c47f623ceb5d1d1aee7605fefb71b846.tar.gz |
SERVER-43641 upgrade random.h
This reverts commit a40b196bd3cecd0b66a6323f57e6f08efe0af392.
Diffstat (limited to 'src/mongo/db/time_proof_service.cpp')
-rw-r--r-- | src/mongo/db/time_proof_service.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/mongo/db/time_proof_service.cpp b/src/mongo/db/time_proof_service.cpp index 7e29f0b2254..da65e441712 100644 --- a/src/mongo/db/time_proof_service.cpp +++ b/src/mongo/db/time_proof_service.cpp @@ -45,15 +45,9 @@ namespace mongo { const uint64_t kRangeMask = 0x0000'0000'0000'FFFF; TimeProofService::Key TimeProofService::generateRandomKey() { - // SecureRandom only produces 64-bit numbers, so 3 is the minimum for 20 random bytes. - const size_t kRandomNumbers = 3; - std::array<std::int64_t, kRandomNumbers> keyBuffer; - std::unique_ptr<SecureRandom> rng(SecureRandom::create()); - std::generate(keyBuffer.begin(), keyBuffer.end(), [&] { return rng->nextInt64(); }); - - return fassert(40384, - SHA1Block::fromBuffer(reinterpret_cast<std::uint8_t*>(keyBuffer.data()), - SHA1Block::kHashLength)); + std::array<std::uint8_t, SHA1Block::kHashLength> keyBuffer; + SecureRandom().fill(keyBuffer.data(), keyBuffer.size()); + return fassert(40384, SHA1Block::fromBuffer(keyBuffer.data(), keyBuffer.size())); } TimeProofService::TimeProof TimeProofService::getProof(LogicalTime time, const Key& key) { |