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
@@ -883,7 +883,7 @@ static void _init_fails(_mongocrypt_tester_t *tester, const char *json, const ch
|
|
883
883
|
|
884
884
|
crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT);
|
885
885
|
ctx = mongocrypt_ctx_new(crypt);
|
886
|
-
ASSERT_FAILS(mongocrypt_ctx_encrypt_init(ctx, "test", -1,
|
886
|
+
ASSERT_FAILS(mongocrypt_ctx_encrypt_init(ctx, "test", -1, TEST_BSON_STR(json)), ctx, msg);
|
887
887
|
mongocrypt_ctx_destroy(ctx);
|
888
888
|
mongocrypt_destroy(crypt);
|
889
889
|
}
|
@@ -895,7 +895,7 @@ static void _init_ok(_mongocrypt_tester_t *tester, const char *json) {
|
|
895
895
|
crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT);
|
896
896
|
ctx = mongocrypt_ctx_new(crypt);
|
897
897
|
|
898
|
-
ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "test", -1,
|
898
|
+
ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "test", -1, TEST_BSON_STR(json)), ctx);
|
899
899
|
|
900
900
|
if (MONGOCRYPT_CTX_NEED_MONGO_COLLINFO == mongocrypt_ctx_state(ctx)) {
|
901
901
|
mongocrypt_binary_t *filter;
|
@@ -923,10 +923,10 @@ static void _init_bypass(_mongocrypt_tester_t *tester, const char *json) {
|
|
923
923
|
bin = mongocrypt_binary_new();
|
924
924
|
crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT);
|
925
925
|
ctx = mongocrypt_ctx_new(crypt);
|
926
|
-
ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "test", -1,
|
926
|
+
ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "test", -1, TEST_BSON_STR(json)), ctx);
|
927
927
|
BSON_ASSERT(MONGOCRYPT_CTX_READY == mongocrypt_ctx_state(ctx));
|
928
928
|
ASSERT_OK(mongocrypt_ctx_finalize(ctx, bin), ctx);
|
929
|
-
ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(
|
929
|
+
ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_BSON_STR(json), (bin));
|
930
930
|
|
931
931
|
mongocrypt_binary_destroy(bin);
|
932
932
|
mongocrypt_ctx_destroy(ctx);
|
@@ -1087,7 +1087,7 @@ static void _test_explicit_encryption(_mongocrypt_tester_t *tester) {
|
|
1087
1087
|
}
|
1088
1088
|
|
1089
1089
|
/* Test with empty AWS credentials. */
|
1090
|
-
void _test_encrypt_empty_aws(_mongocrypt_tester_t *tester) {
|
1090
|
+
static void _test_encrypt_empty_aws(_mongocrypt_tester_t *tester) {
|
1091
1091
|
mongocrypt_t *crypt;
|
1092
1092
|
mongocrypt_ctx_t *ctx;
|
1093
1093
|
|
@@ -1608,10 +1608,11 @@ typedef enum {
|
|
1608
1608
|
} _test_fle2v2_option;
|
1609
1609
|
|
1610
1610
|
#define TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, data_path, rng_source, v2_failure) \
|
1611
|
-
{
|
1611
|
+
if (1) { \
|
1612
1612
|
(rng_source)->pos = 0; \
|
1613
1613
|
_test_encrypt_fle2_encryption_placeholder(tester, data_path, rng_source, NULL); \
|
1614
|
-
}
|
1614
|
+
} else \
|
1615
|
+
((void)0)
|
1615
1616
|
|
1616
1617
|
static void _test_encrypt_fle2_encryption_placeholder(_mongocrypt_tester_t *tester,
|
1617
1618
|
const char *data_path,
|
@@ -1716,28 +1717,28 @@ static void _test_encrypt_fle2_insert_payload(_mongocrypt_tester_t *tester) {
|
|
1716
1717
|
uint8_t rng_data[] = RNG_DATA;
|
1717
1718
|
|
1718
1719
|
_test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}};
|
1719
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-v2", &source, NULL)
|
1720
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-v2", &source, NULL);
|
1720
1721
|
}
|
1721
1722
|
|
1722
1723
|
static void _test_encrypt_fle2_insert_payload_with_str_encode_version(_mongocrypt_tester_t *tester) {
|
1723
1724
|
uint8_t rng_data[] = RNG_DATA;
|
1724
1725
|
|
1725
1726
|
_test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}};
|
1726
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-v2-with-str-encode-version", &source, NULL)
|
1727
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-v2-with-str-encode-version", &source, NULL);
|
1727
1728
|
}
|
1728
1729
|
|
1729
1730
|
static void _test_encrypt_fle2_insert_text_search_payload(_mongocrypt_tester_t *tester) {
|
1730
1731
|
uint8_t rng_data[] = RNG_DATA;
|
1731
1732
|
|
1732
1733
|
_test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}};
|
1733
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-text-search", &source, NULL)
|
1734
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-text-search", &source, NULL);
|
1734
1735
|
}
|
1735
1736
|
|
1736
1737
|
static void _test_encrypt_fle2_insert_text_search_payload_with_str_encode_version(_mongocrypt_tester_t *tester) {
|
1737
1738
|
uint8_t rng_data[] = RNG_DATA;
|
1738
1739
|
|
1739
1740
|
_test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}};
|
1740
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-text-search-with-str-encode-version", &source, NULL)
|
1741
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-text-search-with-str-encode-version", &source, NULL);
|
1741
1742
|
}
|
1742
1743
|
|
1743
1744
|
#undef RNG_DATA
|
@@ -1745,7 +1746,7 @@ static void _test_encrypt_fle2_insert_text_search_payload_with_str_encode_versio
|
|
1745
1746
|
// FLE2FindEqualityPayload only uses deterministic token generation.
|
1746
1747
|
static void _test_encrypt_fle2_find_payload(_mongocrypt_tester_t *tester) {
|
1747
1748
|
_test_rng_data_source source = {{0}};
|
1748
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-equality-v2", &source, NULL)
|
1749
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-equality-v2", &source, NULL);
|
1749
1750
|
}
|
1750
1751
|
|
1751
1752
|
/* 16 bytes of random data are used for IV. This IV produces the expected test
|
@@ -1765,7 +1766,7 @@ static void _test_encrypt_fle2_unindexed_encrypted_payload(_mongocrypt_tester_t
|
|
1765
1766
|
static void _test_encrypt_fle2_insert_range_payload_int32(_mongocrypt_tester_t *tester) {
|
1766
1767
|
uint8_t rng_data[] = RNG_DATA;
|
1767
1768
|
_test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}};
|
1768
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/int32-v2", &source, NULL)
|
1769
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/int32-v2", &source, NULL);
|
1769
1770
|
}
|
1770
1771
|
|
1771
1772
|
#undef RNG_DATA
|
@@ -1775,7 +1776,7 @@ static void _test_encrypt_fle2_insert_range_payload_int32(_mongocrypt_tester_t *
|
|
1775
1776
|
static void _test_encrypt_fle2_insert_range_payload_int64(_mongocrypt_tester_t *tester) {
|
1776
1777
|
uint8_t rng_data[] = RNG_DATA;
|
1777
1778
|
_test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}};
|
1778
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/int64-v2", &source, NULL)
|
1779
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/int64-v2", &source, NULL);
|
1779
1780
|
}
|
1780
1781
|
|
1781
1782
|
#undef RNG_DATA
|
@@ -1785,7 +1786,7 @@ static void _test_encrypt_fle2_insert_range_payload_int64(_mongocrypt_tester_t *
|
|
1785
1786
|
static void _test_encrypt_fle2_insert_range_payload_date(_mongocrypt_tester_t *tester) {
|
1786
1787
|
uint8_t rng_data[] = RNG_DATA;
|
1787
1788
|
_test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}};
|
1788
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/date-v2", &source, NULL)
|
1789
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/date-v2", &source, NULL);
|
1789
1790
|
}
|
1790
1791
|
|
1791
1792
|
#undef RNG_DATA
|
@@ -1795,7 +1796,7 @@ static void _test_encrypt_fle2_insert_range_payload_date(_mongocrypt_tester_t *t
|
|
1795
1796
|
static void _test_encrypt_fle2_insert_range_payload_double(_mongocrypt_tester_t *tester) {
|
1796
1797
|
uint8_t rng_data[] = RNG_DATA;
|
1797
1798
|
_test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}};
|
1798
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/double-v2", &source, NULL)
|
1799
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/double-v2", &source, NULL);
|
1799
1800
|
}
|
1800
1801
|
|
1801
1802
|
#undef RNG_DATA
|
@@ -1805,18 +1806,18 @@ static void _test_encrypt_fle2_insert_range_payload_double(_mongocrypt_tester_t
|
|
1805
1806
|
static void _test_encrypt_fle2_insert_range_payload_double_precision(_mongocrypt_tester_t *tester) {
|
1806
1807
|
uint8_t rng_data[] = RNG_DATA;
|
1807
1808
|
_test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}};
|
1808
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/double-precision-v2", &source, NULL)
|
1809
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/double-precision-v2", &source, NULL);
|
1809
1810
|
}
|
1810
1811
|
|
1811
1812
|
#undef RNG_DATA
|
1812
1813
|
|
1813
|
-
#if MONGOCRYPT_HAVE_DECIMAL128_SUPPORT
|
1814
|
+
#if MONGOCRYPT_HAVE_DECIMAL128_SUPPORT()
|
1814
1815
|
#include "./data/fle2-insert-range/decimal128/RNG_DATA.h"
|
1815
1816
|
|
1816
1817
|
static void _test_encrypt_fle2_insert_range_payload_decimal128(_mongocrypt_tester_t *tester) {
|
1817
1818
|
uint8_t rng_data[] = RNG_DATA;
|
1818
1819
|
_test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}};
|
1819
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/decimal128-v2", &source, NULL)
|
1820
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/decimal128-v2", &source, NULL);
|
1820
1821
|
}
|
1821
1822
|
|
1822
1823
|
#undef RNG_DATA
|
@@ -1826,7 +1827,7 @@ static void _test_encrypt_fle2_insert_range_payload_decimal128(_mongocrypt_teste
|
|
1826
1827
|
static void _test_encrypt_fle2_insert_range_payload_decimal128_precision(_mongocrypt_tester_t *tester) {
|
1827
1828
|
uint8_t rng_data[] = RNG_DATA;
|
1828
1829
|
_test_rng_data_source source = {.buf = {.data = rng_data, .len = sizeof(rng_data) - 1u}};
|
1829
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/decimal128-precision-v2", &source, NULL)
|
1830
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-insert-range/decimal128-precision-v2", &source, NULL);
|
1830
1831
|
}
|
1831
1832
|
|
1832
1833
|
#undef RNG_DATA
|
@@ -1835,48 +1836,48 @@ static void _test_encrypt_fle2_insert_range_payload_decimal128_precision(_mongoc
|
|
1835
1836
|
// FLE2FindRangePayload only uses deterministic token generation.
|
1836
1837
|
static void _test_encrypt_fle2_find_range_payload_int32(_mongocrypt_tester_t *tester) {
|
1837
1838
|
_test_rng_data_source source = {{0}};
|
1838
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/int32-v2", &source, NULL)
|
1839
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/int32-v2", &source, NULL);
|
1839
1840
|
}
|
1840
1841
|
|
1841
1842
|
// FLE2FindRangePayload only uses deterministic token generation.
|
1842
1843
|
static void _test_encrypt_fle2_find_range_payload_int64(_mongocrypt_tester_t *tester) {
|
1843
1844
|
_test_rng_data_source source = {{0}};
|
1844
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/int64-v2", &source, NULL)
|
1845
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/int64-v2", &source, NULL);
|
1845
1846
|
}
|
1846
1847
|
|
1847
1848
|
// FLE2FindRangePayload only uses deterministic token generation.
|
1848
1849
|
static void _test_encrypt_fle2_find_range_payload_date(_mongocrypt_tester_t *tester) {
|
1849
1850
|
_test_rng_data_source source = {{0}};
|
1850
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/date-v2", &source, NULL)
|
1851
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/date-v2", &source, NULL);
|
1851
1852
|
}
|
1852
1853
|
|
1853
1854
|
// FLE2FindRangePayload only uses deterministic token generation.
|
1854
1855
|
static void _test_encrypt_fle2_find_range_payload_double(_mongocrypt_tester_t *tester) {
|
1855
1856
|
_test_rng_data_source source = {{0}};
|
1856
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/double-v2", &source, NULL)
|
1857
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/double-v2", &source, NULL);
|
1857
1858
|
}
|
1858
1859
|
|
1859
1860
|
// FLE2FindRangePayload only uses deterministic token generation.
|
1860
1861
|
static void _test_encrypt_fle2_find_range_payload_double_precision(_mongocrypt_tester_t *tester) {
|
1861
1862
|
_test_rng_data_source source = {{0}};
|
1862
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/double-precision-v2", &source, NULL)
|
1863
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/double-precision-v2", &source, NULL);
|
1863
1864
|
}
|
1864
1865
|
|
1865
|
-
#if MONGOCRYPT_HAVE_DECIMAL128_SUPPORT
|
1866
|
+
#if MONGOCRYPT_HAVE_DECIMAL128_SUPPORT()
|
1866
1867
|
// FLE2FindRangePayload only uses deterministic token generation.
|
1867
1868
|
static void _test_encrypt_fle2_find_range_payload_decimal128(_mongocrypt_tester_t *tester) {
|
1868
1869
|
_test_rng_data_source source = {{0}};
|
1869
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/decimal128-v2", &source, NULL)
|
1870
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/decimal128-v2", &source, NULL);
|
1870
1871
|
}
|
1871
1872
|
|
1872
1873
|
// FLE2FindRangePayload only uses deterministic token generation.
|
1873
1874
|
static void _test_encrypt_fle2_find_range_payload_decimal128_precision(_mongocrypt_tester_t *tester) {
|
1874
1875
|
_test_rng_data_source source = {{0}};
|
1875
|
-
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/decimal128-precision-v2", &source, NULL)
|
1876
|
+
TEST_ENCRYPT_FLE2_ENCRYPTION_PLACEHOLDER(tester, "fle2-find-range/decimal128-precision-v2", &source, NULL);
|
1876
1877
|
}
|
1877
1878
|
#endif // MONGOCRYPT_HAVE_DECIMAL128_SUPPORT
|
1878
1879
|
|
1879
|
-
static mongocrypt_t *_crypt_with_rng(_test_rng_data_source *rng_source
|
1880
|
+
static mongocrypt_t *_crypt_with_rng(_test_rng_data_source *rng_source) {
|
1880
1881
|
mongocrypt_t *crypt;
|
1881
1882
|
mongocrypt_binary_t *localkey;
|
1882
1883
|
/* localkey_data is the KEK used to encrypt the keyMaterial
|
@@ -1898,12 +1899,7 @@ static mongocrypt_t *_crypt_with_rng(_test_rng_data_source *rng_source, bool use
|
|
1898
1899
|
crypt);
|
1899
1900
|
|
1900
1901
|
mongocrypt_binary_destroy(localkey);
|
1901
|
-
|
1902
|
-
ASSERT_OK(mongocrypt_setopt_use_range_v2(crypt), crypt);
|
1903
|
-
ASSERT_OK(mongocrypt_init(crypt), crypt);
|
1904
|
-
} else {
|
1905
|
-
ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt);
|
1906
|
-
}
|
1902
|
+
ASSERT_OK(mongocrypt_init(crypt), crypt);
|
1907
1903
|
return crypt;
|
1908
1904
|
}
|
1909
1905
|
|
@@ -1922,7 +1918,6 @@ typedef struct {
|
|
1922
1918
|
const char *expect_finalize_error;
|
1923
1919
|
const char *expect_init_error;
|
1924
1920
|
bool is_expression;
|
1925
|
-
bool use_range_v2;
|
1926
1921
|
} ee_testcase;
|
1927
1922
|
|
1928
1923
|
static void ee_testcase_run(ee_testcase *tc) {
|
@@ -1933,12 +1928,9 @@ static void ee_testcase_run(ee_testcase *tc) {
|
|
1933
1928
|
if (tc->rng_data.buf.len > 0) {
|
1934
1929
|
// Use fixed data for random number generation to produce deterministic
|
1935
1930
|
// results.
|
1936
|
-
crypt = _crypt_with_rng(&tc->rng_data
|
1931
|
+
crypt = _crypt_with_rng(&tc->rng_data);
|
1937
1932
|
} else {
|
1938
1933
|
tester_mongocrypt_flags flags = TESTER_MONGOCRYPT_DEFAULT;
|
1939
|
-
if (tc->use_range_v2) {
|
1940
|
-
flags |= TESTER_MONGOCRYPT_WITH_RANGE_V2;
|
1941
|
-
}
|
1942
1934
|
crypt = _mongocrypt_tester_mongocrypt(flags);
|
1943
1935
|
}
|
1944
1936
|
mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt);
|
@@ -4114,7 +4106,7 @@ static void _test_bulkWrite(_mongocrypt_tester_t *tester) {
|
|
4114
4106
|
bson_free(local_kek);
|
4115
4107
|
}
|
4116
4108
|
|
4117
|
-
// `_test_rangePreview_fails` tests that use of "rangePreview" errors
|
4109
|
+
// `_test_rangePreview_fails` tests that use of "rangePreview" errors.
|
4118
4110
|
static void _test_rangePreview_fails(_mongocrypt_tester_t *tester) {
|
4119
4111
|
// local_kek is the KEK used to encrypt the keyMaterial in ./test/data/key-document-local.json
|
4120
4112
|
uint8_t local_kek_raw[MONGOCRYPT_KEY_LEN] = {0};
|
@@ -4126,7 +4118,6 @@ static void _test_rangePreview_fails(_mongocrypt_tester_t *tester) {
|
|
4126
4118
|
{
|
4127
4119
|
mongocrypt_t *crypt = mongocrypt_new();
|
4128
4120
|
mongocrypt_setopt_kms_providers(crypt, kms_providers);
|
4129
|
-
ASSERT_OK(mongocrypt_setopt_use_range_v2(crypt), crypt);
|
4130
4121
|
ASSERT_OK(mongocrypt_init(crypt), crypt);
|
4131
4122
|
mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt);
|
4132
4123
|
ASSERT_OK(ctx, crypt);
|
@@ -4141,7 +4132,6 @@ static void _test_rangePreview_fails(_mongocrypt_tester_t *tester) {
|
|
4141
4132
|
{
|
4142
4133
|
mongocrypt_t *crypt = mongocrypt_new();
|
4143
4134
|
mongocrypt_setopt_kms_providers(crypt, kms_providers);
|
4144
|
-
ASSERT_OK(mongocrypt_setopt_use_range_v2(crypt), crypt);
|
4145
4135
|
ASSERT_OK(mongocrypt_init(crypt), crypt);
|
4146
4136
|
mongocrypt_ctx_t *ctx = mongocrypt_ctx_new(crypt);
|
4147
4137
|
ASSERT_OK(ctx, crypt);
|
@@ -4156,7 +4146,6 @@ static void _test_rangePreview_fails(_mongocrypt_tester_t *tester) {
|
|
4156
4146
|
{
|
4157
4147
|
mongocrypt_t *crypt = mongocrypt_new();
|
4158
4148
|
mongocrypt_setopt_kms_providers(crypt, kms_providers);
|
4159
|
-
ASSERT_OK(mongocrypt_setopt_use_range_v2(crypt), crypt);
|
4160
4149
|
ASSERT_OK(mongocrypt_setopt_encrypted_field_config_map(
|
4161
4150
|
crypt,
|
4162
4151
|
TEST_FILE("./test/data/fle2-insert-range/int32/encrypted-field-map.json")), // Uses 'rangePreview'
|
@@ -4227,7 +4216,6 @@ static void autoencryption_test_run(autoencryption_test *aet) {
|
|
4227
4216
|
}
|
4228
4217
|
|
4229
4218
|
ASSERT_OK(mongocrypt_setopt_encrypted_field_config_map(crypt, aet->encrypted_field_map), crypt);
|
4230
|
-
ASSERT_OK(mongocrypt_setopt_use_range_v2(crypt), crypt);
|
4231
4219
|
ASSERT_OK(mongocrypt_init(crypt), crypt);
|
4232
4220
|
}
|
4233
4221
|
|
@@ -4357,7 +4345,6 @@ static void _test_range_sends_cryptoParams(_mongocrypt_tester_t *tester) {
|
|
4357
4345
|
tc.msg = TEST_BSON("{'v': 123456}");
|
4358
4346
|
tc.keys_to_feed[0] = key123;
|
4359
4347
|
tc.expect = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-insert-int32/expected.json");
|
4360
|
-
tc.use_range_v2 = true; // Use RangeV2 protocol.
|
4361
4348
|
ee_testcase_run(&tc);
|
4362
4349
|
// Check the parameters are present in the final payload.
|
4363
4350
|
{
|
@@ -4382,7 +4369,6 @@ static void _test_range_sends_cryptoParams(_mongocrypt_tester_t *tester) {
|
|
4382
4369
|
tc.msg = TEST_BSON("{'v': 123456}");
|
4383
4370
|
tc.keys_to_feed[0] = key123;
|
4384
4371
|
tc.expect = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-insert-int32-defaults/expected.json");
|
4385
|
-
tc.use_range_v2 = true; // Use RangeV2 protocol.
|
4386
4372
|
ee_testcase_run(&tc);
|
4387
4373
|
// Check the parameters are present in the final payload.
|
4388
4374
|
{
|
@@ -4408,7 +4394,6 @@ static void _test_range_sends_cryptoParams(_mongocrypt_tester_t *tester) {
|
|
4408
4394
|
tc.msg = TEST_BSON("{'v': 123456.0}");
|
4409
4395
|
tc.keys_to_feed[0] = key123;
|
4410
4396
|
tc.expect = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-insert-double/expected.json");
|
4411
|
-
tc.use_range_v2 = true; // Use RangeV2 protocol.
|
4412
4397
|
ee_testcase_run(&tc);
|
4413
4398
|
// Check the parameters are present in the final payload.
|
4414
4399
|
{
|
@@ -4433,7 +4418,6 @@ static void _test_range_sends_cryptoParams(_mongocrypt_tester_t *tester) {
|
|
4433
4418
|
tc.msg = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-find-int32-defaults/to-encrypt.json");
|
4434
4419
|
tc.keys_to_feed[0] = key123;
|
4435
4420
|
tc.expect = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-find-int32-defaults/expected.json");
|
4436
|
-
tc.use_range_v2 = true; // Use RangeV2 protocol.
|
4437
4421
|
ee_testcase_run(&tc);
|
4438
4422
|
// Check the parameters are present in the final payload.
|
4439
4423
|
{
|
@@ -4458,7 +4442,6 @@ static void _test_range_sends_cryptoParams(_mongocrypt_tester_t *tester) {
|
|
4458
4442
|
tc.msg = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-find-int32/to-encrypt.json");
|
4459
4443
|
tc.keys_to_feed[0] = key123;
|
4460
4444
|
tc.expect = TEST_FILE("./test/data/range-sends-cryptoParams/explicit-find-int32/expected.json");
|
4461
|
-
tc.use_range_v2 = true; // Use RangeV2 protocol.
|
4462
4445
|
ee_testcase_run(&tc);
|
4463
4446
|
// Check the parameters are present in the final payload.
|
4464
4447
|
{
|
@@ -5866,7 +5849,7 @@ void _mongocrypt_tester_install_ctx_encrypt(_mongocrypt_tester_t *tester) {
|
|
5866
5849
|
INSTALL_TEST(_test_encrypt_fle2_insert_range_payload_date);
|
5867
5850
|
INSTALL_TEST(_test_encrypt_fle2_insert_range_payload_double);
|
5868
5851
|
INSTALL_TEST(_test_encrypt_fle2_insert_range_payload_double_precision);
|
5869
|
-
#if MONGOCRYPT_HAVE_DECIMAL128_SUPPORT
|
5852
|
+
#if MONGOCRYPT_HAVE_DECIMAL128_SUPPORT()
|
5870
5853
|
INSTALL_TEST(_test_encrypt_fle2_insert_range_payload_decimal128);
|
5871
5854
|
INSTALL_TEST(_test_encrypt_fle2_insert_range_payload_decimal128_precision);
|
5872
5855
|
#endif
|
@@ -5875,7 +5858,7 @@ void _mongocrypt_tester_install_ctx_encrypt(_mongocrypt_tester_t *tester) {
|
|
5875
5858
|
INSTALL_TEST(_test_encrypt_fle2_find_range_payload_date);
|
5876
5859
|
INSTALL_TEST(_test_encrypt_fle2_find_range_payload_double);
|
5877
5860
|
INSTALL_TEST(_test_encrypt_fle2_find_range_payload_double_precision);
|
5878
|
-
#if MONGOCRYPT_HAVE_DECIMAL128_SUPPORT
|
5861
|
+
#if MONGOCRYPT_HAVE_DECIMAL128_SUPPORT()
|
5879
5862
|
INSTALL_TEST(_test_encrypt_fle2_find_range_payload_decimal128);
|
5880
5863
|
INSTALL_TEST(_test_encrypt_fle2_find_range_payload_decimal128_precision);
|
5881
5864
|
#endif
|
@@ -139,7 +139,7 @@ static int64_t _find_date_field(mongocrypt_binary_t *key, const char *dotkey) {
|
|
139
139
|
ASSERT(bson_iter_init(&iter, &bson));
|
140
140
|
ASSERT(bson_iter_find_descendant(&iter, dotkey, &iter));
|
141
141
|
ASSERT(BSON_ITER_HOLDS_DATE_TIME(&iter));
|
142
|
-
ASSERT((res = bson_iter_date_time(&iter)) != 0)
|
142
|
+
ASSERT((res = bson_iter_date_time(&iter)) != 0);
|
143
143
|
|
144
144
|
return res;
|
145
145
|
}
|
@@ -570,6 +570,33 @@ static void _test_rewrap_many_datakey_need_kms_retry(_mongocrypt_tester_t *teste
|
|
570
570
|
ASSERT(mongocrypt_kms_ctx_bytes_needed(kms) == 0);
|
571
571
|
ASSERT_OK(mongocrypt_ctx_kms_done(ctx), ctx);
|
572
572
|
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_KMS); // To encrypt.
|
573
|
+
mongocrypt_ctx_destroy(ctx);
|
574
|
+
|
575
|
+
/* Clear key cache. */
|
576
|
+
mongocrypt_destroy(crypt);
|
577
|
+
crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT);
|
578
|
+
|
579
|
+
/* Ensure KMS encrypt requests retry for network errors */
|
580
|
+
ctx = mongocrypt_ctx_new(crypt);
|
581
|
+
ASSERT_OK(mongocrypt_ctx_rewrap_many_datakey_init(ctx, filter), ctx);
|
582
|
+
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS);
|
583
|
+
ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, TEST_FILE("./test/data/rmd/key-document-a.json")), ctx);
|
584
|
+
ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx);
|
585
|
+
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_KMS); // To decrypt.
|
586
|
+
ASSERT((kms = mongocrypt_ctx_next_kms_ctx(ctx)));
|
587
|
+
ASSERT_OK(mongocrypt_kms_ctx_feed(kms, TEST_FILE("./test/data/rmd/kms-decrypt-reply-a.txt")), kms);
|
588
|
+
ASSERT(mongocrypt_kms_ctx_bytes_needed(kms) == 0);
|
589
|
+
ASSERT_OK(mongocrypt_ctx_kms_done(ctx), ctx);
|
590
|
+
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_KMS); // To encrypt.
|
591
|
+
ASSERT((kms = mongocrypt_ctx_next_kms_ctx(ctx)));
|
592
|
+
ASSERT(mongocrypt_kms_ctx_fail(kms)); // Simulate driver-side network failure for an encrypt request.
|
593
|
+
ASSERT((kms = mongocrypt_ctx_next_kms_ctx(ctx))); // Assert fails. Expected KMS request to retry but did not.
|
594
|
+
ASSERT_OK(mongocrypt_kms_ctx_feed(kms, TEST_FILE("./test/data/rmd/kms-encrypt-reply-a.txt")), kms);
|
595
|
+
ASSERT(mongocrypt_kms_ctx_bytes_needed(kms) == 0);
|
596
|
+
ASSERT_OK(!mongocrypt_ctx_next_kms_ctx(ctx), ctx);
|
597
|
+
ASSERT_OK(mongocrypt_ctx_kms_done(ctx), ctx);
|
598
|
+
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_READY);
|
599
|
+
|
573
600
|
mongocrypt_ctx_destroy(ctx);
|
574
601
|
mongocrypt_destroy(crypt);
|
575
602
|
}
|