libmongocrypt
Loading...
Searching...
No Matches
mc_FLE2InsertUpdatePayloadV2_t Struct Reference

#include <mc-fle2-insert-update-payload-private-v2.h>

Data Fields

_mongocrypt_buffer_t edcDerivedToken
_mongocrypt_buffer_t escDerivedToken
_mongocrypt_buffer_t encryptedTokens
_mongocrypt_buffer_t indexKeyId
bson_type_t valueType
_mongocrypt_buffer_t value
_mongocrypt_buffer_t serverEncryptionToken
_mongocrypt_buffer_t serverDerivedFromDataToken
int64_t contentionFactor
mc_array_t edgeTokenSetArray
mc_optional_int64_t sparsity
mc_optional_int32_t precision
mc_optional_int32_t trimFactor
bson_value_t indexMin
bson_value_t indexMax
struct { 
   mc_TextSearchTokenSets_t   tsts 
   bool   set 
textSearchTokenSets
_mongocrypt_buffer_t plaintext
_mongocrypt_buffer_t userKeyId

Detailed Description

FLE2InsertUpdatePayloadV2 represents an FLE2 payload of an indexed field to insert or update. It is created client side.

FLE2InsertUpdatePayloadV2 has the following data layout:

struct { uint8_t fle_blob_subtype = 11; uint8_t bson[]; } FLE2InsertUpdatePayloadV2;

bson is a BSON document of this form: d: <binary> // EDCDerivedFromDataTokenAndContentionFactor s: <binary> // ESCDerivedFromDataTokenAndContentionFactor p: <binary> // Encrypted Tokens u: <UUID> // Index KeyId t: <int32> // Encrypted type v: <binary> // Encrypted value e: <binary> // ServerDataEncryptionLevel1Token l: <binary> // ServerDerivedFromDataToken k: <int64> // Randomly sampled contention factor value g: array<EdgeTokenSetV2> // Array of Edges. Only included for range payloads. sp: optional<int64> // Sparsity. Only included for range payloads. pn: optional<int32> // Precision. Only included for range payloads. tf: optional<int32> // Trim Factor. Only included for range payloads. mn: optional<any> // Index Min. Only included for range payloads. mx: optional<any> // Index Max. Only included for range payloads.

p is the result of: Encrypt( key=ECOCToken, plaintext=( ESCDerivedFromDataTokenAndContentionFactor) )

v is the result of: UserKeyId || EncryptAEAD( key=UserKey, plaintext=value associated_data=UserKeyId)


The documentation for this struct was generated from the following file: