diff options
author | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2023-03-14 16:34:58 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-03-15 14:19:40 +0000 |
commit | b39c58a5326680ed06616359f69e654fdaf3b2ac (patch) | |
tree | 1bebab32b135f8ddc0cdd1339803318e9529cbd3 /src/mongo/crypto | |
parent | 971a3e0082b6469cade1a7e4e706bfe2545cce98 (diff) | |
download | mongo-b39c58a5326680ed06616359f69e654fdaf3b2ac.tar.gz |
SERVER-74151 Create a new reads tags command for QE tags
Diffstat (limited to 'src/mongo/crypto')
-rw-r--r-- | src/mongo/crypto/fle_crypto.cpp | 21 | ||||
-rw-r--r-- | src/mongo/crypto/fle_crypto.h | 1 |
2 files changed, 11 insertions, 11 deletions
diff --git a/src/mongo/crypto/fle_crypto.cpp b/src/mongo/crypto/fle_crypto.cpp index 259731c1043..77638d1bd52 100644 --- a/src/mongo/crypto/fle_crypto.cpp +++ b/src/mongo/crypto/fle_crypto.cpp @@ -450,13 +450,6 @@ void appendTag(PrfBlock block, BSONArrayBuilder* builder) { builder->appendBinData(block.size(), BinDataType::BinDataGeneral, block.data()); } - -std::vector<uint8_t> vectorFromCDR(ConstDataRange cdr) { - std::vector<uint8_t> buf(cdr.length()); - std::copy(cdr.data(), cdr.data() + cdr.length(), buf.data()); - return buf; -} - template <typename T> std::vector<uint8_t> toEncryptedVector(EncryptedBinDataType dt, T t) { BSONObj obj = t.toBSON(); @@ -2401,6 +2394,12 @@ PrfBlock PrfBlockfromCDR(const ConstDataRange& block) { return ret; } +std::vector<uint8_t> FLEUtil::vectorFromCDR(ConstDataRange cdr) { + std::vector<uint8_t> buf(cdr.length()); + std::copy(cdr.data(), cdr.data() + cdr.length(), buf.data()); + return buf; +} + CollectionsLevel1Token FLELevel1TokenGenerator::generateCollectionsLevel1Token( FLEIndexKey indexKey) { return FLEUtil::prf(hmacKey(indexKey.data), kLevel1Collection); @@ -3520,7 +3519,7 @@ FLE2IndexedEqualityEncryptedValue::FLE2IndexedEqualityEncryptedValue( count(counter), bsonType(static_cast<BSONType>(payload.getType())), indexKeyId(payload.getIndexKeyId()), - clientEncryptedValue(vectorFromCDR(payload.getValue())) { + clientEncryptedValue(FLEUtil::vectorFromCDR(payload.getValue())) { uassert(6373508, "Invalid BSON Type in Queryable Encryption InsertUpdatePayload", isValidBSONType(payload.getType())); @@ -3811,7 +3810,7 @@ FLE2IndexedEqualityEncryptedValueV2::FLE2IndexedEqualityEncryptedValueV2( : FLE2IndexedEqualityEncryptedValueV2( static_cast<BSONType>(payload.getType()), payload.getIndexKeyId(), - vectorFromCDR(payload.getValue()), + FLEUtil::vectorFromCDR(payload.getValue()), FLE2TagAndEncryptedMetadataBlock( counter, payload.getContentionFactor(), std::move(tag))) {} @@ -4055,7 +4054,7 @@ FLE2IndexedRangeEncryptedValue::FLE2IndexedRangeEncryptedValue(FLE2InsertUpdateP counters(std::move(countersParam)), bsonType(static_cast<BSONType>(payload.getType())), indexKeyId(payload.getIndexKeyId()), - clientEncryptedValue(vectorFromCDR(payload.getValue())) { + clientEncryptedValue(FLEUtil::vectorFromCDR(payload.getValue())) { uassert(6775312, "Invalid BSON Type in Queryable Encryption InsertUpdatePayload", isValidBSONType(payload.getType())); @@ -4348,7 +4347,7 @@ FLE2IndexedRangeEncryptedValueV2::FLE2IndexedRangeEncryptedValueV2( const std::vector<uint64_t>& counters) : bsonType(static_cast<BSONType>(payload.getType())), indexKeyId(payload.getIndexKeyId()), - clientEncryptedValue(vectorFromCDR(payload.getValue())) { + clientEncryptedValue(FLEUtil::vectorFromCDR(payload.getValue())) { uassert(7290900, "Tags and counters parameters must be non-zero and of the same length", diff --git a/src/mongo/crypto/fle_crypto.h b/src/mongo/crypto/fle_crypto.h index 1409a4d50fe..64febeeb6cd 100644 --- a/src/mongo/crypto/fle_crypto.h +++ b/src/mongo/crypto/fle_crypto.h @@ -1824,6 +1824,7 @@ std::vector<std::string> minCoverDecimal128(Decimal128 lowerBound, class FLEUtil { public: + static std::vector<uint8_t> vectorFromCDR(ConstDataRange cdr); static PrfBlock blockToArray(const SHA256Block& block); /** |