libmongocrypt-helper 1.13.2.0.1001 → 1.14.0.0.1001
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/libmongocrypt/libmongocrypt/CHANGELOG.md +8 -0
- data/ext/libmongocrypt/libmongocrypt/CMakeLists.txt +5 -1
- data/ext/libmongocrypt/libmongocrypt/CODEOWNERS +4 -1
- data/ext/libmongocrypt/libmongocrypt/Earthfile +18 -17
- data/ext/libmongocrypt/libmongocrypt/README.md +8 -8
- data/ext/libmongocrypt/libmongocrypt/bindings/python/CHANGELOG.rst +7 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/CONTRIBUTING.md +34 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/asynchronous/state_machine.py +6 -2
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/binding.py +18 -2
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/mongocrypt.py +9 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/options.py +14 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/synchronous/state_machine.py +6 -2
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/version.py +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/sbom.json +8 -8
- data/ext/libmongocrypt/libmongocrypt/bindings/python/scripts/libmongocrypt-version.txt +1 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/{release.sh → scripts/release.sh} +9 -3
- data/ext/libmongocrypt/libmongocrypt/bindings/python/{synchro.py → scripts/synchro.py} +16 -9
- data/ext/libmongocrypt/libmongocrypt/bindings/python/scripts/synchro.sh +8 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/scripts/update-version.sh +27 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/scripts/update_binding.py +78 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/test_mongocrypt.py +15 -0
- data/ext/libmongocrypt/libmongocrypt/doc/releasing.md +25 -18
- data/ext/libmongocrypt/libmongocrypt/etc/calc_release_version.py +39 -13
- data/ext/libmongocrypt/libmongocrypt/etc/calc_release_version_selftest.sh +1 -1
- data/ext/libmongocrypt/libmongocrypt/etc/cyclonedx.sbom.json +2 -2
- data/ext/libmongocrypt/libmongocrypt/kms-message/CMakeLists.txt +1 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/hexlify.c +5 -0
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/hexlify.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_azure_request.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_gcp_request.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_reader_writer.c +4 -2
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_request.c +1 -2
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message_private.h +5 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request_opt.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request_str.c +2 -8
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request_str.h +9 -0
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_response_parser.c +0 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/sort.c +7 -3
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/sort.h +2 -0
- data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kmip_reader_writer.c +8 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_assert.h +5 -4
- data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_azure_online.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_gcp_online.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_kmip_request.c +4 -0
- data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_kmip_response.c +3 -0
- data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_kmip_response_parser.c +4 -0
- data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_online_util.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_online_util.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_request.c +39 -39
- data/ext/libmongocrypt/libmongocrypt/src/crypto/libcrypto.c +235 -65
- data/ext/libmongocrypt/libmongocrypt/src/crypto/none.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/csfle-markup.cpp +4 -2
- data/ext/libmongocrypt/libmongocrypt/src/mc-dec128.h +2 -2
- data/ext/libmongocrypt/libmongocrypt/src/mc-dec128.test.cpp +2 -2
- data/ext/libmongocrypt/libmongocrypt/src/mc-efc-private.h +1 -4
- data/ext/libmongocrypt/libmongocrypt/src/mc-efc.c +9 -11
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle-blob-subtype-private.h +1 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h +10 -8
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder.c +167 -176
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-v2.c +6 -17
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload.c +6 -17
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-private-v2.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-v2.c +25 -26
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload.c +2 -1
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-text-payload-private.h +122 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-text-payload.c +477 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-private-v2.h +1 -3
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-v2.c +28 -43
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload.c +6 -17
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-v2.c +6 -5
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev.c +13 -10
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-common.c +3 -2
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-rfds.c +7 -6
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block.c +4 -3
- data/ext/libmongocrypt/libmongocrypt/src/mc-optional-private.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mc-parse-utils-private.h +27 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-parse-utils.c +48 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation-private.h +5 -5
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation.c +15 -20
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding-private.h +4 -6
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding.c +9 -18
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-generator.template.h +4 -5
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-private.h +5 -9
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover.c +14 -19
- data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts-private.h +2 -4
- data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts.c +109 -119
- data/ext/libmongocrypt/libmongocrypt/src/mc-reader-private.h +2 -2
- data/ext/libmongocrypt/libmongocrypt/src/mc-reader.c +4 -2
- data/ext/libmongocrypt/libmongocrypt/src/mc-schema-broker-private.h +0 -3
- data/ext/libmongocrypt/libmongocrypt/src/mc-schema-broker.c +4 -14
- data/ext/libmongocrypt/libmongocrypt/src/mc-str-encode-string-sets-private.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mc-str-encode-string-sets.c +3 -3
- data/ext/libmongocrypt/libmongocrypt/src/mc-text-search-str-encode-private.h +8 -1
- data/ext/libmongocrypt/libmongocrypt/src/mc-text-search-str-encode.c +78 -2
- data/ext/libmongocrypt/libmongocrypt/src/mc-tokens-private.h +34 -16
- data/ext/libmongocrypt/libmongocrypt/src/mc-tokens.c +66 -74
- data/ext/libmongocrypt/libmongocrypt/src/mc-writer-private.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mc-writer.c +4 -2
- data/ext/libmongocrypt/libmongocrypt/src/mlib/error.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.h +12 -1
- data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.test.cpp +5 -0
- data/ext/libmongocrypt/libmongocrypt/src/mlib/path.h +5 -5
- data/ext/libmongocrypt/libmongocrypt/src/mlib/path.test.c +2 -5
- data/ext/libmongocrypt/libmongocrypt/src/mlib/str.h +65 -58
- data/ext/libmongocrypt/libmongocrypt/src/mlib/str.test.c +3 -3
- data/ext/libmongocrypt/libmongocrypt/src/mlib/thread.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mlib/user-check.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-collinfo-private.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-collinfo.c +4 -0
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ciphertext-private.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-crypto-private.h +4 -4
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-crypto.c +29 -25
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-datakey.c +3 -2
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-decrypt.c +6 -3
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-encrypt.c +48 -58
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-rewrap-many-datakey.c +12 -0
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx.c +5 -13
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-dll-private.h +19 -2
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-broker.c +9 -9
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking-private.h +3 -4
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking.c +285 -89
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts-private.h +0 -2
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts.c +0 -1
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-private.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-util.c +4 -1
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.c +47 -31
- data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_dll.c +2 -0
- data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_mutex.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/os_win/os_dll.c +3 -1
- data/ext/libmongocrypt/libmongocrypt/src/os_win/os_mutex.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/unicode/case-fold-map.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/unicode/diacritic-fold-map.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/unicode/fold.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/crypt_shared-stub.cpp +0 -14
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/encrypted-field-config-map.json +6 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2InsertUpdatePayloadV2-RangeV2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/encrypted-field-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/encrypted-payload.json +6 -4
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/mongocryptd-reply.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/encrypted-field-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/encrypted-payload.json +6 -4
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/mongocryptd-reply.json +2 -2
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/encrypted-field-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/encrypted-payload.json +6 -4
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/mongocryptd-reply.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/encrypted-payload.json +14 -6
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/encrypted-field-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/encrypted-payload.json +6 -4
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/mongocryptd-reply.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/encrypted-field-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/encrypted-payload.json +6 -4
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/mongocryptd-reply.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/encrypted-field-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/encrypted-payload.json +6 -4
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/mongocryptd-reply.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double/encrypted-payload-v2.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double-precision/encrypted-payload-v2.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32/encrypted-payload-v2.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-openinterval/encrypted-payload-v2.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/encrypted-field-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/encrypted-payload.json +6 -4
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/mongocryptd-reply.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/encrypted-field-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/encrypted-payload.json +6 -4
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/mongocryptd-reply.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/encrypted-field-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/encrypted-payload.json +6 -4
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/mongocryptd-reply.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/encrypted-payload.json +14 -6
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/encrypted-field-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/encrypted-payload.json +6 -4
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/mongocryptd-reply.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/encrypted-field-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/encrypted-payload.json +3 -3
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/mongocryptd-reply.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/encrypted-field-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/encrypted-payload.json +6 -4
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/mongocryptd-reply.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/encrypted-payload-v2.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/encrypted-payload-v2.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32/encrypted-payload-v2.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/encrypted-payload-v2.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/tokens/mc.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/tokens/server.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/example-state-machine.c +5 -5
- data/ext/libmongocrypt/libmongocrypt/test/test-dll.cpp +11 -5
- data/ext/libmongocrypt/libmongocrypt/test/test-gcp-auth.c +2 -2
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-efc.c +9 -11
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-encryption-placeholder.c +18 -29
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-equality-payload-v2.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-range-payload-v2.c +2 -18
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-text-payload.c +320 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup-v2.c +2 -17
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-rfds.c +8 -5
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-edge-generation.c +6 -10
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-encoding.c +29 -33
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-mincover.c +12 -20
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-rangeopts.c +5 -20
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-reader.c +5 -5
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-text-search-str-encode.c +147 -18
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-tokens.c +35 -14
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-writer.c +10 -10
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.c +3 -7
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert.h +36 -24
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-buffer.c +4 -4
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cache.c +2 -2
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ciphertext.c +13 -13
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cleanup.c +49 -55
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-compact.c +64 -67
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-hooks.c +18 -18
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-std-hooks.c +4 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto.c +4 -3
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-csfle-lib.c +13 -3
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-decrypt.c +31 -13
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-encrypt.c +35 -52
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-rewrap-many-datakey.c +28 -1
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-setopt.c +50 -91
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-datakey.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-dll.c +7 -4
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-endpoint.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kek.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key-cache.c +3 -5
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kms-ctx.c +2 -2
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-local-kms.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-log.c +2 -2
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-marking.c +527 -225
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-status.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.c +45 -56
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.h +12 -3
- data/ext/libmongocrypt/libmongocrypt/test/test-named-kms-providers.c +11 -11
- data/ext/libmongocrypt/libmongocrypt/test/test-unicode-fold.c +6 -2
- data/ext/libmongocrypt/libmongocrypt/test/util/HELP.autogen +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/util/csfle.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/util/util.c +5 -5
- data/ext/libmongocrypt/libmongocrypt/test/util/util.h +7 -6
- data/lib/libmongocrypt_helper/version.rb +2 -2
- metadata +17 -13
- data/ext/libmongocrypt/libmongocrypt/bindings/python/libmongocrypt-version.txt +0 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/strip_header.py +0 -50
- data/ext/libmongocrypt/libmongocrypt/bindings/python/update-sbom.sh +0 -14
- data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/success/encrypted-payload.json +0 -29
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/encrypted-payload.json +0 -29
- data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2EqualityIndexedValueV2.json +0 -8
- data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2RangeIndexedValueV2.json +0 -8
- /data/ext/libmongocrypt/libmongocrypt/bindings/python/{build-manylinux-wheel.sh → scripts/build-manylinux-wheel.sh} +0 -0
- /data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/{FLE2InsertUpdatePayload-with-edges.json → FLE2InsertUpdatePayload-RangeV1.json} +0 -0
- /data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/{FLE2InsertUpdatePayload-with-edges-V2.json → FLE2InsertUpdatePayloadV2-RangeV1.json} +0 -0
data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/encrypted-payload.json
CHANGED
@@ -5,14 +5,16 @@
|
|
5
5
|
"plainText": "sample",
|
6
6
|
"encrypted": {
|
7
7
|
"$binary": {
|
8
|
-
"base64": "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",
|
9
|
-
"subType": "
|
8
|
+
"base64": "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",
|
9
|
+
"subType": "06"
|
10
10
|
}
|
11
11
|
}
|
12
12
|
}
|
13
13
|
],
|
14
14
|
"encryptionInformation": {
|
15
|
-
"type":
|
15
|
+
"type": {
|
16
|
+
"$numberInt": "1"
|
17
|
+
},
|
16
18
|
"schema": {
|
17
19
|
"db.test": {
|
18
20
|
"escCollection": "fle2.test.esc",
|
@@ -28,7 +30,7 @@
|
|
28
30
|
"path": "encrypted",
|
29
31
|
"bsonType": "long",
|
30
32
|
"queries": {
|
31
|
-
"queryType": "
|
33
|
+
"queryType": "range",
|
32
34
|
"contention": {
|
33
35
|
"$numberInt": "0"
|
34
36
|
},
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"v": {
|
3
3
|
"$binary": {
|
4
|
-
"base64": "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",
|
4
|
+
"base64": "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",
|
5
5
|
"subType": "06"
|
6
6
|
}
|
7
7
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"v": {
|
3
3
|
"$binary": {
|
4
|
-
"base64": "
|
4
|
+
"base64": "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",
|
5
5
|
"subType": "06"
|
6
6
|
}
|
7
7
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"v": {
|
3
3
|
"$binary": {
|
4
|
-
"base64": "
|
4
|
+
"base64": "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",
|
5
5
|
"subType": "06"
|
6
6
|
}
|
7
7
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"v": {
|
3
3
|
"$binary": {
|
4
|
-
"base64": "
|
4
|
+
"base64": "Cw0IAAAFZAAgAAAAAAYUuQ9Y1Ie7prKiZXHw9WYEhXcFQdSn7mmkPHFKGAEqBXMAIAAAAACJiCpdKff5FC0BawKHW+wWtxyoXymVQItTooswHY2SMQVwADEAAAAAgh3eQ+DXA+bVl7Y6XxfninmZIQZ+sQ7WyLlws3WpBj2V9JefzsCOiuT6KQOhMYepewV1ABAAAAAEEjRWeBI0mHYSNBI0VniQEhB0ABAAAAAFdgBQAAAAAKvN76sSNJh2EjQSNFZ4kBKS86MANK7azgxlGm/ssRHyq8/Uyo0dkvdkrAmXKIeVGpaXHgPrkQPaku3m2Hoyo/m6dk4NRwzn+qnLc5ZeOCTBBWUAIAAAAADrmnP3kS2GpCl+gdL2da90KHTkBX46iQ/sZRoj7uPz7AVsACAAAAAAlO36MaVLVRDFW6xrI+0UTkyQdFfSCEBPkZg8sFzuTJYSawAAAAAAAAAAAARnAIYGAAADMAC2AAAABWQAIAAAAABT+uzCz7yxp7uN3+z202vxQ5NOV985A80zAqx86317iAVzACAAAAAAotJPQKqQGOGUkMWaWW9GlbqGpHdx8Y9mSX7tBhUz8YMFbAAgAAAAAA6eOZwxxhUyuExW2kjHcKJmNCrEPFQ9vS9YbrzP67TgBXAAMQAAAACQx7q47zrax7mEWXr7hN5PTp0iteKt69e9FYcDvVXWTleTFW9tJNgqJDQWuU/RUS3RAAMxALYAAAAFZAAgAAAAAC6uvkdzWq3DNcfLqndCqjmD1janFLc/rxnwmsOTlcQUBXMAIAAAAACs7A835dqkD4syrnsnA2rujWW5+Q9e/1ELolPgiQVEoAVsACAAAAAAl7RsOFQfWxmV2cMZafTExrUJC43pyC/+L/peqek9Lf0FcAAxAAAAAODjHziX/jOEq1EwWbl5vbejutxP/Bf9gDs/aPda7K0C+EKlLvC36ubca4vIESrf/S0AAzIAtgAAAAVkACAAAAAAoUoQg16Zwx/MIC/qVVy1+ojzuf15HAMlSDUsDyR1jBAFcwAgAAAAAGjTSxjIFHdnG5GOJcz3yxpeieUHNiJeB/dEA3J7uNFlBWwAIAAAAAA5zR9OnG49Xrn3grU7zBDon+oj+/1FUIOptLvwesWUvQVwADEAAAAAMKfg5z0cNkGYuqjPXl7TxEQ2O460tHDZWQnksxhfHSbQeevCruptBsK/IZIOue6YBgADMwC2AAAABWQAIAAAAAAT7TqEEUeXh/sIdAUYaPZlm5PdZkQypOPgLNQzZ7096gVzACAAAAAAgiUZG8G1kJpdPg5YUxcX7dULyPO4kV7eZHlGkz9Pjs4FbAAgAAAAAIFEk9LC+wpdnt+iy3OTuzvc/W/4y7GWyhLN8YIFWpBZBXAAMQAAAACJ6NB6CU4h7J8d8VwVeZOenFQxk0CGMM2n+BIS515zjVXXwGoYnm2oMJTnK0gdALpwAAM0ALYAAAAFZAAgAAAAAGKJ35r7U30MbUBQIvdcgcQW7MG8KbYldN4PCdrQRRcRBXMAIAAAAACwwmMiXwHvD7BEzhBgfDj4L0AajySh/Qhtz42i5ogkbAVsACAAAAAABcm2+tbs0VSGFn9rDvWyvhuIRVDepRdoIvNa6TRv3zkFcAAxAAAAAFbOyWqIl86N8GHsoU0CsHbMhy+E+/XyNZ1tXAQf9TT/xLFZQh82dG/bScdnVDxaYgsAAzUAtgAAAAVkACAAAAAAS6a6wmUDWK5QmtbYpLZBZoC1YqhJ9ghM9hmHwqMxDMQFcwAgAAAAACPZfyXoosc069pp2tp8KGsWidaB3von9ACa7b4mqct4BWwAIAAAAACLCFou5eC94e2pRXNjJ8oPkENRCDGdw9eZP7Kvgb2mCAVwADEAAAAAuXhWeVuRye1xrG5D21dJK/+kDae+zJZWl3XTmtJRpiHP/ZvwLOX2YOaWQg7xOxjWPgADNgC2AAAABWQAIAAAAAAIz6wOrQqBXWAOmerbQckRy4fLI5AC9k5DhBJ3kHJYJgVzACAAAAAA4c2luh9MO6xSNqffZoH4SwI19i3ffdJ9iyAaGitoZxkFbAAgAAAAAI+sI8AzBUAhDs2DSTh7StO5rgbgse0idO29VwOikD69BXAAMQAAAABYSFUOrk6ZAVQUx+zIqfeKhTieWPwdQO2VjJzbglvxj8UJCOUtTHgXrmU7pokhrX3zAAM3ALYAAAAFZAAgAAAAAN1y62kos9WF1Hq9MqL7/1v+eB3xYX+C9jOhI4o8bCEuBXMAIAAAAABabfoE6YvqBs3KQZjukcNsllkQcPG35YzI1EJgvp0pfQVsACAAAAAAx3b30GiSDqGKGibsVkC0wPEtLdUn5oieC/mR0h0PfooFcAAxAAAAAK+hkKxxcAEEGZj/nSxd+fMkfh9FaI18ylqvr8o/r8GXdYCOlChCH3qMCgyZaWVrmtkAAzgAtgAAAAVkACAAAAAAlgmC9R0au/9bzgW0RWo46qTcX931bWDazCh9AljMZakFcwAgAAAAAIKwa3BQJo067rxkkX07k57hdvrl8/1ba94OtEapBuG2BWwAIAAAAACEBB9msU96lZNyT2Ory8KBNcfwHUZew4nuAMFzpU0kTwVwADEAAAAAwsG2BzqMIW2Y5UN0r8njF5uRRaD1QoYr+tEoCmkZeEn+koE/a+dG3UHNqrlvybXqcgAAEnNwAAIAAAAAAAAAEHRmAAYAAAAQbW4AAAAAABBteACH1hIAAA==",
|
5
5
|
"subType": "06"
|
6
6
|
}
|
7
7
|
}
|
@@ -36,10 +36,18 @@
|
|
36
36
|
"ServerTextSubstringToken": "dc79b64dab53c09dcbcc2c203e1ed5d88e0fed75b1e3a3a3f192ead85d762e6a",
|
37
37
|
"ServerTextSuffixToken": "a69ea838e79f9c11e2d6bd54e665bf0eee4864d5e517a7c9e9fb763e1a187cbe",
|
38
38
|
"ServerTextPrefixToken": "b89b65fc9274678e1fe107ff8ae485f6ba46400870f87ba08c710bd605792cfc",
|
39
|
+
"EDCTextExactDerivedFromDataToken": "a76c2da86efb5118f572180c0899a4701e574e7ca27ef972f31406cec61d96ca",
|
40
|
+
"EDCTextSubstringDerivedFromDataToken": "b30c36483986fdc61a11d84a94579e20afcb07baf042688b534d6beb957d1305",
|
41
|
+
"EDCTextSuffixDerivedFromDataToken": "d93b492c3c6b46971504bfdda134a4a887e0ccef9ce2bc450c51ce9a63c13125",
|
42
|
+
"EDCTextPrefixDerivedFromDataToken": "a452a61a74f5dbf3c321b2a9e24a9d0554e0ce192f355aa11c5489bc76e925a0",
|
39
43
|
"EDCTextExactDerivedFromDataTokenAndContentionFactorToken": "5f073c558114c2ff39a56e837d64f64c68328b14ebe2f6f142304e966cb618c4",
|
40
44
|
"EDCTextSubstringDerivedFromDataTokenAndContentionFactorToken": "ac333c5086216d14bcbe9996dc7c9c815625aeef47e6c08d83b348dd6bb62834",
|
41
45
|
"EDCTextSuffixDerivedFromDataTokenAndContentionFactorToken": "bd9a705c59a292635101523014ae997f2f56b8ba2ab4df3573c8f2524f5a9e50",
|
42
46
|
"EDCTextPrefixDerivedFromDataTokenAndContentionFactorToken": "06c4e44724305bb706e404c1caae6fff604c2b0c6809c3bcf79658ff3c93b951",
|
47
|
+
"ESCTextExactDerivedFromDataToken": "e198e94d4c07083a48bce1cb24202c7215cceee3b43b9d7c6b7114045eb2336c",
|
48
|
+
"ESCTextSubstringDerivedFromDataToken": "f3501ae0e842a204553e0b930563a69d6b260a54855bccd3c38cdf3fc5aa5de9",
|
49
|
+
"ESCTextSuffixDerivedFromDataToken": "c9b245e4f0bf009484cccac911bb82ea0eee9da782fc57325f62e60cc7cffb79",
|
50
|
+
"ESCTextPrefixDerivedFromDataToken": "7ed9d36faf86cc5e11c1ea7da839ff019e0f87949c16dfefcdafcb684aa2022b",
|
43
51
|
"ESCTextExactDerivedFromDataTokenAndContentionFactorToken": "680b35d73a3f778792b8a03df267aa945cb9718ed4e6925c9da069d354032b7a",
|
44
52
|
"ESCTextSubstringDerivedFromDataTokenAndContentionFactorToken": "380c456ea3c2b9d80324556931764ea22c5e097b2702e658dfe81254b1ec9688",
|
45
53
|
"ESCTextSuffixDerivedFromDataTokenAndContentionFactorToken": "db3418028ec9079fe27643071d575e9f6e0607bdfee185d1380a68921ce58ff6",
|
@@ -36,10 +36,18 @@
|
|
36
36
|
"ServerTextSubstringToken": "183ff338509675d5377d09978e9becd31b197458e2c8cd45b670c672ceb6dc53",
|
37
37
|
"ServerTextSuffixToken": "baf7c9392bb37607c6aa1f04163f4db8628872e7e7122e754bcd72771934ccbd",
|
38
38
|
"ServerTextPrefixToken": "52387ea6942d9299a89f70a2a4d8a4209ea1dfe56e29f6c0e3182ca7818b5c9c",
|
39
|
+
"EDCTextExactDerivedFromDataToken": "6006d61e9e985ee8f6490aebf0bfd120bf7a94317646165584894da6ecbf0e97",
|
40
|
+
"EDCTextSubstringDerivedFromDataToken": "4dab3b274aa5d5e99ecbd7f139cd420f25305c9f082b25aa96f1c9fe6e2122e3",
|
41
|
+
"EDCTextSuffixDerivedFromDataToken": "997f4a0b518f6c872951b65dcf26676d3886c98502fe0a7cc4f9c5ea4f30e94b",
|
42
|
+
"EDCTextPrefixDerivedFromDataToken": "d3ebdd34bcacd11c5929a09d2a897eb7938abd4756cab805f46ff0f4affa7583",
|
39
43
|
"EDCTextExactDerivedFromDataTokenAndContentionFactorToken": "3551507189d32cc7768390cdd83071deeb3055ca86c4756b16bb740024b23610",
|
40
44
|
"EDCTextSubstringDerivedFromDataTokenAndContentionFactorToken": "4b52f6daf3b688971eb5819820c3468b3c79ba45fd3e86134351f9baf203e0d1",
|
41
45
|
"EDCTextSuffixDerivedFromDataTokenAndContentionFactorToken": "c1f273913631a9a1b36fea884b3c8a3a141c9e21556981094ba15f262e540ac7",
|
42
46
|
"EDCTextPrefixDerivedFromDataTokenAndContentionFactorToken": "a8d68ebdb0e2d31754f693c56071b0b1d225e6ec5568aff875bd4f7c48c24f66",
|
47
|
+
"ESCTextExactDerivedFromDataToken": "6d3311b3de0e32dbfe55a565327ad4b99d670474ddef52aa200fc79d76b8c7c4",
|
48
|
+
"ESCTextSubstringDerivedFromDataToken": "0e9d0f7c42658dd6894d3cbe34ffa0d39be00ba72a21ac79bc3712b25783d247",
|
49
|
+
"ESCTextSuffixDerivedFromDataToken": "a95860b4a08b39b002e5aee557268786be4e6d5a8552090dc397fbdb34374313",
|
50
|
+
"ESCTextPrefixDerivedFromDataToken": "8df7341dd42c1cee8411657afaea424bfa818a539bf0668e1c355fc2a555e11a",
|
43
51
|
"ESCTextExactDerivedFromDataTokenAndContentionFactorToken": "4cd82a4883ab0a6224a24937066f94827f5107e8bb2f0fa841e10aff8d49e8e4",
|
44
52
|
"ESCTextSubstringDerivedFromDataTokenAndContentionFactorToken": "94f116183f14442e335902756e5b730683cd998c683b90d04dc9e8f48684bdb2",
|
45
53
|
"ESCTextSuffixDerivedFromDataTokenAndContentionFactorToken": "13390024c674c2d131771cf95af9787c8c7ef76b5d63078b3dc482cb4075a634",
|
@@ -133,9 +133,10 @@ static void _print_binary_as_text(mongocrypt_binary_t *binary) {
|
|
133
133
|
#define CHECK(stmt) \
|
134
134
|
if (!stmt) { \
|
135
135
|
continue; \
|
136
|
-
}
|
136
|
+
} else \
|
137
|
+
((void)0)
|
137
138
|
|
138
|
-
void _run_state_machine(mongocrypt_ctx_t *ctx, bson_t *result) {
|
139
|
+
static void _run_state_machine(mongocrypt_ctx_t *ctx, bson_t *result) {
|
139
140
|
mongocrypt_binary_t *input, *output = NULL;
|
140
141
|
bson_t tmp;
|
141
142
|
mongocrypt_kms_ctx_t *kms;
|
@@ -227,11 +228,10 @@ void _run_state_machine(mongocrypt_ctx_t *ctx, bson_t *result) {
|
|
227
228
|
mongocrypt_ctx_status(ctx, status);
|
228
229
|
printf("\ngot error: %s\n", mongocrypt_status_message(status, NULL));
|
229
230
|
abort();
|
230
|
-
break;
|
231
231
|
case MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS:
|
232
232
|
// We don't handle KMS credentials
|
233
233
|
// fallthrough
|
234
|
-
default: BSON_ASSERT(0);
|
234
|
+
default: BSON_ASSERT(0);
|
235
235
|
}
|
236
236
|
}
|
237
237
|
|
@@ -247,7 +247,7 @@ static mongocrypt_binary_t *_iter_to_binary(bson_iter_t *iter) {
|
|
247
247
|
return mongocrypt_binary_new_from_data(data, len);
|
248
248
|
}
|
249
249
|
|
250
|
-
int main() {
|
250
|
+
int main(void) {
|
251
251
|
bson_iter_t iter;
|
252
252
|
bson_t result;
|
253
253
|
bson_t key_doc;
|
@@ -8,14 +8,20 @@
|
|
8
8
|
|
9
9
|
static std::string global_str;
|
10
10
|
|
11
|
-
|
12
|
-
#
|
13
|
-
__declspec(dllexport)
|
11
|
+
#if defined(_MSC_VER)
|
12
|
+
#define SAY_HELLO_EXPORT __declspec(dllexport)
|
14
13
|
#else
|
15
|
-
__attribute__
|
14
|
+
#define SAY_HELLO_EXPORT __attribute__((visibility("default")))
|
16
15
|
#endif
|
17
|
-
|
16
|
+
|
17
|
+
extern "C" {
|
18
|
+
|
19
|
+
SAY_HELLO_EXPORT int say_hello(); // -Wmissing-prototypes: for testing only.
|
20
|
+
|
21
|
+
int say_hello() {
|
18
22
|
global_str = "Hello, DLL!";
|
19
23
|
std::cout << global_str << "\n";
|
20
24
|
return 42;
|
21
25
|
}
|
26
|
+
|
27
|
+
} // extern "C"
|
@@ -32,7 +32,7 @@ static void _test_createdatakey_with_credentials(_mongocrypt_tester_t *tester) {
|
|
32
32
|
|
33
33
|
crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT);
|
34
34
|
ctx = mongocrypt_ctx_new(crypt);
|
35
|
-
ASSERT_OK(mongocrypt_ctx_setopt_key_encryption_key(ctx,
|
35
|
+
ASSERT_OK(mongocrypt_ctx_setopt_key_encryption_key(ctx, TEST_BSON_STR(kek)), ctx);
|
36
36
|
ASSERT_OK(mongocrypt_ctx_datakey_init(ctx), ctx);
|
37
37
|
|
38
38
|
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_KMS);
|
@@ -159,7 +159,7 @@ static void _test_createdatakey_with_accesstoken(_mongocrypt_tester_t *tester) {
|
|
159
159
|
mongocrypt_setopt_use_need_kms_credentials_state(crypt);
|
160
160
|
ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt);
|
161
161
|
ctx = mongocrypt_ctx_new(crypt);
|
162
|
-
ASSERT_OK(mongocrypt_ctx_setopt_key_encryption_key(ctx,
|
162
|
+
ASSERT_OK(mongocrypt_ctx_setopt_key_encryption_key(ctx, TEST_BSON_STR(kek)), ctx);
|
163
163
|
ASSERT_OK(mongocrypt_ctx_datakey_init(ctx), ctx);
|
164
164
|
|
165
165
|
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS);
|
@@ -34,11 +34,9 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
|
|
34
34
|
_mongocrypt_buffer_copy_from_hex(&expect_keyId1, "12345678123498761234123456789012");
|
35
35
|
_mongocrypt_buffer_copy_from_hex(&expect_keyId2, "abcdefab123498761234123456789012");
|
36
36
|
|
37
|
-
const bool use_range_v2 = false;
|
38
|
-
|
39
37
|
{
|
40
38
|
_load_test_file(tester, "./test/data/efc/efc-oneField.json", &efc_bson);
|
41
|
-
ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status
|
39
|
+
ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status), status);
|
42
40
|
ASSERT_CMPUINT8(efc.str_encode_version, ==, 0);
|
43
41
|
ptr = efc.fields;
|
44
42
|
ASSERT(ptr);
|
@@ -50,7 +48,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
|
|
50
48
|
|
51
49
|
{
|
52
50
|
_load_test_file(tester, "./test/data/efc/efc-oneField-goodVersionSet.json", &efc_bson);
|
53
|
-
ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status
|
51
|
+
ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status), status);
|
54
52
|
ASSERT_CMPUINT8(efc.str_encode_version, ==, 1);
|
55
53
|
ptr = efc.fields;
|
56
54
|
ASSERT(ptr);
|
@@ -62,7 +60,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
|
|
62
60
|
|
63
61
|
{
|
64
62
|
_load_test_file(tester, "./test/data/efc/efc-extraField.json", &efc_bson);
|
65
|
-
ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status
|
63
|
+
ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status), status);
|
66
64
|
ASSERT_CMPUINT8(efc.str_encode_version, ==, 0);
|
67
65
|
ptr = efc.fields;
|
68
66
|
ASSERT(ptr);
|
@@ -74,7 +72,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
|
|
74
72
|
|
75
73
|
{
|
76
74
|
_load_test_file(tester, "./test/data/efc/efc-twoFields.json", &efc_bson);
|
77
|
-
ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status
|
75
|
+
ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status), status);
|
78
76
|
ASSERT_CMPUINT8(efc.str_encode_version, ==, 0);
|
79
77
|
ptr = efc.fields;
|
80
78
|
ASSERT(ptr);
|
@@ -90,7 +88,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
|
|
90
88
|
|
91
89
|
{
|
92
90
|
_load_test_file(tester, "./test/data/efc/efc-missingKeyId.json", &efc_bson);
|
93
|
-
ASSERT_FAILS_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status
|
91
|
+
ASSERT_FAILS_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status),
|
94
92
|
status,
|
95
93
|
"unable to find 'keyId' in 'field' document");
|
96
94
|
mc_EncryptedFieldConfig_cleanup(&efc);
|
@@ -99,7 +97,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
|
|
99
97
|
|
100
98
|
{
|
101
99
|
_load_test_file(tester, "./test/data/efc/efc-oneField-badVersionSet.json", &efc_bson);
|
102
|
-
ASSERT_FAILS_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status
|
100
|
+
ASSERT_FAILS_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status),
|
103
101
|
status,
|
104
102
|
"'strEncodeVersion' of 99 is not supported");
|
105
103
|
mc_EncryptedFieldConfig_cleanup(&efc);
|
@@ -108,7 +106,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
|
|
108
106
|
|
109
107
|
{
|
110
108
|
_load_test_file(tester, "./test/data/efc/efc-textSearchFields.json", &efc_bson);
|
111
|
-
ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status
|
109
|
+
ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status), status);
|
112
110
|
ASSERT_CMPUINT8(efc.str_encode_version, ==, LATEST_STR_ENCODE_VERSION);
|
113
111
|
ptr = efc.fields;
|
114
112
|
ASSERT(ptr);
|
@@ -126,7 +124,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
|
|
126
124
|
|
127
125
|
{
|
128
126
|
_load_test_file(tester, "./test/data/efc/efc-textSearchFields-goodVersionSet.json", &efc_bson);
|
129
|
-
ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status
|
127
|
+
ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status), status);
|
130
128
|
ASSERT_CMPUINT8(efc.str_encode_version, ==, 1);
|
131
129
|
ptr = efc.fields;
|
132
130
|
ASSERT(ptr);
|
@@ -144,7 +142,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
|
|
144
142
|
|
145
143
|
{
|
146
144
|
_load_test_file(tester, "./test/data/efc/efc-textSearchFields-badVersionSet.json", &efc_bson);
|
147
|
-
ASSERT_FAILS_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status
|
145
|
+
ASSERT_FAILS_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status),
|
148
146
|
status,
|
149
147
|
"'strEncodeVersion' of 99 is not supported");
|
150
148
|
mc_EncryptedFieldConfig_cleanup(&efc);
|
@@ -96,8 +96,7 @@ static void _test_FLE2EncryptionPlaceholder_range_parse(_mongocrypt_tester_t *te
|
|
96
96
|
{
|
97
97
|
mc_FLE2RangeInsertSpec_t spec;
|
98
98
|
|
99
|
-
ASSERT_OK_STATUS(mc_FLE2RangeInsertSpec_parse(&spec, &placeholder.v_iter,
|
100
|
-
status);
|
99
|
+
ASSERT_OK_STATUS(mc_FLE2RangeInsertSpec_parse(&spec, &placeholder.v_iter, status), status);
|
101
100
|
|
102
101
|
ASSERT(BSON_ITER_HOLDS_INT32(&spec.v));
|
103
102
|
ASSERT_CMPINT32(bson_iter_int32(&spec.v), ==, 123456);
|
@@ -153,8 +152,7 @@ static void _test_FLE2EncryptionPlaceholder_range_parse(_mongocrypt_tester_t *te
|
|
153
152
|
{
|
154
153
|
mc_FLE2RangeFindSpec_t spec;
|
155
154
|
|
156
|
-
ASSERT_OK_STATUS(mc_FLE2RangeFindSpec_parse(&spec, &placeholder.v_iter,
|
157
|
-
status);
|
155
|
+
ASSERT_OK_STATUS(mc_FLE2RangeFindSpec_parse(&spec, &placeholder.v_iter, status), status);
|
158
156
|
|
159
157
|
ASSERT(spec.edgesInfo.set);
|
160
158
|
|
@@ -225,8 +223,7 @@ static void _test_FLE2EncryptionPlaceholder_range_parse(_mongocrypt_tester_t *te
|
|
225
223
|
{
|
226
224
|
mc_FLE2RangeFindSpec_t spec;
|
227
225
|
|
228
|
-
ASSERT_OK_STATUS(mc_FLE2RangeFindSpec_parse(&spec, &placeholder.v_iter,
|
229
|
-
status);
|
226
|
+
ASSERT_OK_STATUS(mc_FLE2RangeFindSpec_parse(&spec, &placeholder.v_iter, status), status);
|
230
227
|
|
231
228
|
ASSERT(spec.edgesInfo.set);
|
232
229
|
|
@@ -295,8 +292,7 @@ static void _test_FLE2EncryptionPlaceholder_range_parse(_mongocrypt_tester_t *te
|
|
295
292
|
{
|
296
293
|
mc_FLE2RangeInsertSpec_t spec;
|
297
294
|
|
298
|
-
ASSERT_OK_STATUS(mc_FLE2RangeInsertSpec_parse(&spec, &placeholder.v_iter,
|
299
|
-
status);
|
295
|
+
ASSERT_OK_STATUS(mc_FLE2RangeInsertSpec_parse(&spec, &placeholder.v_iter, status), status);
|
300
296
|
|
301
297
|
ASSERT(BSON_ITER_HOLDS_DOUBLE(&spec.v));
|
302
298
|
ASSERT_CMPDOUBLE(bson_iter_double(&spec.v), ==, 123.456);
|
@@ -321,15 +317,17 @@ static bool _parse_text_search_spec_from_placeholder(_mongocrypt_tester_t *teste
|
|
321
317
|
const char *spec_json_in,
|
322
318
|
mc_FLE2TextSearchInsertSpec_t *spec_out,
|
323
319
|
mongocrypt_status_t *status_out) {
|
324
|
-
|
325
|
-
|
326
|
-
"
|
327
|
-
"
|
328
|
-
"
|
329
|
-
"
|
330
|
-
"
|
331
|
-
|
332
|
-
|
320
|
+
#define PLACEHOLDER_TEMPLATE \
|
321
|
+
RAW_STRING({ \
|
322
|
+
"t" : {"$numberInt" : "1"}, \
|
323
|
+
"a" : {"$numberInt" : "4"}, \
|
324
|
+
"ki" : {"$binary" : {"base64" : "EjRWeBI0mHYSNBI0VniQEg==", "subType" : "04"}}, \
|
325
|
+
"ku" : {"$binary" : {"base64" : "q83vqxI0mHYSNBI0VniQEg==", "subType" : "04"}}, \
|
326
|
+
"v" : MC_BSON, \
|
327
|
+
"cm" : {"$numberLong" : "7"} \
|
328
|
+
})
|
329
|
+
|
330
|
+
bson_t *const as_bson = TMP_BSONF(PLACEHOLDER_TEMPLATE, TMP_BSON_STR(spec_json_in));
|
333
331
|
|
334
332
|
mc_FLE2EncryptionPlaceholder_t placeholder;
|
335
333
|
mc_FLE2EncryptionPlaceholder_init(&placeholder);
|
@@ -355,6 +353,8 @@ static bool _parse_text_search_spec_from_placeholder(_mongocrypt_tester_t *teste
|
|
355
353
|
|
356
354
|
mc_FLE2EncryptionPlaceholder_cleanup(&placeholder);
|
357
355
|
return res;
|
356
|
+
|
357
|
+
#undef PLACEHOLDER_TEMPLATE
|
358
358
|
}
|
359
359
|
|
360
360
|
static void _test_FLE2EncryptionPlaceholder_textSearch_parse(_mongocrypt_tester_t *tester) {
|
@@ -390,17 +390,6 @@ static void _test_FLE2EncryptionPlaceholder_textSearch_parse(_mongocrypt_tester_
|
|
390
390
|
mongocrypt_status_destroy(status);
|
391
391
|
}
|
392
392
|
|
393
|
-
// Test type=MONGOCRYPT_FLE2_PLACEHOLDER_TYPE_INSERT without substring, suffix, or prefix specs
|
394
|
-
{
|
395
|
-
const char *input = RAW_STRING({"v" : "foobar", "casef" : false, "diacf" : true});
|
396
|
-
mongocrypt_status_t *status = mongocrypt_status_new();
|
397
|
-
mc_FLE2TextSearchInsertSpec_t spec;
|
398
|
-
ASSERT_FAILS_STATUS(_parse_text_search_spec_from_placeholder(tester, input, &spec, status),
|
399
|
-
status,
|
400
|
-
"Must have a substring, suffix, or prefix index specification");
|
401
|
-
mongocrypt_status_destroy(status);
|
402
|
-
}
|
403
|
-
|
404
393
|
// Test type=MONGOCRYPT_FLE2_PLACEHOLDER_TYPE_INSERT with lb > ub
|
405
394
|
#define LB_GT_UB_TEST(Type) \
|
406
395
|
do { \
|
@@ -441,7 +430,7 @@ static void _test_FLE2EncryptionPlaceholder_textSearch_parse(_mongocrypt_tester_
|
|
441
430
|
}
|
442
431
|
|
443
432
|
static void _test_FLE2EncryptionPlaceholder_parse_errors(_mongocrypt_tester_t *tester) {
|
444
|
-
bson_t *input_bson =
|
433
|
+
bson_t *input_bson = TMP_BSON_STR(BSON_STR({
|
445
434
|
"t" : {"$numberInt" : "1"},
|
446
435
|
"a" : {"$numberInt" : "1"},
|
447
436
|
"ki" : {"$binary" : {"base64" : "EjRWeBI0mHYSNBI0VniQEg==", "subType" : "04"}},
|
@@ -74,7 +74,7 @@ static void _test_FLE2FindEqualityPayloadV2_roundtrip(_mongocrypt_tester_t *test
|
|
74
74
|
#undef TEST_FIND_EQ_PAYLOAD_HEX_V2
|
75
75
|
|
76
76
|
static void _test_FLE2FindEqualityPayloadV2_errors(_mongocrypt_tester_t *tester) {
|
77
|
-
bson_t *input_bson =
|
77
|
+
bson_t *input_bson = TMP_BSON_STR(BSON_STR({
|
78
78
|
"d" : {"$binary" : {"base64" : "AAAA", "subType" : "00"}},
|
79
79
|
"s" : {"$binary" : {"base64" : "AAAA", "subType" : "00"}},
|
80
80
|
"l" : {"$binary" : {"base64" : "AAAA", "subType" : "00"}},
|