summaryrefslogtreecommitdiff
path: root/src/mongo/crypto
diff options
context:
space:
mode:
authorMark Benvenuto <mark.benvenuto@mongodb.com>2023-03-14 16:34:58 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-03-15 14:19:40 +0000
commitb39c58a5326680ed06616359f69e654fdaf3b2ac (patch)
tree1bebab32b135f8ddc0cdd1339803318e9529cbd3 /src/mongo/crypto
parent971a3e0082b6469cade1a7e4e706bfe2545cce98 (diff)
downloadmongo-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.cpp21
-rw-r--r--src/mongo/crypto/fle_crypto.h1
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);
/**