libmongocrypt-helper 1.7.4.0.1002 → 1.8.0.0.1001
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/ext/libmongocrypt/libmongocrypt/CHANGELOG.md +9 -7
- data/ext/libmongocrypt/libmongocrypt/CMakeLists.txt +17 -23
- data/ext/libmongocrypt/libmongocrypt/Earthfile +374 -0
- data/ext/libmongocrypt/libmongocrypt/README.md +7 -7
- data/ext/libmongocrypt/libmongocrypt/VERSION_CURRENT +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptClient.cs +25 -6
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/Library.cs +25 -3
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Example/MongoDB.Libmongocrypt.Example.csproj +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/BasicTests.cs +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/Scripts/build.cake +3 -2
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/cs.sln +79 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/build.gradle.kts +2 -2
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/java/com/mongodb/crypt/capi/MongoCryptTest.java +6 -4
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2/int32/encrypted-payload.json +26 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/CHANGELOG.md +24 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/README.md +134 -5
- data/ext/libmongocrypt/libmongocrypt/bindings/node/etc/build-static.sh +3 -6
- data/ext/libmongocrypt/libmongocrypt/bindings/node/index.d.ts +203 -77
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/autoEncrypter.js +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/clientEncryption.js +165 -43
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/common.js +12 -14
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/errors.js +75 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/index.js +34 -3
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/aws.js +26 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/azure.js +178 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/gcp.js +24 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/index.js +54 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/utils.js +39 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/stateMachine.js +9 -4
- data/ext/libmongocrypt/libmongocrypt/bindings/node/package-lock.json +4440 -5189
- data/ext/libmongocrypt/libmongocrypt/bindings/node/package.json +27 -8
- data/ext/libmongocrypt/libmongocrypt/bindings/node/src/mongocrypt.cc +65 -38
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/autoEncrypter.test.js +4 -7
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/clientEncryption.test.js +434 -42
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/common.test.js +94 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/cryptoCallbacks.test.js +1 -45
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/index.test.js +45 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/mongocryptdManager.test.js +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/providers/credentialsProvider.test.js +551 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/release.test.js +10 -3
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/requirements.helper.js +23 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/stateMachine.test.js +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/tools/chai-addons.js +8 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/types/index.test-d.ts +63 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/CHANGELOG.rst +26 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/README.rst +2 -2
- data/ext/libmongocrypt/libmongocrypt/bindings/python/build-manylinux-wheel.sh +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/binding.py +128 -238
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/compat.py +0 -27
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/explicit_encrypter.py +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/mongocrypt.py +5 -21
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/version.py +2 -2
- data/ext/libmongocrypt/libmongocrypt/bindings/python/release.sh +5 -5
- data/ext/libmongocrypt/libmongocrypt/bindings/python/setup.py +14 -9
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/__init__.py +1 -10
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/fle2-find-range-explicit-v2/int32/encrypted-payload.json +26 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/test_mongocrypt.py +5 -5
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test-requirements.txt +4 -12
- data/ext/libmongocrypt/libmongocrypt/cmake/ImportBSON.cmake +8 -6
- data/ext/libmongocrypt/libmongocrypt/cmake/IntelDFP.cmake +2 -1
- data/ext/libmongocrypt/libmongocrypt/cmake/Platform.cmake +50 -0
- data/ext/libmongocrypt/libmongocrypt/cmake/mongocrypt-config.cmake +21 -0
- data/ext/libmongocrypt/libmongocrypt/debian/gbp.conf +2 -2
- data/ext/libmongocrypt/libmongocrypt/etc/c6-vault.repo +39 -0
- data/ext/libmongocrypt/libmongocrypt/etc/fle2_aead_generate_tests.py +15 -24
- data/ext/libmongocrypt/libmongocrypt/etc/fle2_crypto.py +66 -54
- data/ext/libmongocrypt/libmongocrypt/etc/fle2_generate_tests.py +14 -23
- data/ext/libmongocrypt/libmongocrypt/etc/fle2v2_aead_generate_tests.py +32 -0
- data/ext/libmongocrypt/libmongocrypt/etc/format-all.sh +12 -0
- data/ext/libmongocrypt/libmongocrypt/etc/format.sh +16 -0
- data/ext/libmongocrypt/libmongocrypt/etc/install-package.sh +48 -0
- data/ext/libmongocrypt/libmongocrypt/etc/mongo-inteldfp-libmongocrypt-pr-625.patch +13 -0
- data/ext/libmongocrypt/libmongocrypt/src/crypto/cng.c +381 -436
- data/ext/libmongocrypt/libmongocrypt/src/crypto/commoncrypto.c +162 -227
- data/ext/libmongocrypt/libmongocrypt/src/crypto/libcrypto.c +180 -248
- data/ext/libmongocrypt/libmongocrypt/src/crypto/none.c +33 -55
- data/ext/libmongocrypt/libmongocrypt/src/csfle-markup.cpp +175 -205
- data/ext/libmongocrypt/libmongocrypt/src/mc-array-private.h +10 -21
- data/ext/libmongocrypt/libmongocrypt/src/mc-array.c +44 -56
- data/ext/libmongocrypt/libmongocrypt/src/mc-check-conversions-private.h +4 -8
- data/ext/libmongocrypt/libmongocrypt/src/mc-dec128.h +351 -463
- data/ext/libmongocrypt/libmongocrypt/src/mc-dec128.test.cpp +59 -66
- data/ext/libmongocrypt/libmongocrypt/src/mc-efc-private.h +7 -11
- data/ext/libmongocrypt/libmongocrypt/src/mc-efc.c +80 -92
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle-blob-subtype-private.h +18 -10
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h +59 -70
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder.c +384 -439
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-private-v2.h +41 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-private.h +11 -18
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-v2.c +135 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload.c +109 -126
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-private-v2.h +88 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-private.h +24 -27
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-v2.c +137 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload.c +106 -125
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-private-v2.h +117 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-private.h +28 -36
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-v2.c +294 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload.c +237 -278
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-private-v2.h +133 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-private.h +67 -56
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-v2.c +437 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev.c +476 -325
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-common-private.h +69 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-common.c +182 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-private.h +23 -31
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-v2-private.h +85 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-v2.c +142 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev.c +104 -231
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-range-operator-private.h +8 -7
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-rfds-private.h +55 -56
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-rfds.c +517 -580
- data/ext/libmongocrypt/libmongocrypt/src/mc-optional-private.h +36 -66
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation-private.h +57 -76
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation.c +158 -189
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding-private.h +36 -42
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding.c +515 -558
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-generator.template.h +155 -191
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-private.h +43 -53
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover.c +170 -240
- data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts-private.h +29 -34
- data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts.c +289 -338
- data/ext/libmongocrypt/libmongocrypt/src/mc-reader-private.h +36 -71
- data/ext/libmongocrypt/libmongocrypt/src/mc-reader.c +111 -164
- data/ext/libmongocrypt/libmongocrypt/src/mc-tokens-private.h +55 -49
- data/ext/libmongocrypt/libmongocrypt/src/mc-tokens.c +109 -125
- data/ext/libmongocrypt/libmongocrypt/src/mc-writer-private.h +66 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-writer.c +141 -0
- data/ext/libmongocrypt/libmongocrypt/src/mlib/check.hpp +37 -55
- data/ext/libmongocrypt/libmongocrypt/src/mlib/endian.h +11 -11
- data/ext/libmongocrypt/libmongocrypt/src/mlib/error.h +27 -32
- data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.h +444 -499
- data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.test.cpp +251 -334
- data/ext/libmongocrypt/libmongocrypt/src/mlib/macros.h +4 -5
- data/ext/libmongocrypt/libmongocrypt/src/mlib/path.h +196 -231
- data/ext/libmongocrypt/libmongocrypt/src/mlib/path.test.c +56 -79
- data/ext/libmongocrypt/libmongocrypt/src/mlib/str.h +411 -530
- data/ext/libmongocrypt/libmongocrypt/src/mlib/str.test.c +116 -131
- data/ext/libmongocrypt/libmongocrypt/src/mlib/thread.h +17 -26
- data/ext/libmongocrypt/libmongocrypt/src/mlib/user-check.h +2 -2
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-binary-private.h +3 -6
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-binary.c +31 -48
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-buffer-private.h +55 -131
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-buffer.c +444 -565
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-collinfo-private.h +1 -2
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-collinfo.c +28 -45
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-key-private.h +11 -17
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-key.c +103 -132
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-oauth-private.h +8 -14
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-oauth.c +78 -90
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-private.h +26 -45
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache.c +220 -273
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ciphertext-private.h +13 -25
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ciphertext.c +147 -166
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-compat.h +2 -2
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-crypto-private.h +110 -204
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-crypto.c +1137 -1565
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-datakey.c +425 -472
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-decrypt.c +817 -694
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-encrypt.c +2394 -2697
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-private.h +166 -186
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-rewrap-many-datakey.c +308 -351
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx.c +921 -1138
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-dll-private.h +16 -24
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-endian-private.h +44 -58
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-endpoint-private.h +21 -25
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-endpoint.c +167 -181
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kek-private.h +37 -43
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kek.c +215 -253
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-broker-private.h +73 -108
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-broker.c +889 -1034
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-private.h +27 -44
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key.c +349 -402
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kms-ctx-private.h +92 -120
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kms-ctx.c +1397 -1612
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-log-private.h +35 -67
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-log.c +49 -83
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking-private.h +30 -36
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking.c +1821 -1470
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-mutex-private.h +7 -12
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts-private.h +80 -108
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts.c +354 -424
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-private.h +101 -117
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-status-private.h +3 -8
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-status.c +92 -119
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-traverse-util-private.h +19 -29
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-traverse-util.c +136 -176
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-util-private.h +11 -21
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-util.c +96 -135
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.c +1092 -1320
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.h +130 -295
- data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_dll.c +66 -78
- data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_mutex.c +20 -28
- data/ext/libmongocrypt/libmongocrypt/src/os_win/os_dll.c +60 -73
- data/ext/libmongocrypt/libmongocrypt/src/os_win/os_mutex.c +8 -16
- data/ext/libmongocrypt/libmongocrypt/test/crypt_shared-stub.cpp +57 -87
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/encrypted-payload-v2.json +60 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/encrypted-payload-v2.json +67 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-csfle/encrypted-payload.json +2 -2
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/find-indexed-contentionFactor1-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/find-indexed-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-contentionFactor1-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-same-user-and-index-key-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality-v2/cmd.json +6 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality-v2/encrypted-field-map.json +22 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality-v2/encrypted-payload.json +40 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality-v2/mongocryptd-reply.json +19 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/cmd.json +10 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/encrypted-payload.json +41 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/mongocryptd-reply.json +49 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/cmd.json +6 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/encrypted-field-map.json +30 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/encrypted-payload.json +50 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/mongocryptd-reply.json +58 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/cmd.json +6 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/encrypted-payload.json +41 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/mongocryptd-reply.json +49 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/cmd.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/encrypted-field-map.json +30 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/encrypted-payload.json +44 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/mongocryptd-reply.json +52 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/cmd.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/encrypted-payload.json +41 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/mongocryptd-reply.json +49 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/cmd.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/encrypted-payload.json +41 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/mongocryptd-reply.json +49 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/cmd.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/encrypted-payload.json +41 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/mongocryptd-reply.json +49 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double/encrypted-payload-v2.json +26 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double-precision/encrypted-payload-v2.json +26 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32/encrypted-payload-v2.json +26 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/encrypted-payload-v2.json +26 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-openinterval/encrypted-payload-v2.json +16 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert/cmd.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/RNG_DATA.h +65 -65
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/cmd.json +13 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/encrypted-payload.json +44 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/mongocryptd-reply.json +52 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/RNG_DATA.h +132 -132
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/RNG_DATA.h +71 -71
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/cmd.json +9 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/encrypted-field-map.json +30 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/encrypted-payload.json +53 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/mongocryptd-reply.json +61 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/cmd.json +9 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/encrypted-payload.json +44 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/mongocryptd-reply.json +52 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/RNG_DATA.h +68 -68
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/RNG_DATA.h +19 -19
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/cmd.json +11 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/encrypted-field-map.json +30 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/encrypted-payload.json +47 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/mongocryptd-reply.json +55 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/cmd.json +11 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/encrypted-payload.json +44 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/mongocryptd-reply.json +52 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/RNG_DATA.h +25 -25
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/cmd.json +11 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/encrypted-payload.json +44 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/mongocryptd-reply.json +52 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/RNG_DATA.h +65 -65
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/cmd.json +11 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/encrypted-payload.json +44 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/mongocryptd-reply.json +52 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/RNG_DATA.h +68 -68
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/encrypted-payload-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/RNG_DATA.h +19 -19
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/encrypted-payload-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32/RNG_DATA.h +25 -25
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32/encrypted-payload-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/encrypted-payload-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/RNG_DATA.h +15 -15
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/encrypted-payload-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed-v2/cmd.json +9 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed-v2/encrypted-field-map.json +18 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed-v2/encrypted-payload.json +14 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed-v2/mongocryptd-reply.json +41 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2/cmd.json +9 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2/encrypted-field-map.json +22 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2/encrypted-payload.json +39 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2/mongocryptd-reply.json +49 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/iev-v2/FLECrudTest-insertOneRangeV2.json +10 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/iev-v2/FLECrudTest-insertOneV2.json +10 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/README.md +17 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/aes-ctr.json +29 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2-fixed.json +10 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2-generated.json +38 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2aead-decrypt.json +35 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2aead-fixed.json +29 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2aead-generated.json +122 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2v2-aead-fixed.json +29 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2v2-aead-generated.json +122 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/mcgrew.json +12 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/nist.json +20 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/tokens/README.md +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/tokens/mc.json +21 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/tokens/server.json +21 -0
- data/ext/libmongocrypt/libmongocrypt/test/example-no-bson.c +4 -4
- data/ext/libmongocrypt/libmongocrypt/test/example-state-machine.c +278 -323
- data/ext/libmongocrypt/libmongocrypt/test/fuzz_kms.c +8 -7
- data/ext/libmongocrypt/libmongocrypt/test/test-dll.cpp +6 -7
- data/ext/libmongocrypt/libmongocrypt/test/test-gcp-auth.c +221 -283
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-efc.c +58 -73
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-equality-payload-v2.c +78 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-range-payload-v2.c +89 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iev-v2.c +248 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iev.c +467 -414
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup-v2.c +172 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup.c +141 -159
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-uev-v2.c +338 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-uev.c +238 -176
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-rfds.c +373 -474
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-edge-generation.c +346 -388
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-encoding.c +708 -825
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-mincover.c +417 -481
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-rangeopts.c +110 -144
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-reader.c +124 -207
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-tokens.c +223 -213
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-writer.c +176 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.c +634 -807
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.h +1 -2
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert.h +168 -189
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-buffer.c +187 -211
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cache-oauth.c +34 -36
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cache.c +210 -233
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ciphertext.c +185 -220
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-compact.c +331 -445
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-hooks.c +670 -814
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-std-hooks.c +102 -135
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-std-hooks.h +54 -71
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto.c +394 -846
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-csfle-lib.c +159 -183
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-decrypt.c +867 -1045
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-encrypt.c +4349 -4713
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-rewrap-many-datakey.c +750 -964
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-setopt.c +991 -1178
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-datakey.c +342 -419
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-dll.c +23 -30
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-endpoint.c +98 -111
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kek.c +49 -52
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key-broker.c +770 -920
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key-cache.c +354 -407
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key.c +197 -245
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kms-ctx.c +286 -370
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kms-responses.c +147 -166
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-local-kms.c +50 -61
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-log.c +85 -100
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-marking.c +656 -692
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-status.c +46 -58
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-traverse-util.c +377 -451
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-util.c +48 -67
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-util.h +4 -10
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.c +827 -918
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.h +111 -172
- data/ext/libmongocrypt/libmongocrypt/test/util/csfle.c +508 -559
- data/ext/libmongocrypt/libmongocrypt/test/util/util.c +735 -881
- data/ext/libmongocrypt/libmongocrypt/test/util/util.h +33 -55
- data/lib/libmongocrypt_helper/version.rb +2 -2
- data.tar.gz.sig +0 -0
- metadata +154 -26
- metadata.gz.sig +0 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit/int32/encrypted-payload.json +0 -26
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit/int32/key-document.json +0 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/credentialsProvider.js +0 -33
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/credentialsProvider.test.js +0 -163
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/fle2-find-range-explicit/int32/encrypted-payload.json +0 -26
- data/ext/libmongocrypt/libmongocrypt/test/data/aes-ctr.cstructs +0 -359
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-aead.cstructs +0 -109
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/encrypted-payload.json +0 -26
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/rangeopts.json +0 -5
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/value-to-encrypt.json +0 -20
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/RNG_DATA.h +0 -70
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/encrypted-payload.json +0 -8
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/rangeopts.json +0 -5
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/value-to-encrypt.json +0 -5
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2.cstructs +0 -33
- /data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/{fle2-find-range-explicit → fle2-find-range-explicit-v2}/int32/key-filter.json +0 -0
- /data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/{fle2-find-range-explicit → fle2-find-range-explicit-v2}/int32/rangeopts.json +0 -0
- /data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/{fle2-find-range-explicit → fle2-find-range-explicit-v2}/int32/value-to-encrypt.json +0 -0
- /data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/{fle2-find-range-explicit → fle2-find-range-explicit-v2}/int32/rangeopts.json +0 -0
- /data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/{fle2-find-range-explicit → fle2-find-range-explicit-v2}/int32/value-to-encrypt.json +0 -0
@@ -0,0 +1,61 @@
|
|
1
|
+
{
|
2
|
+
"ok": {
|
3
|
+
"$numberInt": "1"
|
4
|
+
},
|
5
|
+
"result": {
|
6
|
+
"insert": "test",
|
7
|
+
"documents": [
|
8
|
+
{
|
9
|
+
"plainText": "sample",
|
10
|
+
"encrypted": {
|
11
|
+
"$binary": {
|
12
|
+
"base64": "A7AAAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAUQAAABN2AACABMa6ngEAAAAAAAAAJDATbWluAAAAAAAAAAAAAAAAAAAAQDATbWF4ABWB6X30ECIRAAAAAAAAQDAQcHJlY2lzaW9uAAIAAAAAEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA",
|
13
|
+
"subType": "6"
|
14
|
+
}
|
15
|
+
}
|
16
|
+
}
|
17
|
+
],
|
18
|
+
"encryptionInformation": {
|
19
|
+
"type": {
|
20
|
+
"$numberInt": "1"
|
21
|
+
},
|
22
|
+
"schema": {
|
23
|
+
"db.test": {
|
24
|
+
"escCollection": "fle2.test.esc",
|
25
|
+
"ecocCollection": "fle2.test.ecoc",
|
26
|
+
"fields": [
|
27
|
+
{
|
28
|
+
"keyId": {
|
29
|
+
"$binary": {
|
30
|
+
"base64": "EjRWeBI0mHYSNBI0VniQEg==",
|
31
|
+
"subType": "04"
|
32
|
+
}
|
33
|
+
},
|
34
|
+
"path": "encrypted",
|
35
|
+
"bsonType": "decimal",
|
36
|
+
"queries": {
|
37
|
+
"queryType": "rangePreview",
|
38
|
+
"contention": {
|
39
|
+
"$numberInt": "0"
|
40
|
+
},
|
41
|
+
"sparsity": {
|
42
|
+
"$numberInt": "1"
|
43
|
+
},
|
44
|
+
"min": {
|
45
|
+
"$numberDecimal": "0"
|
46
|
+
},
|
47
|
+
"max": {
|
48
|
+
"$numberDecimal": "1234567890123456789"
|
49
|
+
},
|
50
|
+
"precision": {
|
51
|
+
"$numberInt": "2"
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
]
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
},
|
60
|
+
"hasEncryptedPlaceholders": true
|
61
|
+
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
{
|
2
|
+
"db.test": {
|
3
|
+
"escCollection": "fle2.test.esc",
|
4
|
+
"ecocCollection": "fle2.test.ecoc",
|
5
|
+
"fields": [
|
6
|
+
{
|
7
|
+
"keyId": {
|
8
|
+
"$binary": {
|
9
|
+
"base64": "EjRWeBI0mHYSNBI0VniQEg==",
|
10
|
+
"subType": "04"
|
11
|
+
}
|
12
|
+
},
|
13
|
+
"path": "encrypted",
|
14
|
+
"bsonType": "decimal",
|
15
|
+
"queries": {
|
16
|
+
"queryType": "rangePreview",
|
17
|
+
"contention": {
|
18
|
+
"$numberInt": "0"
|
19
|
+
},
|
20
|
+
"sparsity": {
|
21
|
+
"$numberInt": "1"
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
25
|
+
]
|
26
|
+
}
|
27
|
+
}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
{
|
2
|
+
"insert": "test",
|
3
|
+
"documents": [
|
4
|
+
{
|
5
|
+
"plainText": "sample",
|
6
|
+
"encrypted": {
|
7
|
+
"$binary": {
|
8
|
+
"base64": "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",
|
9
|
+
"subType": "6"
|
10
|
+
}
|
11
|
+
}
|
12
|
+
}
|
13
|
+
],
|
14
|
+
"encryptionInformation": {
|
15
|
+
"type": 1,
|
16
|
+
"schema": {
|
17
|
+
"db.test": {
|
18
|
+
"escCollection": "fle2.test.esc",
|
19
|
+
"ecocCollection": "fle2.test.ecoc",
|
20
|
+
"fields": [
|
21
|
+
{
|
22
|
+
"keyId": {
|
23
|
+
"$binary": {
|
24
|
+
"base64": "EjRWeBI0mHYSNBI0VniQEg==",
|
25
|
+
"subType": "04"
|
26
|
+
}
|
27
|
+
},
|
28
|
+
"path": "encrypted",
|
29
|
+
"bsonType": "decimal",
|
30
|
+
"queries": {
|
31
|
+
"queryType": "rangePreview",
|
32
|
+
"contention": {
|
33
|
+
"$numberInt": "0"
|
34
|
+
},
|
35
|
+
"sparsity": {
|
36
|
+
"$numberInt": "1"
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
]
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
{
|
2
|
+
"ok": {
|
3
|
+
"$numberInt": "1"
|
4
|
+
},
|
5
|
+
"result": {
|
6
|
+
"insert": "test",
|
7
|
+
"documents": [
|
8
|
+
{
|
9
|
+
"plainText": "sample",
|
10
|
+
"encrypted": {
|
11
|
+
"$binary": {
|
12
|
+
"base64": "A6EAAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAQgAAABN2AACwTivebwAAAAAAAAAAJDATbWluAP////9jjo03wIetvgnt/98TbWF4AP////9jjo03wIetvgnt/18AEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA",
|
13
|
+
"subType": "6"
|
14
|
+
}
|
15
|
+
}
|
16
|
+
}
|
17
|
+
],
|
18
|
+
"encryptionInformation": {
|
19
|
+
"type": {
|
20
|
+
"$numberInt": "1"
|
21
|
+
},
|
22
|
+
"schema": {
|
23
|
+
"db.test": {
|
24
|
+
"escCollection": "fle2.test.esc",
|
25
|
+
"ecocCollection": "fle2.test.ecoc",
|
26
|
+
"fields": [
|
27
|
+
{
|
28
|
+
"keyId": {
|
29
|
+
"$binary": {
|
30
|
+
"base64": "EjRWeBI0mHYSNBI0VniQEg==",
|
31
|
+
"subType": "04"
|
32
|
+
}
|
33
|
+
},
|
34
|
+
"path": "encrypted",
|
35
|
+
"bsonType": "decimal",
|
36
|
+
"queries": {
|
37
|
+
"queryType": "rangePreview",
|
38
|
+
"contention": {
|
39
|
+
"$numberInt": "0"
|
40
|
+
},
|
41
|
+
"sparsity": {
|
42
|
+
"$numberInt": "1"
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}
|
46
|
+
]
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
},
|
51
|
+
"hasEncryptedPlaceholders": true
|
52
|
+
}
|
@@ -1,70 +1,70 @@
|
|
1
1
|
// Defines the random data for IVs to obtain a deterministic
|
2
2
|
// FLE2InsertUpdatePayload.
|
3
|
-
#define RNG_DATA
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
3
|
+
#define RNG_DATA \
|
4
|
+
"\xc1\xa1\x03\x4e\x80\xc5\x22\xf1\x6b\x0c\xa9\x39\x2f\xda\x68\x88" \
|
5
|
+
"\xc0\x05\x26\x23\xfb\xa7\x85\x1e\xf8\x95\x4c\x23\xfe\x13\x26\x72" \
|
6
|
+
"\x67\xa3\x19\xe1\xb7\x2c\x24\xef\x36\xa0\x14\x16\xc8\x57\xf0\xee" \
|
7
|
+
"\xc9\xee\x1c\xa7\x25\x8e\x07\xe1\x47\x25\x72\x03\x32\x70\x7a\x9a" \
|
8
|
+
"\x1c\x9d\x9c\x3f\x0c\xbd\xe3\x13\xff\x27\xba\xdd\xaa\x8c\x08\xa4" \
|
9
|
+
"\x6b\x2f\xad\x5d\xce\x5f\xca\xaf\x75\xc3\xd9\xff\xe4\x5c\x36\xb9" \
|
10
|
+
"\x02\xd9\xc9\x6e\xee\x43\x49\x28\x4e\x76\x94\xe9\x5a\xb9\x46\xb5" \
|
11
|
+
"\x7c\xe2\xb7\x67\x1f\xfc\x02\xc6\xdd\xc9\x82\x26\x00\xd1\xd6\x67" \
|
12
|
+
"\xe1\x89\x54\x31\x24\x9c\xb1\x3f\xd0\xd9\xde\xe4\x63\xd9\x9e\xd5" \
|
13
|
+
"\x5a\xb7\x20\x26\x30\xab\x48\xbd\xac\x23\x5f\x95\x4b\x96\x17\x4f" \
|
14
|
+
"\xd5\x97\x4d\xdc\x24\xd7\x46\xd8\x73\x6d\x95\x3f\x0a\x51\xdb\x60" \
|
15
|
+
"\xe7\x60\xfc\x68\x5b\x78\x8e\x02\x19\x85\x44\x90\xb7\xe5\x60\xa4" \
|
16
|
+
"\x8a\x93\x06\x13\xcb\x1d\x3d\x66\xba\x01\x26\x4b\x0c\x4d\xcf\x69" \
|
17
|
+
"\x7a\xde\xb9\x2e\x40\xd1\x3b\x73\x7c\x6a\x9e\x3e\x1f\xa5\xff\x20" \
|
18
|
+
"\x4e\x94\xd0\x1d\x7c\x9e\x22\xbe\xa2\xb1\xb5\xa2\xff\xf5\x47\xeb" \
|
19
|
+
"\x59\xe7\xc6\x4a\x67\x0f\x0e\x7c\xef\x9a\x6f\x49\x63\xe5\x64\x2f" \
|
20
|
+
"\xcc\x73\x63\xdd\x36\x28\x03\x4c\x9b\x7e\xd2\x30\x83\xce\x0b\xb1" \
|
21
|
+
"\x20\x30\x83\xbf\x0c\x21\x44\x3d\xc3\x73\x42\x49\x57\x47\xcc\xfc" \
|
22
|
+
"\x97\xa9\x1a\x8b\xd2\xc2\x2d\xe9\xbf\x14\xe2\x9a\x05\xc3\x27\xe9" \
|
23
|
+
"\xa4\x1d\x55\x4f\xea\x78\x92\x81\xdb\x9e\x9e\x7d\x14\x12\xd3\x48" \
|
24
|
+
"\x93\xec\xdd\xdf\x4e\xc3\x78\x35\x20\x7a\xde\xa0\x3a\xee\xd5\x8a" \
|
25
|
+
"\xef\x0b\x39\x7d\x8f\xfd\x43\x50\xe2\x42\x0d\x76\xd8\xb9\x42\x0a" \
|
26
|
+
"\x3d\xfe\xbd\x51\x78\x97\x88\xb8\x2f\xf9\x32\x4d\x0f\x70\x58\xf0" \
|
27
|
+
"\xf9\xdf\xab\xc0\x58\x28\x9e\x8f\x7c\x34\x45\x4c\xc1\xc5\x18\x08" \
|
28
|
+
"\xc9\x66\xf1\xfe\xea\xfb\x50\x6a\xbc\x85\x19\x10\x79\x64\x76\xf6" \
|
29
|
+
"\xfa\x5b\xa4\xe7\x3b\xcc\x39\x35\x7d\x2c\xd8\x5f\x8f\xf2\xa1\x93" \
|
30
|
+
"\x15\x34\x87\xc6\x01\xa7\xa0\x00\x94\x8c\x02\x31\x25\x5c\xe9\x97" \
|
31
|
+
"\x9e\x3f\x0c\x72\xe6\x0f\x7f\x21\xe0\xb9\x17\x22\x33\xba\x69\x0c" \
|
32
|
+
"\x9f\x61\xb8\x8d\x6b\x2f\x86\xa7\x2f\xbf\x7b\xec\x82\x8e\x58\x34" \
|
33
|
+
"\xb2\x85\xe2\xaf\xf2\xd4\xa5\x7a\xba\x42\x17\xb5\xc8\xfc\xf4\x49" \
|
34
|
+
"\x65\xf0\xc4\xd5\xbd\xe6\x3d\xba\x91\x36\x5a\x84\x08\x79\x7e\xc8" \
|
35
|
+
"\xe0\x74\xa2\x34\x1a\xa6\xda\x1a\x84\x68\xb7\xa2\x66\x40\xd8\x1f" \
|
36
|
+
"\x48\x81\x47\xaa\xe1\x47\x05\xac\x84\xde\x15\x5b\xdf\x2e\x6b\xdd" \
|
37
|
+
"\x69\xaf\x9e\xca\xed\x99\xaf\x7d\x04\xb3\x8d\xcc\xf4\xa5\x7a\x6f" \
|
38
|
+
"\x7b\x37\x72\x53\xc2\xe0\xbd\x08\x63\xb3\xa3\x12\x84\x25\x55\x1c" \
|
39
|
+
"\x37\x7b\x77\x71\x6c\x19\x27\x27\x03\x97\x89\xaa\x93\x75\xf9\x06" \
|
40
|
+
"\x69\x1a\x22\x7d\x35\x66\x3a\xe7\x72\x91\x23\xfb\x39\x00\xae\xa9" \
|
41
|
+
"\x08\xe7\xae\x2a\xb7\xc2\x4d\xd6\x72\x15\xee\x70\xd1\xaf\x4f\x4d" \
|
42
|
+
"\x22\xe6\xc8\x79\xd7\x41\xb2\x28\x5a\xa2\x3e\x0d\xbd\x33\xac\x7d" \
|
43
|
+
"\x50\xcb\x96\xb5\xc2\x49\xc5\x7d\xd3\x36\x7c\xda\x6a\xc4\x54\xfa" \
|
44
|
+
"\x3f\x7c\xa4\xde\xfe\x60\x2c\x89\xc4\x79\xe4\x31\xdd\xb7\xa1\x76" \
|
45
|
+
"\x31\x43\xe1\xbb\xb8\x56\x78\x1e\x2d\xac\xe7\xff\x34\x8f\xc6\x36" \
|
46
|
+
"\x2c\x6f\x43\x65\x2f\x7f\xd1\xe3\xd1\x89\xf5\xe9\x2b\xd4\x58\xd7" \
|
47
|
+
"\xaf\x1b\xb4\xfb\xec\x61\xf0\xf3\x8f\x53\x9c\xaa\x31\x69\x17\x7d" \
|
48
|
+
"\xca\x6e\x1b\xba\x0d\x60\x43\x4d\x35\x4b\x23\x88\x4a\x51\x29\x7e" \
|
49
|
+
"\xfd\xb6\xe0\xd4\xcb\x94\x8b\xd3\x65\x22\x07\x9b\x39\xea\x46\xff" \
|
50
|
+
"\x5f\xf2\x4e\xee\x2e\x8a\x8d\xe3\x5d\xc7\xa4\xfc\xd4\xec\xb3\xc1" \
|
51
|
+
"\xe7\xbe\x19\x97\x7a\x7a\xc6\x2e\x0b\xcd\xc0\x94\x87\xcd\x5f\xc6" \
|
52
|
+
"\x37\x08\x01\xf3\x38\x90\xb5\x77\x97\xdd\xc4\x42\xa9\xb5\xe6\xdb" \
|
53
|
+
"\x7d\x4b\xfe\x4f\x5d\xc1\xe1\x5d\xde\x3d\x6a\x59\x70\x65\xb6\xeb" \
|
54
|
+
"\xce\x0c\xdf\x97\x88\xee\x72\x08\x64\xd9\x09\x44\x23\x66\x3b\xc4" \
|
55
|
+
"\x2c\x98\xfa\xfd\xd8\x6a\x04\xb9\xd1\xfc\xbf\xcb\xe1\xc1\x77\x3f" \
|
56
|
+
"\x42\x84\xc2\x13\x14\xff\x56\x4c\xf3\x40\x87\xb5\x13\x0d\x06\x38" \
|
57
|
+
"\x37\xc5\x15\xb6\xfd\x23\x80\x6e\x32\x59\xa1\x83\x2d\x73\xbb\xd5" \
|
58
|
+
"\x4e\xfd\x2d\x37\x09\x38\xcd\x3d\xa5\xef\xe1\x0f\xe5\x36\xa9\x8d" \
|
59
|
+
"\xbb\x27\xd4\x81\x5e\xdf\x63\x85\x67\x07\xed\x04\x84\x26\x82\x48" \
|
60
|
+
"\x85\x83\xed\x8b\xe8\x71\x29\x96\x71\x00\xc5\x75\x5b\xe3\x4f\x4d" \
|
61
|
+
"\xef\x2f\xfa\x88\xf2\x9a\xd0\xe3\xb8\x38\xdc\xd3\x12\x7a\x21\x65" \
|
62
|
+
"\x38\xdc\xb9\x36\x86\x23\xa9\xbc\xa5\x4f\x50\xc2\xb6\x3d\x40\xd4" \
|
63
|
+
"\xdc\x5b\x35\xf9\x89\xb0\x45\x7f\x3d\x2a\x61\xfd\x0e\xec\x00\x52" \
|
64
|
+
"\x71\xa5\x1f\xe5\x49\xe0\x26\xf9\xd0\x2a\x1d\x5f\x3f\x9e\x82\x07" \
|
65
|
+
"\xfb\xf7\xdb\xa1\x87\x56\xd6\x13\x4b\x2c\x8e\x73\xbc\x56\x98\x1d" \
|
66
|
+
"\xae\xe6\x9d\xab\x15\x83\x0e\x0a\x4c\x3c\xd0\x11\x41\x96\xc0\x56" \
|
67
|
+
"\x94\x7a\x1e\x0b\xc8\xec\x23\xa3\x9d\x6d\x01\x01\x22\xa7\xbd\x96" \
|
68
|
+
"\x51\xb0\x6a\xab\x98\x7c\xcd\xd3\xff\xf0\x67\x63\x16\xf2\x2f\x62" \
|
69
|
+
"\x3c\xbd\x8b\x4a\x49\xb0\xe4\xe3\x12\xd4\x6b\x12\x41\x32\x22\xc0" \
|
70
|
+
"\x51\x0c\xaf\x7e\x01\x46\x2b\xd5\x50\x9c\xd6\xfd\x42\xb5\x11\x4b"
|
data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/RNG_DATA.h
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
// Defines the random data for IVs to obtain a deterministic
|
2
2
|
// FLE2InsertUpdatePayload.
|
3
|
-
#define RNG_DATA
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
3
|
+
#define RNG_DATA \
|
4
|
+
"\xda\x16\x8b\x32\xc5\xeb\x17\x3d\x6a\x02\xb8\x27\x04\x24\xd3\xb8" \
|
5
|
+
"\x50\x8d\x80\xf9\xfb\xc9\x7f\x40\xa2\x76\xc6\xda\x45\x98\xfc\x13" \
|
6
|
+
"\xd6\x36\x28\x2a\x80\xa3\xdd\xf8\xa1\x15\x0a\xcc\x72\xe5\x8f\x1a" \
|
7
|
+
"\xea\x81\x5f\x2c\xb2\xbc\x4e\x09\xaa\xac\xe0\x4f\x1d\x5d\x91\xc1" \
|
8
|
+
"\x5d\x84\x81\x60\xca\x0f\x02\x9c\x66\xa6\xa1\x80\xe7\x8b\xb5\xca" \
|
9
|
+
"\xdd\x1c\xfd\x9a\xd6\x2a\x3e\x03\xf7\x21\x92\x9d\xac\x47\x01\x7c" \
|
10
|
+
"\x3c\x5e\xd4\x96\xfd\x13\x06\x11\xfe\x5a\x61\xcf\x42\x3b\xd9\x05" \
|
11
|
+
"\xea\x37\x99\x12\x5f\xe8\x8c\x86\x33\xef\x9c\x6d\xa5\xc2\x51\x2a" \
|
12
|
+
"\xda\x56\x83\x53\x62\x01\x76\x96\x18\x3b\x30\x97\xaa\xd3\xc8\x19" \
|
13
|
+
"\xf8\xff\x94\x31\x63\x9d\x33\x48\x56\x15\xd5\x06\xf3\x03\x1b\x74" \
|
14
|
+
"\xfb\x61\x49\x63\x6e\x3c\xc9\xc4\xe7\x11\x9f\x58\x88\x2f\xad\x7b" \
|
15
|
+
"\xc1\xea\xfa\x04\x28\x08\x1f\xd2\xec\xa2\xbc\x7a\x7d\xc7\xb1\xfc" \
|
16
|
+
"\xe5\x21\xb4\xe7\x9c\x27\xc7\x77\x62\x53\x09\x2a\xc3\x9d\x51\x5c" \
|
17
|
+
"\xac\x7d\xa9\xca\x52\x73\xff\x75\x12\xe3\xf9\x94\x18\xef\xdb\x3b" \
|
18
|
+
"\xec\x2f\xa9\xcd\xf1\x8b\x80\x61\xaa\xbd\x96\x72\xc6\x3b\xbd\x69" \
|
19
|
+
"\x1a\x75\x61\x8f\xa4\xe1\xda\x32\xa5\xad\x6c\x8f\x16\x05\x3d\xd8" \
|
20
|
+
"\x00\x95\xc6\x6c\xfe\x30\x75\xc5\x53\x76\xf7\x28\xbf\xcc\x7d\x30" \
|
21
|
+
"\xec\x86\xfd\x48\xa5\x15\xb5\x02\x3b\xef\xd9\x32\x01\xa8\x5c\x2a"
|
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
"db.test": {
|
3
|
+
"escCollection": "fle2.test.esc",
|
4
|
+
"ecocCollection": "fle2.test.ecoc",
|
5
|
+
"fields": [
|
6
|
+
{
|
7
|
+
"keyId": {
|
8
|
+
"$binary": {
|
9
|
+
"base64": "EjRWeBI0mHYSNBI0VniQEg==",
|
10
|
+
"subType": "04"
|
11
|
+
}
|
12
|
+
},
|
13
|
+
"path": "encrypted",
|
14
|
+
"bsonType": "double",
|
15
|
+
"queries": {
|
16
|
+
"queryType": "range",
|
17
|
+
"contention": {
|
18
|
+
"$numberInt": "0"
|
19
|
+
},
|
20
|
+
"sparsity": {
|
21
|
+
"$numberInt": "1"
|
22
|
+
},
|
23
|
+
"min": 0.0,
|
24
|
+
"max": 200.0,
|
25
|
+
"precision": 2
|
26
|
+
}
|
27
|
+
}
|
28
|
+
]
|
29
|
+
}
|
30
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
{
|
2
|
+
"insert": "test",
|
3
|
+
"documents": [
|
4
|
+
{
|
5
|
+
"plainText": "sample",
|
6
|
+
"encrypted": {
|
7
|
+
"$binary": {
|
8
|
+
"base64": "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",
|
9
|
+
"subType": "6"
|
10
|
+
}
|
11
|
+
}
|
12
|
+
}
|
13
|
+
],
|
14
|
+
"encryptionInformation": {
|
15
|
+
"type": 1,
|
16
|
+
"schema": {
|
17
|
+
"db.test": {
|
18
|
+
"escCollection": "fle2.test.esc",
|
19
|
+
"ecocCollection": "fle2.test.ecoc",
|
20
|
+
"fields": [
|
21
|
+
{
|
22
|
+
"keyId": {
|
23
|
+
"$binary": {
|
24
|
+
"base64": "EjRWeBI0mHYSNBI0VniQEg==",
|
25
|
+
"subType": "04"
|
26
|
+
}
|
27
|
+
},
|
28
|
+
"path": "encrypted",
|
29
|
+
"bsonType": "double",
|
30
|
+
"queries": {
|
31
|
+
"queryType": "range",
|
32
|
+
"contention": {
|
33
|
+
"$numberInt": "0"
|
34
|
+
},
|
35
|
+
"sparsity": {
|
36
|
+
"$numberInt": "1"
|
37
|
+
},
|
38
|
+
"min": 0.0,
|
39
|
+
"max": 200.0,
|
40
|
+
"precision": 2
|
41
|
+
}
|
42
|
+
}
|
43
|
+
]
|
44
|
+
}
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
{
|
2
|
+
"ok": {
|
3
|
+
"$numberInt": "1"
|
4
|
+
},
|
5
|
+
"result": {
|
6
|
+
"insert": "test",
|
7
|
+
"documents": [
|
8
|
+
{
|
9
|
+
"plainText": "sample",
|
10
|
+
"encrypted": {
|
11
|
+
"$binary": {
|
12
|
+
"base64": "A5gAAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAOQAAAAF2AHe+nxov3V5AAW1pbgAAAAAAAAAAAAFtYXgAAAAAAAAAaUAQcHJlY2lzaW9uAAIAAAAAEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA",
|
13
|
+
"subType": "6"
|
14
|
+
}
|
15
|
+
}
|
16
|
+
}
|
17
|
+
],
|
18
|
+
"encryptionInformation": {
|
19
|
+
"type": {
|
20
|
+
"$numberInt": "1"
|
21
|
+
},
|
22
|
+
"schema": {
|
23
|
+
"db.test": {
|
24
|
+
"escCollection": "fle2.test.esc",
|
25
|
+
"ecocCollection": "fle2.test.ecoc",
|
26
|
+
"fields": [
|
27
|
+
{
|
28
|
+
"keyId": {
|
29
|
+
"$binary": {
|
30
|
+
"base64": "EjRWeBI0mHYSNBI0VniQEg==",
|
31
|
+
"subType": "04"
|
32
|
+
}
|
33
|
+
},
|
34
|
+
"path": "encrypted",
|
35
|
+
"bsonType": "double",
|
36
|
+
"queries": {
|
37
|
+
"queryType": "range",
|
38
|
+
"contention": {
|
39
|
+
"$numberInt": "0"
|
40
|
+
},
|
41
|
+
"sparsity": {
|
42
|
+
"$numberInt": "1"
|
43
|
+
},
|
44
|
+
"min": 0.0,
|
45
|
+
"max": 200.0,
|
46
|
+
"precision": 2
|
47
|
+
}
|
48
|
+
}
|
49
|
+
]
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
},
|
54
|
+
"hasEncryptedPlaceholders": true
|
55
|
+
}
|