diff options
author | Jonathan Reams <jbreams@mongodb.com> | 2018-10-31 12:39:31 -0400 |
---|---|---|
committer | Jonathan Reams <jbreams@mongodb.com> | 2018-11-07 10:20:26 -0500 |
commit | 8c2c95edbdf32e88868396cf6927a9346bbc85e4 (patch) | |
tree | 93c9d6a919005c1063efb272c1c216c53e2b2b01 /src/mongo/crypto | |
parent | 514873667fbb5fa62a245a936826bc71f73b87e8 (diff) | |
download | mongo-8c2c95edbdf32e88868396cf6927a9346bbc85e4.tar.gz |
SERVER-37833 Retry internal auth with alternate key during keyfile rollover
Diffstat (limited to 'src/mongo/crypto')
-rw-r--r-- | src/mongo/crypto/mechanism_scram.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mongo/crypto/mechanism_scram.h b/src/mongo/crypto/mechanism_scram.h index 1c5de95d55a..37614357f73 100644 --- a/src/mongo/crypto/mechanism_scram.h +++ b/src/mongo/crypto/mechanism_scram.h @@ -249,8 +249,15 @@ public: static BSONObj generateCredentials(std::string password, int iterationCount) { auto salt = Presecrets<HashBlock>::generateSecureRandomSalt(); + return generateCredentials(salt, password, iterationCount); + } + + static BSONObj generateCredentials(const std::vector<uint8_t>& salt, + const std::string& password, + int iterationCount) { Secrets<HashBlock> secrets(Presecrets<HashBlock>(password, salt, iterationCount)); - const auto encodedSalt = base64::encode(reinterpret_cast<char*>(salt.data()), salt.size()); + const auto encodedSalt = + base64::encode(reinterpret_cast<const char*>(salt.data()), salt.size()); return BSON(kIterationCountFieldName << iterationCount << kSaltFieldName << encodedSalt << kStoredKeyFieldName << secrets.storedKey().toString() |