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
@@ -54,6 +54,14 @@
|
|
54
54
|
F(ServerTextSubstringToken) \
|
55
55
|
F(ServerTextSuffixToken) \
|
56
56
|
F(ServerTextPrefixToken) \
|
57
|
+
F(EDCTextExactDerivedFromDataToken) \
|
58
|
+
F(EDCTextSubstringDerivedFromDataToken) \
|
59
|
+
F(EDCTextSuffixDerivedFromDataToken) \
|
60
|
+
F(EDCTextPrefixDerivedFromDataToken) \
|
61
|
+
F(ESCTextExactDerivedFromDataToken) \
|
62
|
+
F(ESCTextSubstringDerivedFromDataToken) \
|
63
|
+
F(ESCTextSuffixDerivedFromDataToken) \
|
64
|
+
F(ESCTextPrefixDerivedFromDataToken) \
|
57
65
|
F(EDCTextExactDerivedFromDataTokenAndContentionFactorToken) \
|
58
66
|
F(EDCTextSubstringDerivedFromDataTokenAndContentionFactorToken) \
|
59
67
|
F(EDCTextSuffixDerivedFromDataTokenAndContentionFactorToken) \
|
@@ -222,12 +230,9 @@ static void _mc_token_test_run(_mongocrypt_tester_t *tester, const char *path) {
|
|
222
230
|
|
223
231
|
#define TEST_TEXT(Name, Suffix) TEST_HELPER(Name, Token, Text##Suffix##Token, )
|
224
232
|
#define TEST_TEXT_EXTRA(Name, Suffix, BaseSuffix) TEST_HELPER(Name, BaseSuffix##Token, Text##Suffix##Token, )
|
225
|
-
#define TEST_TEXT_DERIVED_FROM_BOTH(Name) \
|
226
|
-
TEST_HELPER(Name, \
|
227
|
-
Token, \
|
228
|
-
DerivedFromDataTokenAndContentionFactorToken, \
|
229
|
-
&test.value COMMA test.contentionFactor COMMA)
|
230
233
|
#define TEST_TEXT_DERIVED_FROM_DATA(Name) TEST_HELPER(Name, Token, DerivedFromDataToken, &test.value COMMA)
|
234
|
+
#define TEST_TEXT_DERIVED_FROM_CONTENTION(Name) \
|
235
|
+
TEST_HELPER(Name, Token, TokenAndContentionFactorToken, test.contentionFactor COMMA)
|
231
236
|
|
232
237
|
TEST_TEXT(EDC, Exact);
|
233
238
|
TEST_TEXT(EDC, Substring);
|
@@ -244,15 +249,23 @@ static void _mc_token_test_run(_mongocrypt_tester_t *tester, const char *path) {
|
|
244
249
|
TEST_TEXT_EXTRA(Server, Suffix, TokenDerivationLevel1);
|
245
250
|
TEST_TEXT_EXTRA(Server, Prefix, TokenDerivationLevel1);
|
246
251
|
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
252
|
+
TEST_TEXT_DERIVED_FROM_DATA(EDCTextExact);
|
253
|
+
TEST_TEXT_DERIVED_FROM_DATA(EDCTextSubstring);
|
254
|
+
TEST_TEXT_DERIVED_FROM_DATA(EDCTextSuffix);
|
255
|
+
TEST_TEXT_DERIVED_FROM_DATA(EDCTextPrefix);
|
256
|
+
TEST_TEXT_DERIVED_FROM_CONTENTION(EDCTextExactDerivedFromData);
|
257
|
+
TEST_TEXT_DERIVED_FROM_CONTENTION(EDCTextSubstringDerivedFromData);
|
258
|
+
TEST_TEXT_DERIVED_FROM_CONTENTION(EDCTextSuffixDerivedFromData);
|
259
|
+
TEST_TEXT_DERIVED_FROM_CONTENTION(EDCTextPrefixDerivedFromData);
|
260
|
+
|
261
|
+
TEST_TEXT_DERIVED_FROM_DATA(ESCTextExact);
|
262
|
+
TEST_TEXT_DERIVED_FROM_DATA(ESCTextSubstring);
|
263
|
+
TEST_TEXT_DERIVED_FROM_DATA(ESCTextSuffix);
|
264
|
+
TEST_TEXT_DERIVED_FROM_DATA(ESCTextPrefix);
|
265
|
+
TEST_TEXT_DERIVED_FROM_CONTENTION(ESCTextExactDerivedFromData);
|
266
|
+
TEST_TEXT_DERIVED_FROM_CONTENTION(ESCTextSubstringDerivedFromData);
|
267
|
+
TEST_TEXT_DERIVED_FROM_CONTENTION(ESCTextSuffixDerivedFromData);
|
268
|
+
TEST_TEXT_DERIVED_FROM_CONTENTION(ESCTextPrefixDerivedFromData);
|
256
269
|
|
257
270
|
TEST_TEXT_DERIVED_FROM_DATA(ServerTextExact);
|
258
271
|
TEST_TEXT_DERIVED_FROM_DATA(ServerTextSubstring);
|
@@ -272,6 +285,10 @@ static void _mc_token_test_run(_mongocrypt_tester_t *tester, const char *path) {
|
|
272
285
|
ESCTextSubstringDerivedFromDataTokenAndContentionFactorToken);
|
273
286
|
mc_ESCTextExactDerivedFromDataTokenAndContentionFactorToken_destroy(
|
274
287
|
ESCTextExactDerivedFromDataTokenAndContentionFactorToken);
|
288
|
+
mc_ESCTextPrefixDerivedFromDataToken_destroy(ESCTextPrefixDerivedFromDataToken);
|
289
|
+
mc_ESCTextSuffixDerivedFromDataToken_destroy(ESCTextSuffixDerivedFromDataToken);
|
290
|
+
mc_ESCTextSubstringDerivedFromDataToken_destroy(ESCTextSubstringDerivedFromDataToken);
|
291
|
+
mc_ESCTextExactDerivedFromDataToken_destroy(ESCTextExactDerivedFromDataToken);
|
275
292
|
mc_EDCTextPrefixDerivedFromDataTokenAndContentionFactorToken_destroy(
|
276
293
|
EDCTextPrefixDerivedFromDataTokenAndContentionFactorToken);
|
277
294
|
mc_EDCTextSuffixDerivedFromDataTokenAndContentionFactorToken_destroy(
|
@@ -280,6 +297,10 @@ static void _mc_token_test_run(_mongocrypt_tester_t *tester, const char *path) {
|
|
280
297
|
EDCTextSubstringDerivedFromDataTokenAndContentionFactorToken);
|
281
298
|
mc_EDCTextExactDerivedFromDataTokenAndContentionFactorToken_destroy(
|
282
299
|
EDCTextExactDerivedFromDataTokenAndContentionFactorToken);
|
300
|
+
mc_EDCTextPrefixDerivedFromDataToken_destroy(EDCTextPrefixDerivedFromDataToken);
|
301
|
+
mc_EDCTextSuffixDerivedFromDataToken_destroy(EDCTextSuffixDerivedFromDataToken);
|
302
|
+
mc_EDCTextSubstringDerivedFromDataToken_destroy(EDCTextSubstringDerivedFromDataToken);
|
303
|
+
mc_EDCTextExactDerivedFromDataToken_destroy(EDCTextExactDerivedFromDataToken);
|
283
304
|
mc_ServerTextPrefixToken_destroy(ServerTextPrefixToken);
|
284
305
|
mc_ServerTextSuffixToken_destroy(ServerTextSuffixToken);
|
285
306
|
mc_ServerTextSubstringToken_destroy(ServerTextSubstringToken);
|
@@ -28,13 +28,13 @@ static void _test_mc_writer_ints(_mongocrypt_tester_t *tester) {
|
|
28
28
|
_mongocrypt_buffer_init_size(&write_buffer, sizeof(uint8_t));
|
29
29
|
|
30
30
|
mc_writer_t writer;
|
31
|
-
mc_writer_init_from_buffer(&writer, &write_buffer,
|
31
|
+
mc_writer_init_from_buffer(&writer, &write_buffer, __func__);
|
32
32
|
|
33
33
|
uint8_t num = 4;
|
34
34
|
ASSERT_OK_STATUS(mc_writer_write_u8(&writer, num, status), status);
|
35
35
|
|
36
36
|
mc_reader_t reader;
|
37
|
-
mc_reader_init_from_buffer(&reader, &write_buffer,
|
37
|
+
mc_reader_init_from_buffer(&reader, &write_buffer, __func__);
|
38
38
|
|
39
39
|
uint8_t out;
|
40
40
|
ASSERT_OK_STATUS(mc_reader_read_u8(&reader, &out, status), status);
|
@@ -53,13 +53,13 @@ static void _test_mc_writer_ints(_mongocrypt_tester_t *tester) {
|
|
53
53
|
_mongocrypt_buffer_init_size(&write_buffer, sizeof(uint32_t));
|
54
54
|
|
55
55
|
mc_writer_t writer;
|
56
|
-
mc_writer_init_from_buffer(&writer, &write_buffer,
|
56
|
+
mc_writer_init_from_buffer(&writer, &write_buffer, __func__);
|
57
57
|
|
58
58
|
uint32_t num = 23832405;
|
59
59
|
ASSERT_OK_STATUS(mc_writer_write_u32(&writer, num, status), status);
|
60
60
|
|
61
61
|
mc_reader_t reader;
|
62
|
-
mc_reader_init_from_buffer(&reader, &write_buffer,
|
62
|
+
mc_reader_init_from_buffer(&reader, &write_buffer, __func__);
|
63
63
|
|
64
64
|
uint32_t out;
|
65
65
|
ASSERT_OK_STATUS(mc_reader_read_u32(&reader, &out, status), status);
|
@@ -78,13 +78,13 @@ static void _test_mc_writer_ints(_mongocrypt_tester_t *tester) {
|
|
78
78
|
_mongocrypt_buffer_init_size(&write_buffer, sizeof(uint64_t));
|
79
79
|
|
80
80
|
mc_writer_t writer;
|
81
|
-
mc_writer_init_from_buffer(&writer, &write_buffer,
|
81
|
+
mc_writer_init_from_buffer(&writer, &write_buffer, __func__);
|
82
82
|
|
83
83
|
uint64_t num = 23832405;
|
84
84
|
ASSERT_OK_STATUS(mc_writer_write_u64(&writer, num, status), status);
|
85
85
|
|
86
86
|
mc_reader_t reader;
|
87
|
-
mc_reader_init_from_buffer(&reader, &write_buffer,
|
87
|
+
mc_reader_init_from_buffer(&reader, &write_buffer, __func__);
|
88
88
|
|
89
89
|
uint64_t out;
|
90
90
|
ASSERT_OK_STATUS(mc_reader_read_u64(&reader, &out, status), status);
|
@@ -109,13 +109,13 @@ static void _test_mc_writer_buffer(_mongocrypt_tester_t *tester) {
|
|
109
109
|
_mongocrypt_buffer_init_size(&write_buffer, input_buffer.len);
|
110
110
|
|
111
111
|
mc_writer_t writer;
|
112
|
-
mc_writer_init_from_buffer(&writer, &write_buffer,
|
112
|
+
mc_writer_init_from_buffer(&writer, &write_buffer, __func__);
|
113
113
|
|
114
114
|
ASSERT_OK_STATUS(mc_writer_write_buffer(&writer, &input_buffer, input_buffer.len, status), status);
|
115
115
|
|
116
116
|
_mongocrypt_buffer_t read_buffer;
|
117
117
|
mc_reader_t reader;
|
118
|
-
mc_reader_init_from_buffer(&reader, &write_buffer,
|
118
|
+
mc_reader_init_from_buffer(&reader, &write_buffer, __func__);
|
119
119
|
ASSERT_OK_STATUS(mc_reader_read_buffer(&reader, &read_buffer, write_buffer.len, status), status);
|
120
120
|
|
121
121
|
ASSERT_CMPBUF(input_buffer, read_buffer);
|
@@ -137,7 +137,7 @@ static void _test_mc_writer_prf(_mongocrypt_tester_t *tester) {
|
|
137
137
|
_mongocrypt_buffer_init_size(&write_buffer, input_buffer.len);
|
138
138
|
|
139
139
|
mc_writer_t writer;
|
140
|
-
mc_writer_init_from_buffer(&writer, &write_buffer,
|
140
|
+
mc_writer_init_from_buffer(&writer, &write_buffer, __func__);
|
141
141
|
|
142
142
|
ASSERT_OK_STATUS(mc_writer_write_prfblock_buffer(&writer, &input_buffer, status), status);
|
143
143
|
ASSERT_CMPBUF(input_buffer, write_buffer);
|
@@ -158,7 +158,7 @@ static void _test_mc_writer_uuid(_mongocrypt_tester_t *tester) {
|
|
158
158
|
_mongocrypt_buffer_init_size(&write_buffer, input_buffer.len);
|
159
159
|
|
160
160
|
mc_writer_t writer;
|
161
|
-
mc_writer_init_from_buffer(&writer, &write_buffer,
|
161
|
+
mc_writer_init_from_buffer(&writer, &write_buffer, __func__);
|
162
162
|
|
163
163
|
ASSERT_OK_STATUS(mc_writer_write_uuid_buffer(&writer, &input_buffer, status), status);
|
164
164
|
ASSERT_CMPBUF(input_buffer, write_buffer);
|
@@ -78,11 +78,6 @@ bool match_json(const bson_t *doc,
|
|
78
78
|
const char *json_pattern,
|
79
79
|
...);
|
80
80
|
|
81
|
-
#define ASSERT_MATCH(doc, ...) \
|
82
|
-
do { \
|
83
|
-
BSON_ASSERT(match_json(doc, false, __FILE__, __LINE__, BSON_FUNC, __VA_ARGS__)); \
|
84
|
-
} while (0)
|
85
|
-
|
86
81
|
const char *_mongoc_bson_type_to_str(bson_type_t t);
|
87
82
|
|
88
83
|
static bool get_exists_operator(const bson_value_t *value, bool *exists);
|
@@ -225,7 +220,7 @@ bool match_bson(const bson_t *doc, const bson_t *pattern, bool is_command) {
|
|
225
220
|
|
226
221
|
MLIB_ANNOTATE_PRINTF(2, 3)
|
227
222
|
|
228
|
-
void match_err(match_ctx_t *ctx, const char *fmt, ...) {
|
223
|
+
static void match_err(match_ctx_t *ctx, const char *fmt, ...) {
|
229
224
|
va_list args;
|
230
225
|
char *formatted;
|
231
226
|
|
@@ -849,7 +844,8 @@ bool match_bson_value(const bson_value_t *doc, const bson_value_t *pattern, matc
|
|
849
844
|
"numeric values may be equal)");
|
850
845
|
}
|
851
846
|
break;
|
852
|
-
default:
|
847
|
+
default:
|
848
|
+
match_err(ctx, "unexpected value type %d: %s", (int)doc->value_type, _mongoc_bson_type_to_str(doc->value_type));
|
853
849
|
}
|
854
850
|
|
855
851
|
if (!ret) {
|
@@ -44,29 +44,32 @@
|
|
44
44
|
((void)0)
|
45
45
|
|
46
46
|
#define TEST_ERROR(...) \
|
47
|
-
|
48
|
-
TEST_STDERR_PRINTF("test error %s:%d %s(): ", __FILE__, __LINE__,
|
47
|
+
if (1) { \
|
48
|
+
TEST_STDERR_PRINTF("test error %s:%d %s(): ", __FILE__, __LINE__, __func__); \
|
49
49
|
TEST_STDERR_PRINTF(__VA_ARGS__); \
|
50
50
|
TEST_STDERR_PRINTF("\n"); \
|
51
51
|
abort(); \
|
52
|
-
}
|
52
|
+
} else \
|
53
|
+
((void)0)
|
53
54
|
|
54
55
|
#define ASSERT(stmt) \
|
55
56
|
if (!(stmt)) { \
|
56
57
|
TEST_ERROR("statement failed %s", #stmt); \
|
57
|
-
}
|
58
|
+
} else \
|
59
|
+
((void)0)
|
58
60
|
|
59
61
|
#define ASSERT_OR_PRINT_MSG(_statement, msg) \
|
60
|
-
|
62
|
+
if (1) { \
|
61
63
|
if (!(_statement)) { \
|
62
64
|
TEST_ERROR("%s failed with msg: %s", #_statement, (msg)); \
|
63
65
|
} \
|
64
|
-
}
|
66
|
+
} else \
|
67
|
+
((void)0)
|
65
68
|
|
66
69
|
#define ASSERT_OR_PRINT(_statement, _err) ASSERT_OR_PRINT_MSG(_statement, mongocrypt_status_message(_err, NULL))
|
67
70
|
|
68
71
|
#define ASSERT_OK_STATUS(_stmt, _status) \
|
69
|
-
|
72
|
+
if (1) { \
|
70
73
|
bool _retval = (_stmt); \
|
71
74
|
bool _status_ok = mongocrypt_status_ok(_status); \
|
72
75
|
const char *_msg = mongocrypt_status_message(_status, NULL); \
|
@@ -75,10 +78,11 @@
|
|
75
78
|
} else if (!_status_ok) { \
|
76
79
|
TEST_ERROR("%s resulted in unexpected error status: %s\n", #_stmt, _msg); \
|
77
80
|
} \
|
78
|
-
}
|
81
|
+
} else \
|
82
|
+
((void)0)
|
79
83
|
|
80
84
|
#define ASSERT_FAILS_STATUS(_stmt, _status, _msg_pattern) \
|
81
|
-
|
85
|
+
if (1) { \
|
82
86
|
bool _retval = (_stmt); \
|
83
87
|
bool _status_ok = mongocrypt_status_ok(_status); \
|
84
88
|
const char *_msg = mongocrypt_status_message(_status, NULL); \
|
@@ -90,7 +94,8 @@
|
|
90
94
|
} else if (!_found_msg) { \
|
91
95
|
TEST_ERROR("'%s' does not contain '%s'\n", _msg, _msg_pattern); \
|
92
96
|
} \
|
93
|
-
}
|
97
|
+
} else \
|
98
|
+
((void)0)
|
94
99
|
|
95
100
|
#define ASSERT_OK(_stmt, _obj) ASSERT_OK_STATUS(_stmt, (_obj)->status)
|
96
101
|
|
@@ -101,7 +106,7 @@
|
|
101
106
|
#define ASSERT_STATUS_CONTAINS(status, _msg_pattern) ASSERT_FAILS_STATUS(false, status, _msg_pattern)
|
102
107
|
|
103
108
|
#define ASSERT_STREQUAL(_expr_a, _expr_b) \
|
104
|
-
|
109
|
+
if (1) { \
|
105
110
|
const char *_str_a = (_expr_a); \
|
106
111
|
const char *_str_b = (_expr_b); \
|
107
112
|
ASSERT(_str_a); \
|
@@ -110,47 +115,52 @@
|
|
110
115
|
if (_ret != 0) { \
|
111
116
|
TEST_ERROR("strings not equal:\n%s\nvs.\n%s\n", _str_a, _str_b); \
|
112
117
|
} \
|
113
|
-
}
|
118
|
+
} else \
|
119
|
+
((void)0)
|
114
120
|
|
115
121
|
#define ASSERT_STRCONTAINS(_expr_a, _expr_b) \
|
116
|
-
|
122
|
+
if (1) { \
|
117
123
|
const char *_str_a = (_expr_a); \
|
118
124
|
const char *_str_b = (_expr_b); \
|
119
125
|
char *_ret = strstr(_str_a, _str_b); \
|
120
126
|
if (_ret == NULL) { \
|
121
127
|
TEST_ERROR("string %s does not contain %s\n", _str_a, _str_b); \
|
122
128
|
} \
|
123
|
-
}
|
129
|
+
} else \
|
130
|
+
((void)0)
|
124
131
|
|
125
132
|
#define ASSERT_STATE_EQUAL(actual, expected) \
|
126
|
-
|
133
|
+
if (1) { \
|
127
134
|
if (actual != expected) { \
|
128
135
|
TEST_ERROR("actual state: %s, but expected state: %s\n", \
|
129
136
|
mongocrypt_ctx_state_to_string(actual), \
|
130
137
|
mongocrypt_ctx_state_to_string(expected)); \
|
131
138
|
abort(); \
|
132
139
|
} \
|
133
|
-
}
|
140
|
+
} else \
|
141
|
+
((void)0)
|
134
142
|
|
135
143
|
#define ASSERT_CMPBYTES(expected_bytes, expected_len, actual_bytes, actual_len) \
|
136
|
-
|
144
|
+
if (1) { \
|
137
145
|
char *_actual_hex = data_to_hex(actual_bytes, actual_len); \
|
138
146
|
char *_expected_hex = data_to_hex(expected_bytes, expected_len); \
|
139
147
|
ASSERT_STREQUAL(_actual_hex, _expected_hex); \
|
140
148
|
free(_actual_hex); \
|
141
149
|
free(_expected_hex); \
|
142
|
-
}
|
150
|
+
} else \
|
151
|
+
((void)0)
|
143
152
|
|
144
153
|
#define ASSERT_CMPBUF(expected, actual) ASSERT_CMPBYTES((expected).data, (expected).len, (actual).data, (actual).len)
|
145
154
|
|
146
155
|
#define ASSERT_CMP_HELPER(_a, _operator, _b, fmt, type) \
|
147
|
-
|
156
|
+
if (1) { \
|
148
157
|
type _a_value = (_a); \
|
149
158
|
type _b_value = (_b); \
|
150
159
|
if (!(_a_value _operator _b_value)) { \
|
151
160
|
TEST_ERROR("comparison failed: %" fmt " %s %" fmt, _a_value, #_operator, _b_value); \
|
152
161
|
} \
|
153
|
-
}
|
162
|
+
} else \
|
163
|
+
((void)0)
|
154
164
|
|
155
165
|
#define ASSERT_CMPINT(a, eq, b) ASSERT_CMP_HELPER(a, eq, b, "d", int)
|
156
166
|
#define ASSERT_CMPUINT(a, eq, b) ASSERT_CMP_HELPER(a, eq, b, "u", unsigned int)
|
@@ -184,7 +194,7 @@
|
|
184
194
|
((void)0)
|
185
195
|
|
186
196
|
#define ASSERT_EQUAL_BSON(expected, actual) \
|
187
|
-
|
197
|
+
if (1) { \
|
188
198
|
bson_t *_expected_bson = expected, *_actual_bson = actual; \
|
189
199
|
char *_expected_str, *_actual_str; \
|
190
200
|
_expected_str = bson_as_canonical_extended_json(_expected_bson, NULL); \
|
@@ -194,10 +204,11 @@
|
|
194
204
|
} \
|
195
205
|
bson_free(_actual_str); \
|
196
206
|
bson_free(_expected_str); \
|
197
|
-
}
|
207
|
+
} else \
|
208
|
+
((void)0)
|
198
209
|
|
199
210
|
#define ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(expected, actual) \
|
200
|
-
|
211
|
+
if (1) { \
|
201
212
|
bson_t _expected_bson, _actual_bson; \
|
202
213
|
char *_expected_str, *_actual_str; \
|
203
214
|
ASSERT(_mongocrypt_binary_to_bson(expected, &_expected_bson)); \
|
@@ -209,6 +220,7 @@
|
|
209
220
|
} \
|
210
221
|
bson_free(_actual_str); \
|
211
222
|
bson_free(_expected_str); \
|
212
|
-
}
|
223
|
+
} else \
|
224
|
+
((void)0)
|
213
225
|
|
214
226
|
#endif /* TEST_MONGOCRYPT_ASSERT_H */
|
@@ -35,7 +35,7 @@ static void _get_bytes(const void *in, char *out, int len) {
|
|
35
35
|
dest[-1] = '\0';
|
36
36
|
}
|
37
37
|
|
38
|
-
bool assert_excess_bytes_removed(char *key, char *wrapped, char *unwrapped, uint32_t type, bson_value_t *out) {
|
38
|
+
static bool assert_excess_bytes_removed(char *key, char *wrapped, char *unwrapped, uint32_t type, bson_value_t *out) {
|
39
39
|
_mongocrypt_buffer_t plaintext = {0};
|
40
40
|
_mongocrypt_marking_t marking = {0};
|
41
41
|
bson_iter_t iter;
|
@@ -48,13 +48,13 @@ bool assert_excess_bytes_removed(char *key, char *wrapped, char *unwrapped, uint
|
|
48
48
|
BSON_APPEND_INT32(&bson, "int_key", TEST_INT);
|
49
49
|
|
50
50
|
bson_iter_init_find(&iter, &bson, key);
|
51
|
-
memcpy(&marking.v_iter, &iter, sizeof(bson_iter_t));
|
51
|
+
memcpy(&marking.u.fle1.v_iter, &iter, sizeof(bson_iter_t));
|
52
52
|
|
53
|
-
bson_append_iter(&wrapper, "", 0, &marking.v_iter);
|
53
|
+
bson_append_iter(&wrapper, "", 0, &marking.u.fle1.v_iter);
|
54
54
|
_get_bytes(bson_get_data(&wrapper), actual, wrapper.len);
|
55
55
|
BSON_ASSERT(0 == strcmp(wrapped, actual));
|
56
56
|
|
57
|
-
_mongocrypt_buffer_from_iter(&plaintext, &(&marking)->v_iter);
|
57
|
+
_mongocrypt_buffer_from_iter(&plaintext, &(&marking)->u.fle1.v_iter);
|
58
58
|
_get_bytes(plaintext.data, actual, plaintext.len);
|
59
59
|
BSON_ASSERT(0 == strcmp(unwrapped, actual));
|
60
60
|
|
@@ -18,7 +18,7 @@
|
|
18
18
|
#include "mongocrypt-crypto-private.h"
|
19
19
|
#include "test-mongocrypt.h"
|
20
20
|
|
21
|
-
void _test_cache(_mongocrypt_tester_t *tester) {
|
21
|
+
static void _test_cache(_mongocrypt_tester_t *tester) {
|
22
22
|
_mongocrypt_cache_t cache;
|
23
23
|
mongocrypt_status_t *status;
|
24
24
|
bson_t *entry = BCON_NEW("a", "b"), *entry2 = BCON_NEW("c", "d");
|
@@ -221,4 +221,4 @@ void _mongocrypt_tester_install_cache(_mongocrypt_tester_t *tester) {
|
|
221
221
|
INSTALL_TEST(_test_cache);
|
222
222
|
INSTALL_TEST(_test_cache_expiration);
|
223
223
|
INSTALL_TEST(_test_cache_duplicates);
|
224
|
-
}
|
224
|
+
}
|
@@ -91,7 +91,7 @@ static void _test_malformed_ciphertext(_mongocrypt_tester_t *tester) {
|
|
91
91
|
mongocrypt_status_destroy(status);
|
92
92
|
}
|
93
93
|
|
94
|
-
void _test_ciphertext_algorithm(_mongocrypt_tester_t *tester) {
|
94
|
+
static void _test_ciphertext_algorithm(_mongocrypt_tester_t *tester) {
|
95
95
|
mongocrypt_t *crypt;
|
96
96
|
mongocrypt_ctx_t *ctx;
|
97
97
|
mongocrypt_status_t *status;
|
@@ -118,10 +118,10 @@ void _test_ciphertext_algorithm(_mongocrypt_tester_t *tester) {
|
|
118
118
|
ctx = mongocrypt_ctx_new(crypt);
|
119
119
|
ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "test", -1, TEST_FILE("./test/example/cmd.json")), ctx);
|
120
120
|
|
121
|
-
_mongocrypt_buffer_from_binary(&marking.key_id, TEST_BIN(16));
|
122
|
-
marking.key_id.subtype = BSON_SUBTYPE_UUID;
|
121
|
+
_mongocrypt_buffer_from_binary(&marking.u.fle1.key_id, TEST_BIN(16));
|
122
|
+
marking.u.fle1.key_id.subtype = BSON_SUBTYPE_UUID;
|
123
123
|
kb = &ctx->kb;
|
124
|
-
_mongocrypt_key_broker_add_test_key(kb, &marking.key_id);
|
124
|
+
_mongocrypt_key_broker_add_test_key(kb, &marking.u.fle1.key_id);
|
125
125
|
|
126
126
|
bson = BCON_NEW("v", "a", "v", "b");
|
127
127
|
bson_iter_init(&a_iter, bson);
|
@@ -131,26 +131,26 @@ void _test_ciphertext_algorithm(_mongocrypt_tester_t *tester) {
|
|
131
131
|
bson_iter_next(&b_iter);
|
132
132
|
|
133
133
|
/* Marking type = 1, plaintext = a */
|
134
|
-
marking.algorithm = 1;
|
135
|
-
memcpy(&marking.v_iter, &a_iter, sizeof(bson_iter_t));
|
134
|
+
marking.u.fle1.algorithm = 1;
|
135
|
+
memcpy(&marking.u.fle1.v_iter, &a_iter, sizeof(bson_iter_t));
|
136
136
|
res = _mongocrypt_marking_to_ciphertext((void *)kb, &marking, &type1_valueA, status);
|
137
137
|
ASSERT_OR_PRINT(res, status);
|
138
138
|
|
139
139
|
/* Marking type = 1, plaintext = a */
|
140
|
-
marking.algorithm = 1;
|
141
|
-
memcpy(&marking.v_iter, &a_iter, sizeof(bson_iter_t));
|
140
|
+
marking.u.fle1.algorithm = 1;
|
141
|
+
memcpy(&marking.u.fle1.v_iter, &a_iter, sizeof(bson_iter_t));
|
142
142
|
res = _mongocrypt_marking_to_ciphertext((void *)kb, &marking, &type1_valueA_again, status);
|
143
143
|
ASSERT_OR_PRINT(res, status);
|
144
144
|
|
145
145
|
/* Marking type = 2, plaintext = a */
|
146
|
-
marking.algorithm = 2;
|
147
|
-
memcpy(&marking.v_iter, &a_iter, sizeof(bson_iter_t));
|
146
|
+
marking.u.fle1.algorithm = 2;
|
147
|
+
memcpy(&marking.u.fle1.v_iter, &a_iter, sizeof(bson_iter_t));
|
148
148
|
res = _mongocrypt_marking_to_ciphertext((void *)kb, &marking, &type2_valueA, status);
|
149
149
|
ASSERT_OR_PRINT(res, status);
|
150
150
|
|
151
151
|
/* Marking type = 1, plaintext = b */
|
152
|
-
marking.algorithm = 1;
|
153
|
-
memcpy(&marking.v_iter, &b_iter, sizeof(bson_iter_t));
|
152
|
+
marking.u.fle1.algorithm = 1;
|
153
|
+
memcpy(&marking.u.fle1.v_iter, &b_iter, sizeof(bson_iter_t));
|
154
154
|
res = _mongocrypt_marking_to_ciphertext((void *)kb, &marking, &type1_valueB, status);
|
155
155
|
ASSERT_OR_PRINT(res, status);
|
156
156
|
|
@@ -184,7 +184,7 @@ void _test_ciphertext_algorithm(_mongocrypt_tester_t *tester) {
|
|
184
184
|
mongocrypt_status_destroy(status);
|
185
185
|
}
|
186
186
|
|
187
|
-
void _test_ciphertext_serialize_associated_data(_mongocrypt_tester_t *tester) {
|
187
|
+
static void _test_ciphertext_serialize_associated_data(_mongocrypt_tester_t *tester) {
|
188
188
|
_mongocrypt_ciphertext_t ciphertext;
|
189
189
|
_mongocrypt_buffer_t serialized;
|
190
190
|
/* Expected associated data is:
|
@@ -17,59 +17,50 @@
|
|
17
17
|
#include "test-mongocrypt.h"
|
18
18
|
|
19
19
|
static void _test_cleanup_success(_mongocrypt_tester_t *tester) {
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, TEST_FILE("./test/data/cleanup/success/collinfo.json")), ctx);
|
33
|
-
ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx);
|
34
|
-
}
|
35
|
-
|
36
|
-
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS);
|
37
|
-
{
|
38
|
-
ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx,
|
39
|
-
TEST_FILE("./test/data/keys/"
|
40
|
-
"12345678123498761234123456789012-local-document.json")),
|
41
|
-
ctx);
|
42
|
-
ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx,
|
43
|
-
TEST_FILE("./test/data/keys/"
|
44
|
-
"ABCDEFAB123498761234123456789012-local-document.json")),
|
45
|
-
ctx);
|
46
|
-
ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx,
|
47
|
-
TEST_FILE("./test/data/keys/"
|
48
|
-
"12345678123498761234123456789013-local-document.json")),
|
49
|
-
ctx);
|
50
|
-
ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx);
|
51
|
-
}
|
52
|
-
|
53
|
-
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_READY);
|
54
|
-
{
|
55
|
-
mongocrypt_binary_t *out = mongocrypt_binary_new();
|
56
|
-
ASSERT_OK(mongocrypt_ctx_finalize(ctx, out), ctx);
|
57
|
-
if (use_range_v2) {
|
58
|
-
ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(
|
59
|
-
TEST_FILE("./test/data/cleanup/success/encrypted-payload-range-v2.json"),
|
60
|
-
out);
|
61
|
-
} else {
|
62
|
-
ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/cleanup/success/encrypted-payload.json"),
|
63
|
-
out);
|
64
|
-
}
|
65
|
-
mongocrypt_binary_destroy(out);
|
66
|
-
}
|
67
|
-
|
68
|
-
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_DONE);
|
69
|
-
|
70
|
-
mongocrypt_ctx_destroy(ctx);
|
71
|
-
mongocrypt_destroy(crypt);
|
20
|
+
mongocrypt_t *crypt;
|
21
|
+
mongocrypt_ctx_t *ctx;
|
22
|
+
|
23
|
+
crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT);
|
24
|
+
ctx = mongocrypt_ctx_new(crypt);
|
25
|
+
|
26
|
+
ASSERT_OK(mongocrypt_ctx_encrypt_init(ctx, "db", -1, TEST_FILE("./test/data/cleanup/success/cmd.json")), ctx);
|
27
|
+
|
28
|
+
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_COLLINFO);
|
29
|
+
{
|
30
|
+
ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx, TEST_FILE("./test/data/cleanup/success/collinfo.json")), ctx);
|
31
|
+
ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx);
|
72
32
|
}
|
33
|
+
|
34
|
+
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_MONGO_KEYS);
|
35
|
+
{
|
36
|
+
ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx,
|
37
|
+
TEST_FILE("./test/data/keys/"
|
38
|
+
"12345678123498761234123456789012-local-document.json")),
|
39
|
+
ctx);
|
40
|
+
ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx,
|
41
|
+
TEST_FILE("./test/data/keys/"
|
42
|
+
"ABCDEFAB123498761234123456789012-local-document.json")),
|
43
|
+
ctx);
|
44
|
+
ASSERT_OK(mongocrypt_ctx_mongo_feed(ctx,
|
45
|
+
TEST_FILE("./test/data/keys/"
|
46
|
+
"12345678123498761234123456789013-local-document.json")),
|
47
|
+
ctx);
|
48
|
+
ASSERT_OK(mongocrypt_ctx_mongo_done(ctx), ctx);
|
49
|
+
}
|
50
|
+
|
51
|
+
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_READY);
|
52
|
+
{
|
53
|
+
mongocrypt_binary_t *out = mongocrypt_binary_new();
|
54
|
+
ASSERT_OK(mongocrypt_ctx_finalize(ctx, out), ctx);
|
55
|
+
ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/cleanup/success/encrypted-payload-range-v2.json"),
|
56
|
+
out);
|
57
|
+
mongocrypt_binary_destroy(out);
|
58
|
+
}
|
59
|
+
|
60
|
+
ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_DONE);
|
61
|
+
|
62
|
+
mongocrypt_ctx_destroy(ctx);
|
63
|
+
mongocrypt_destroy(crypt);
|
73
64
|
}
|
74
65
|
|
75
66
|
static void _test_cleanup_nonlocal_kms(_mongocrypt_tester_t *tester) {
|
@@ -135,7 +126,8 @@ static void _test_cleanup_nonlocal_kms(_mongocrypt_tester_t *tester) {
|
|
135
126
|
{
|
136
127
|
mongocrypt_binary_t *out = mongocrypt_binary_new();
|
137
128
|
ASSERT_OK(mongocrypt_ctx_finalize(ctx, out), ctx);
|
138
|
-
ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/cleanup/success/encrypted-payload.json"),
|
129
|
+
ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/cleanup/success/encrypted-payload-range-v2.json"),
|
130
|
+
out);
|
139
131
|
mongocrypt_binary_destroy(out);
|
140
132
|
}
|
141
133
|
|
@@ -269,7 +261,8 @@ static void _test_cleanup_need_kms_credentials(_mongocrypt_tester_t *tester) {
|
|
269
261
|
{
|
270
262
|
mongocrypt_binary_t *out = mongocrypt_binary_new();
|
271
263
|
ASSERT_OK(mongocrypt_ctx_finalize(ctx, out), ctx);
|
272
|
-
ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/cleanup/success/encrypted-payload.json"),
|
264
|
+
ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/cleanup/success/encrypted-payload-range-v2.json"),
|
265
|
+
out);
|
273
266
|
mongocrypt_binary_destroy(out);
|
274
267
|
}
|
275
268
|
|
@@ -353,7 +346,8 @@ static void _test_cleanup_from_encrypted_field_config_map(_mongocrypt_tester_t *
|
|
353
346
|
{
|
354
347
|
mongocrypt_binary_t *out = mongocrypt_binary_new();
|
355
348
|
ASSERT_OK(mongocrypt_ctx_finalize(ctx, out), ctx);
|
356
|
-
ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/cleanup/success/encrypted-payload.json"),
|
349
|
+
ASSERT_MONGOCRYPT_BINARY_EQUAL_BSON(TEST_FILE("./test/data/cleanup/success/encrypted-payload-range-v2.json"),
|
350
|
+
out);
|
357
351
|
mongocrypt_binary_destroy(out);
|
358
352
|
}
|
359
353
|
|