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
@@ -17,6 +17,7 @@
|
|
17
17
|
#include <bson/bson.h>
|
18
18
|
|
19
19
|
#include "mc-fle2-find-equality-payload-private-v2.h"
|
20
|
+
#include "mc-parse-utils-private.h"
|
20
21
|
#include "mongocrypt-buffer-private.h"
|
21
22
|
#include "mongocrypt.h"
|
22
23
|
|
@@ -46,21 +47,7 @@ void mc_FLE2FindEqualityPayloadV2_cleanup(mc_FLE2FindEqualityPayloadV2_t *payloa
|
|
46
47
|
|
47
48
|
#define PARSE_BINARY(Name, Dest) \
|
48
49
|
IF_FIELD(Name) { \
|
49
|
-
|
50
|
-
uint32_t len; \
|
51
|
-
const uint8_t *data; \
|
52
|
-
if (bson_iter_type(&iter) != BSON_TYPE_BINARY) { \
|
53
|
-
CLIENT_ERR("Field '" #Name "' expected to be bindata, got: %d", bson_iter_type(&iter)); \
|
54
|
-
goto fail; \
|
55
|
-
} \
|
56
|
-
bson_iter_binary(&iter, &subtype, &len, &data); \
|
57
|
-
if (subtype != BSON_SUBTYPE_BINARY) { \
|
58
|
-
CLIENT_ERR("Field '" #Name "' expected to be bindata subtype %d, got: %d", BSON_SUBTYPE_BINARY, subtype); \
|
59
|
-
goto fail; \
|
60
|
-
} \
|
61
|
-
if (!_mongocrypt_buffer_copy_from_binary_iter(&out->Dest, &iter)) { \
|
62
|
-
CLIENT_ERR("Unable to create mongocrypt buffer for BSON binary " \
|
63
|
-
"field in '" #Name "'"); \
|
50
|
+
if (!parse_bindata(BSON_SUBTYPE_BINARY, &iter, &out->Dest, status)) { \
|
64
51
|
goto fail; \
|
65
52
|
} \
|
66
53
|
} \
|
@@ -70,7 +57,8 @@ void mc_FLE2FindEqualityPayloadV2_cleanup(mc_FLE2FindEqualityPayloadV2_t *payloa
|
|
70
57
|
if (!has_##Name) { \
|
71
58
|
CLIENT_ERR("Missing field '" #Name "' in payload"); \
|
72
59
|
goto fail; \
|
73
|
-
}
|
60
|
+
} else \
|
61
|
+
((void)0)
|
74
62
|
|
75
63
|
bool mc_FLE2FindEqualityPayloadV2_parse(mc_FLE2FindEqualityPayloadV2_t *out,
|
76
64
|
const bson_t *in,
|
@@ -117,7 +105,8 @@ fail:
|
|
117
105
|
#define APPEND_BINDATA(name, value) \
|
118
106
|
if (!_mongocrypt_buffer_append(&(value), out, name, -1)) { \
|
119
107
|
return false; \
|
120
|
-
}
|
108
|
+
} else \
|
109
|
+
((void)0)
|
121
110
|
|
122
111
|
bool mc_FLE2FindEqualityPayloadV2_serialize(const mc_FLE2FindEqualityPayloadV2_t *payload, bson_t *out) {
|
123
112
|
BSON_ASSERT_PARAM(payload);
|
@@ -17,6 +17,7 @@
|
|
17
17
|
#include <bson/bson.h>
|
18
18
|
|
19
19
|
#include "mc-fle2-find-equality-payload-private.h"
|
20
|
+
#include "mc-parse-utils-private.h"
|
20
21
|
#include "mongocrypt-buffer-private.h"
|
21
22
|
#include "mongocrypt.h"
|
22
23
|
|
@@ -47,21 +48,7 @@ void mc_FLE2FindEqualityPayload_cleanup(mc_FLE2FindEqualityPayload_t *payload) {
|
|
47
48
|
|
48
49
|
#define PARSE_BINARY(Name, Dest) \
|
49
50
|
IF_FIELD(Name) { \
|
50
|
-
|
51
|
-
uint32_t len; \
|
52
|
-
const uint8_t *data; \
|
53
|
-
if (bson_iter_type(&iter) != BSON_TYPE_BINARY) { \
|
54
|
-
CLIENT_ERR("Field '" #Name "' expected to be bindata, got: %d", bson_iter_type(&iter)); \
|
55
|
-
goto fail; \
|
56
|
-
} \
|
57
|
-
bson_iter_binary(&iter, &subtype, &len, &data); \
|
58
|
-
if (subtype != BSON_SUBTYPE_BINARY) { \
|
59
|
-
CLIENT_ERR("Field '" #Name "' expected to be bindata subtype %d, got: %d", BSON_SUBTYPE_BINARY, subtype); \
|
60
|
-
goto fail; \
|
61
|
-
} \
|
62
|
-
if (!_mongocrypt_buffer_copy_from_binary_iter(&out->Dest, &iter)) { \
|
63
|
-
CLIENT_ERR("Unable to create mongocrypt buffer for BSON binary " \
|
64
|
-
"field in '" #Name "'"); \
|
51
|
+
if (!parse_bindata(BSON_SUBTYPE_BINARY, &iter, &out->Dest, status)) { \
|
65
52
|
goto fail; \
|
66
53
|
} \
|
67
54
|
} \
|
@@ -71,7 +58,8 @@ void mc_FLE2FindEqualityPayload_cleanup(mc_FLE2FindEqualityPayload_t *payload) {
|
|
71
58
|
if (!has_##Name) { \
|
72
59
|
CLIENT_ERR("Missing field '" #Name "' in payload"); \
|
73
60
|
goto fail; \
|
74
|
-
}
|
61
|
+
} else \
|
62
|
+
((void)0)
|
75
63
|
|
76
64
|
bool mc_FLE2FindEqualityPayload_parse(mc_FLE2FindEqualityPayload_t *out,
|
77
65
|
const bson_t *in,
|
@@ -120,7 +108,8 @@ fail:
|
|
120
108
|
#define PAYLOAD_APPEND_BINDATA(name, value) \
|
121
109
|
if (!_mongocrypt_buffer_append(&(value), out, name, -1)) { \
|
122
110
|
return false; \
|
123
|
-
}
|
111
|
+
} else \
|
112
|
+
((void)0)
|
124
113
|
|
125
114
|
bool mc_FLE2FindEqualityPayload_serialize(const mc_FLE2FindEqualityPayload_t *payload, bson_t *out) {
|
126
115
|
BSON_ASSERT_PARAM(payload);
|
@@ -101,7 +101,7 @@ typedef struct {
|
|
101
101
|
|
102
102
|
void mc_FLE2FindRangePayloadV2_init(mc_FLE2FindRangePayloadV2_t *payload);
|
103
103
|
|
104
|
-
bool mc_FLE2FindRangePayloadV2_serialize(const mc_FLE2FindRangePayloadV2_t *payload, bson_t *out
|
104
|
+
bool mc_FLE2FindRangePayloadV2_serialize(const mc_FLE2FindRangePayloadV2_t *payload, bson_t *out);
|
105
105
|
|
106
106
|
void mc_FLE2FindRangePayloadV2_cleanup(mc_FLE2FindRangePayloadV2_t *payload);
|
107
107
|
|
@@ -51,9 +51,10 @@ void mc_FLE2FindRangePayloadV2_cleanup(mc_FLE2FindRangePayloadV2_t *payload) {
|
|
51
51
|
#define APPEND_BINDATA(out, name, value) \
|
52
52
|
if (!_mongocrypt_buffer_append(&(value), out, name, -1)) { \
|
53
53
|
return false; \
|
54
|
-
}
|
54
|
+
} else \
|
55
|
+
((void)0)
|
55
56
|
|
56
|
-
bool mc_FLE2FindRangePayloadV2_serialize(const mc_FLE2FindRangePayloadV2_t *payload, bson_t *out
|
57
|
+
bool mc_FLE2FindRangePayloadV2_serialize(const mc_FLE2FindRangePayloadV2_t *payload, bson_t *out) {
|
57
58
|
BSON_ASSERT_PARAM(out);
|
58
59
|
BSON_ASSERT_PARAM(payload);
|
59
60
|
|
@@ -131,39 +132,37 @@ bool mc_FLE2FindRangePayloadV2_serialize(const mc_FLE2FindRangePayloadV2_t *payl
|
|
131
132
|
return false;
|
132
133
|
}
|
133
134
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
// One of the pair includes the mincover. The other payload was not generated with crypto parameters.
|
135
|
+
// Encode parameters that were used to generate the mincover.
|
136
|
+
// The crypto parameters are all optionally set. Find payloads may come in pairs (a lower and upper bound).
|
137
|
+
// One of the pair includes the mincover. The other payload was not generated with crypto parameters.
|
138
138
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
}
|
139
|
+
if (payload->sparsity.set) {
|
140
|
+
if (!BSON_APPEND_INT64(out, "sp", payload->sparsity.value)) {
|
141
|
+
return false;
|
143
142
|
}
|
143
|
+
}
|
144
144
|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
}
|
145
|
+
if (payload->precision.set) {
|
146
|
+
if (!BSON_APPEND_INT32(out, "pn", payload->precision.value)) {
|
147
|
+
return false;
|
149
148
|
}
|
149
|
+
}
|
150
150
|
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
}
|
151
|
+
if (payload->trimFactor.set) {
|
152
|
+
if (!BSON_APPEND_INT32(out, "tf", payload->trimFactor.value)) {
|
153
|
+
return false;
|
155
154
|
}
|
155
|
+
}
|
156
156
|
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
}
|
157
|
+
if (payload->indexMin.value_type != BSON_TYPE_EOD) {
|
158
|
+
if (!BSON_APPEND_VALUE(out, "mn", &payload->indexMin)) {
|
159
|
+
return false;
|
161
160
|
}
|
161
|
+
}
|
162
162
|
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
}
|
163
|
+
if (payload->indexMax.value_type != BSON_TYPE_EOD) {
|
164
|
+
if (!BSON_APPEND_VALUE(out, "mx", &payload->indexMax)) {
|
165
|
+
return false;
|
167
166
|
}
|
168
167
|
}
|
169
168
|
|
@@ -52,7 +52,8 @@ void mc_FLE2FindRangePayload_cleanup(mc_FLE2FindRangePayload_t *payload) {
|
|
52
52
|
#define APPEND_BINDATA(out, name, value) \
|
53
53
|
if (!_mongocrypt_buffer_append(&(value), out, name, -1)) { \
|
54
54
|
return false; \
|
55
|
-
}
|
55
|
+
} else \
|
56
|
+
((void)0)
|
56
57
|
|
57
58
|
bool mc_FLE2FindRangePayload_serialize(const mc_FLE2FindRangePayload_t *payload, bson_t *out) {
|
58
59
|
BSON_ASSERT_PARAM(out);
|
@@ -0,0 +1,122 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2025-present MongoDB, Inc.
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
* you may not use this file except in compliance with the License.
|
6
|
+
* You may obtain a copy of the License at
|
7
|
+
*
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
*
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
* See the License for the specific language governing permissions and
|
14
|
+
* limitations under the License.
|
15
|
+
*/
|
16
|
+
|
17
|
+
#ifndef MC_FLE2_FIND_TEXT_PAYLOAD_PRIVATE_H
|
18
|
+
#define MC_FLE2_FIND_TEXT_PAYLOAD_PRIVATE_H
|
19
|
+
|
20
|
+
#include "mc-fle2-encryption-placeholder-private.h"
|
21
|
+
#include "mongocrypt-buffer-private.h"
|
22
|
+
#include "mongocrypt-private.h"
|
23
|
+
#include "mongocrypt.h"
|
24
|
+
|
25
|
+
#define DEF_TEXT_SEARCH_FIND_TOKEN_SET(Type) \
|
26
|
+
typedef struct { \
|
27
|
+
_mongocrypt_buffer_t edcDerivedToken; \
|
28
|
+
_mongocrypt_buffer_t escDerivedToken; \
|
29
|
+
_mongocrypt_buffer_t serverDerivedFromDataToken; \
|
30
|
+
} mc_Text##Type##FindTokenSet_t;
|
31
|
+
|
32
|
+
DEF_TEXT_SEARCH_FIND_TOKEN_SET(Exact);
|
33
|
+
DEF_TEXT_SEARCH_FIND_TOKEN_SET(Substring);
|
34
|
+
DEF_TEXT_SEARCH_FIND_TOKEN_SET(Suffix);
|
35
|
+
DEF_TEXT_SEARCH_FIND_TOKEN_SET(Prefix);
|
36
|
+
|
37
|
+
typedef struct {
|
38
|
+
struct {
|
39
|
+
mc_TextExactFindTokenSet_t value;
|
40
|
+
bool set;
|
41
|
+
} exact; // e
|
42
|
+
|
43
|
+
struct {
|
44
|
+
mc_TextSubstringFindTokenSet_t value;
|
45
|
+
bool set;
|
46
|
+
} substring; // s
|
47
|
+
|
48
|
+
struct {
|
49
|
+
mc_TextSuffixFindTokenSet_t value;
|
50
|
+
bool set;
|
51
|
+
} suffix; // u
|
52
|
+
|
53
|
+
struct {
|
54
|
+
mc_TextPrefixFindTokenSet_t value;
|
55
|
+
bool set;
|
56
|
+
} prefix; // p
|
57
|
+
} mc_TextSearchFindTokenSets_t;
|
58
|
+
|
59
|
+
/**
|
60
|
+
* FLE2FindTextPayload represents an FLE2 payload of a substring/suffix/prefix indexed field to
|
61
|
+
* query. It is created client side.
|
62
|
+
*
|
63
|
+
* FLE2FindTextPayload has the following data layout:
|
64
|
+
*
|
65
|
+
* struct {
|
66
|
+
* uint8_t fle_blob_subtype = 18;
|
67
|
+
* uint8_t bson[];
|
68
|
+
* } FLE2FindTextPayload;
|
69
|
+
*
|
70
|
+
* bson is a BSON document of this form:
|
71
|
+
* {
|
72
|
+
* ts: {
|
73
|
+
* e: optional<TextExactFindTokenSet> // required tokens if doing full string match
|
74
|
+
* s: optional<TextSubstringFindTokenSet> // required tokens if doing substring match
|
75
|
+
* u: optional<TextSuffixFindTokenSet> // required tokens if doing suffix match
|
76
|
+
* p: optional<TextPrefixFindTokenSet> // required tokens if doing prefix match
|
77
|
+
* }
|
78
|
+
* cm: <int64> // Queryable Encryption max contentionFactor
|
79
|
+
* cf: <bool> // case folding parameter
|
80
|
+
* df: <bool> // diacritic folding parameter
|
81
|
+
* ss: optional<FLE2SubstringInsertSpec> // substring-indexing parameters (if applicable)
|
82
|
+
* fs: optional<FLE2SuffixInsertSpec> // suffix-indexing parameters (if applicable)
|
83
|
+
* ps: optional<FLE2PrefixInsertSpec> // prefix-indexing parameters (if applicable)
|
84
|
+
* }
|
85
|
+
* where for each of T in [Exact, Substring, Suffix, Prefix], Text<T>FindTokenSet is a document of form:
|
86
|
+
* {
|
87
|
+
* d: <binary> // EDCText<T>DerivedFromDataToken
|
88
|
+
* s: <binary> // ESCText<T>DerivedFromDataToken
|
89
|
+
* l: <binary> // ServerText<T>DerivedFromDataToken
|
90
|
+
* }
|
91
|
+
*/
|
92
|
+
typedef struct {
|
93
|
+
mc_TextSearchFindTokenSets_t tokenSets; // ts
|
94
|
+
int64_t maxContentionFactor; // cm
|
95
|
+
bool caseFold; // cf
|
96
|
+
bool diacriticFold; // df
|
97
|
+
|
98
|
+
struct {
|
99
|
+
mc_FLE2SubstringInsertSpec_t value;
|
100
|
+
bool set;
|
101
|
+
} substringSpec; // ss
|
102
|
+
|
103
|
+
struct {
|
104
|
+
mc_FLE2SuffixInsertSpec_t value;
|
105
|
+
bool set;
|
106
|
+
} suffixSpec; // fs
|
107
|
+
|
108
|
+
struct {
|
109
|
+
mc_FLE2PrefixInsertSpec_t value;
|
110
|
+
bool set;
|
111
|
+
} prefixSpec; // ps
|
112
|
+
} mc_FLE2FindTextPayload_t;
|
113
|
+
|
114
|
+
void mc_FLE2FindTextPayload_init(mc_FLE2FindTextPayload_t *payload);
|
115
|
+
|
116
|
+
bool mc_FLE2FindTextPayload_parse(mc_FLE2FindTextPayload_t *out, const bson_t *in, mongocrypt_status_t *status);
|
117
|
+
|
118
|
+
bool mc_FLE2FindTextPayload_serialize(const mc_FLE2FindTextPayload_t *payload, bson_t *out);
|
119
|
+
|
120
|
+
void mc_FLE2FindTextPayload_cleanup(mc_FLE2FindTextPayload_t *payload);
|
121
|
+
|
122
|
+
#endif /* MC_FLE2_FIND_TEXT_PAYLOAD_PRIVATE_H */
|