summaryrefslogtreecommitdiff
path: root/src/mongo/db/time_proof_service.cpp
diff options
context:
space:
mode:
authorBilly Donahue <billy.donahue@mongodb.com>2019-10-09 17:09:10 +0000
committerevergreen <evergreen@mongodb.com>2019-10-09 17:09:10 +0000
commite1f433d2c47f623ceb5d1d1aee7605fefb71b846 (patch)
treec5e9cf60c65093839d1402e9755faf8342dd78e4 /src/mongo/db/time_proof_service.cpp
parent3cb9e7903a73e0bbcd1b00823bbd53e0f4341acd (diff)
downloadmongo-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.cpp12
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) {