libmongocrypt-helper 1.8.0.0.1001 → 1.11.0.0.1001
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/libmongocrypt/libmongocrypt/CHANGELOG.md +33 -0
- data/ext/libmongocrypt/libmongocrypt/CMakeLists.txt +12 -1
- data/ext/libmongocrypt/libmongocrypt/CODEOWNERS +1 -4
- data/ext/libmongocrypt/libmongocrypt/Earthfile +151 -3
- data/ext/libmongocrypt/libmongocrypt/README.md +36 -40
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/CMakeLists.txt +1 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Driver.snk +0 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/AssemblyInfo.cs +2 -2
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/Binary.cs +16 -2
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptClientFactory.cs +8 -4
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/Library.cs +10 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/LibraryLoader.cs +81 -44
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/MongoDB.Libmongocrypt.csproj +2 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/MongoDB.Libmongocrypt.Test.csproj +2 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test32/MongoDB.Libmongocrypt.Test32.csproj +2 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/README.md +3 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/Scripts/build.cake +21 -26
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/Scripts/build.config +3 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/Scripts/build.sh +0 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/benchmarks/build.gradle.kts +28 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/benchmarks/src/main/java/com/mongodb/crypt/benchmark/BenchmarkRunner.java +217 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/benchmarks/src/main/resources/keyDocument.json +24 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/build.gradle.kts +21 -6
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradle/wrapper/gradle-wrapper.properties +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradlew +154 -108
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradlew.bat +7 -18
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/settings.gradle.kts +1 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/CAPI.java +41 -6
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/CAPIHelper.java +5 -5
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/CipherCallback.java +27 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptImpl.java +34 -19
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoExplicitEncryptOptions.java +6 -4
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/resources/META-INF/native-image/jni-config.json +180 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/resources/META-INF/native-image/reflect-config.json +134 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/java/com/mongodb/crypt/capi/MongoCryptTest.java +44 -2
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2/int32/encrypted-payload.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2/int32/rangeopts.json +3 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/README.md +4 -900
- data/ext/libmongocrypt/libmongocrypt/bindings/python/CHANGELOG.rst +60 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/README.rst +41 -20
- data/ext/libmongocrypt/libmongocrypt/bindings/python/RELEASE.rst +6 -24
- data/ext/libmongocrypt/libmongocrypt/bindings/python/build-manylinux-wheel.sh +4 -13
- data/ext/libmongocrypt/libmongocrypt/bindings/python/hatch_build.py +36 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/libmongocrypt-version.txt +1 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/__init__.py +2 -2
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/asynchronous/auto_encrypter.py +61 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/asynchronous/credentials.py +156 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/asynchronous/explicit_encrypter.py +156 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/asynchronous/state_machine.py +149 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/auto_encrypter.py +2 -46
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/binary.py +14 -17
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/binding.py +107 -61
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/compat.py +6 -4
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/credentials.py +2 -121
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/crypto.py +31 -20
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/errors.py +2 -2
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/explicit_encrypter.py +2 -233
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/mongocrypt.py +168 -238
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/options.py +265 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/state_machine.py +2 -141
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/synchronous/auto_encrypter.py +61 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/synchronous/credentials.py +156 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/synchronous/explicit_encrypter.py +156 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/synchronous/state_machine.py +149 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/version.py +2 -2
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pyproject.toml +118 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/release.sh +97 -61
- data/ext/libmongocrypt/libmongocrypt/bindings/python/{test-requirements.txt → requirements-test.txt} +4 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/requirements.txt +4 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/sbom.json +76 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/strip_header.py +6 -7
- data/ext/libmongocrypt/libmongocrypt/bindings/python/synchro.py +64 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/__init__.py +1 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/collection-info.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/command.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/compact/success/encrypted-payload.json +21 -21
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/encrypted-command-reply.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/encrypted-field-config-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/fle2-find-range-explicit-v2/int32/encrypted-payload.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/fle2-find-range-explicit-v2/int32/rangeopts.json +3 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/fle2-find-rangePreview-explicit/int32/rangeopts.json +11 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/fle2-find-rangePreview-explicit/int32/value-to-encrypt.json +20 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/key-document-azure.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/key-document-gcp.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/key-document.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/key-filter.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/list-collections-filter.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/mongocryptd-command.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/mongocryptd-reply.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/schema-map.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/performance/keyDocument.json +24 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/performance/perf_test.py +165 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/test_binding.py +8 -12
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/test_crypto.py +9 -11
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/test_mongocrypt.py +988 -340
- data/ext/libmongocrypt/libmongocrypt/bindings/python/update-sbom.sh +14 -0
- data/ext/libmongocrypt/libmongocrypt/cmake/FetchMongoC.cmake +19 -1
- data/ext/libmongocrypt/libmongocrypt/cmake/ImportBSON.cmake +23 -0
- data/ext/libmongocrypt/libmongocrypt/cmake/IntelDFP.cmake +19 -227
- data/ext/libmongocrypt/libmongocrypt/cmake/Patch.cmake +54 -0
- data/ext/libmongocrypt/libmongocrypt/doc/img/cli-icon.png +0 -0
- data/ext/libmongocrypt/libmongocrypt/doc/img/reference-targets.png +0 -0
- data/ext/libmongocrypt/libmongocrypt/doc/releasing.md +153 -0
- data/ext/libmongocrypt/libmongocrypt/etc/calc_release_version.py +61 -28
- data/ext/libmongocrypt/libmongocrypt/etc/calc_release_version_selftest.sh +73 -0
- data/ext/libmongocrypt/libmongocrypt/etc/cyclonedx.sbom.json +108 -0
- data/ext/libmongocrypt/libmongocrypt/etc/format.sh +1 -1
- data/ext/libmongocrypt/libmongocrypt/etc/libbson-remove-GCC-diagnostic-pragma.patch +27 -0
- data/ext/libmongocrypt/libmongocrypt/etc/mongo-inteldfp-alpine-arm-fix.patch +17 -0
- data/ext/libmongocrypt/libmongocrypt/etc/packager.py +120 -91
- data/ext/libmongocrypt/libmongocrypt/etc/purls.txt +14 -0
- data/ext/libmongocrypt/libmongocrypt/etc/repo_config.yaml +56 -0
- data/ext/libmongocrypt/libmongocrypt/etc/silk-create-asset-group.sh +70 -0
- data/ext/libmongocrypt/libmongocrypt/etc/ssdlc_compliance_report.md +37 -0
- data/ext/libmongocrypt/libmongocrypt/etc/third_party_vulnerabilities.md +42 -0
- data/ext/libmongocrypt/libmongocrypt/integrating.md +18 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/CMakeLists.txt +11 -3
- 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 +17 -0
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_reader_writer_private.h +6 -0
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_request.c +211 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_response.c +163 -0
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_tag_type_private.h +2 -1
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_kmip_request.h +17 -0
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_kmip_response.h +6 -0
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_port.c +3 -2
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request.c +4 -2
- data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request_str.c +2 -2
- data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kmip_reader_writer.c +23 -2
- data/ext/libmongocrypt/libmongocrypt/src/crypto/libcrypto.c +13 -10
- data/ext/libmongocrypt/libmongocrypt/src/mc-dec128.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mc-efc-private.h +16 -2
- data/ext/libmongocrypt/libmongocrypt/src/mc-efc.c +94 -6
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h +15 -5
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder.c +114 -53
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-private-v2.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-private.h +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-v2.c +2 -2
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload.c +2 -2
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-private-v2.h +21 -6
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-private.h +5 -5
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-v2.c +38 -2
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-private-v2.h +20 -7
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-private.h +8 -8
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-v2.c +89 -1
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-v2.c +3 -3
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev.c +1 -23
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-rfds-private.h +4 -3
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-rfds.c +15 -12
- data/ext/libmongocrypt/libmongocrypt/src/mc-optional-private.h +11 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation-private.h +16 -6
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation.c +64 -22
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding-private.h +23 -4
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding.c +359 -65
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-generator.template.h +26 -14
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-private.h +17 -6
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover.c +31 -13
- data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts-private.h +16 -3
- data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts.c +259 -63
- data/ext/libmongocrypt/libmongocrypt/src/mc-tokens-private.h +40 -24
- data/ext/libmongocrypt/libmongocrypt/src/mc-tokens.c +57 -13
- data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.h +17 -0
- data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.test.cpp +5 -0
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-binary-private.h +0 -5
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-buffer.c +5 -7
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-key.c +1 -0
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-oauth-private.h +16 -18
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-oauth.c +105 -76
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-crypto.c +9 -3
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-datakey.c +170 -89
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-decrypt.c +5 -5
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-encrypt.c +505 -124
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-private.h +31 -6
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx.c +81 -13
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-dll-private.h +7 -0
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kek-private.h +5 -1
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kek.c +161 -103
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-broker-private.h +2 -7
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-broker.c +191 -69
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kms-ctx-private.h +50 -15
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kms-ctx.c +365 -69
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking-private.h +2 -1
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking.c +200 -107
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts-private.h +50 -5
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts.c +591 -15
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-private.h +6 -13
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-util.c +3 -2
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.c +47 -234
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.h +75 -24
- data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_dll.c +18 -2
- data/ext/libmongocrypt/libmongocrypt/src/os_win/os_dll.c +4 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/bypassQueryAnalysis/payload.json +53 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/jsonSchema/cmd-to-mongocryptd.json +23 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/jsonSchema/cmd.json +20 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/simple/cmd-to-mongocryptd.json +50 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/simple/cmd.json +20 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/simple/collinfo.json +44 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/simple/encrypted-field-map.json +24 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/simple/encrypted-payload-pattern.json +53 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/simple/mongocryptd-reply.json +62 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/unencrypted/cmd-to-mongocryptd.json +30 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/unencrypted/cmd.json +17 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/unencrypted/mongocryptd-reply.json +39 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/bulkWrite/unencrypted/payload.json +21 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/missing-key-id/collinfo.json +20 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/no-fields/collinfo.json +9 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/no-fields/encrypted-payload.json +4 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/success/cmd.json +1 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/success/collinfo.json +63 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/success/encrypted-field-config-map.json +61 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/success/encrypted-payload-range-v2.json +37 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/success/encrypted-payload.json +29 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/anchor-pad/cmd.json +1 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/anchor-pad/collinfo.json +64 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/anchor-pad/encrypted-payload-range-v2.json +105 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/anchor-pad/encrypted-payload.json +30 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/no-range/cmd.json +1 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/no-range/collinfo.json +49 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/no-range/encrypted-field-config-map.json +47 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/no-range/encrypted-payload.json +23 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/collinfo.json +15 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/encrypted-field-config-map.json +10 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/encrypted-payload-range-v2.json +104 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/encrypted-payload.json +6 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-csfle/collinfo.json +4 -4
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-csfle/encrypted-payload.json +3 -3
- data/ext/libmongocrypt/libmongocrypt/test/data/kms-azure/decrypt-response.txt +16 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/kms-azure/encrypt-response.txt +16 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/kms-azure/oauth-response.txt +19 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/no-trimFactor/find/cmd.json +9 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/no-trimFactor/find/encrypted-field-map.json +19 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/no-trimFactor/find/encrypted-payload.json +62 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/no-trimFactor/find/mongocryptd-reply.json +69 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/no-trimFactor/insert/cmd.json +11 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/no-trimFactor/insert/encrypted-field-map.json +19 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/no-trimFactor/insert/encrypted-payload.json +40 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/no-trimFactor/insert/mongocryptd-reply.json +47 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-edge-generation/edges_decimal128.cstruct +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/range-edge-generation/edges_double.cstruct +8637 -7958
- data/ext/libmongocrypt/libmongocrypt/test/data/range-edge-generation/edges_int32.cstruct +5522 -1382
- data/ext/libmongocrypt/libmongocrypt/test/data/range-edge-generation/edges_int64.cstruct +5042 -1262
- data/ext/libmongocrypt/libmongocrypt/test/data/range-min-cover/mincover_decimal128.cstruct +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/range-min-cover/mincover_decimal128_precision.cstruct +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/range-min-cover/mincover_double.cstruct +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/range-min-cover/mincover_double_precision.cstruct +2 -2
- data/ext/libmongocrypt/libmongocrypt/test/data/range-min-cover/mincover_int32.cstruct +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/range-min-cover/mincover_int64.cstruct +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/auto-find-int32/cmd.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/auto-find-int32/encrypted-field-map.json +19 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/auto-find-int32/encrypted-payload.json +53 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/auto-find-int32/mongocryptd-reply.json +58 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/auto-insert-int32/cmd.json +11 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/auto-insert-int32/encrypted-field-map.json +19 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/auto-insert-int32/encrypted-payload.json +40 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/auto-insert-int32/mongocryptd-reply.json +45 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/explicit-find-int32/expected.json +26 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/explicit-find-int32/to-encrypt.json +20 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/explicit-find-int32-defaults/expected.json +26 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/explicit-find-int32-defaults/to-encrypt.json +20 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/explicit-insert-double/expected.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/explicit-insert-int32/expected.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/range-sends-cryptoParams/explicit-insert-int32-defaults/expected.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/tokens/README.md +7 -4
- data/ext/libmongocrypt/libmongocrypt/test/data/tokens/mc.json +9 -5
- data/ext/libmongocrypt/libmongocrypt/test/data/tokens/server.json +9 -5
- data/ext/libmongocrypt/libmongocrypt/test/example-state-machine.c +1 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-gcp-auth.c +8 -8
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-efc.c +6 -4
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-range-payload-v2.c +43 -3
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup-v2.c +76 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-rfds.c +5 -5
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-edge-generation.c +89 -14
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-encoding.c +342 -76
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-mincover.c +94 -12
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-rangeopts.c +205 -7
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-tokens.c +49 -23
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.c +16 -19
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.h +22 -1
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cache-oauth.c +94 -11
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cleanup.c +374 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-compact.c +121 -42
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-hooks.c +134 -4
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-std-hooks.c +40 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-std-hooks.h +16 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-csfle-lib.c +11 -11
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-decrypt.c +8 -5
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-encrypt.c +922 -92
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-rewrap-many-datakey.c +2 -2
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-setopt.c +114 -12
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-datakey.c +14 -9
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kms-ctx.c +424 -3
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-log.c +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-marking.c +447 -28
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-opts.c +42 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-traverse-util.c +30 -26
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-util.c +7 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-util.h +3 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.c +66 -14
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.h +11 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-named-kms-providers.c +2381 -0
- data/ext/libmongocrypt/libmongocrypt/test/util/HELP.autogen +3 -1
- data/ext/libmongocrypt/libmongocrypt/test/util/README.md +1 -0
- data/ext/libmongocrypt/libmongocrypt/test/util/csfle.c +4 -0
- data/ext/libmongocrypt/libmongocrypt/test/util/make_includes.py +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/util/util.c +38 -3
- data/lib/libmongocrypt_helper/version.rb +2 -2
- metadata +112 -106
- checksums.yaml.gz.sig +0 -0
- data/ext/libmongocrypt/libmongocrypt/VERSION_CURRENT +0 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/cs.sln +0 -79
- data/ext/libmongocrypt/libmongocrypt/bindings/node/CHANGELOG.md +0 -105
- data/ext/libmongocrypt/libmongocrypt/bindings/node/LICENSE +0 -201
- data/ext/libmongocrypt/libmongocrypt/bindings/node/binding.gyp +0 -79
- data/ext/libmongocrypt/libmongocrypt/bindings/node/etc/README.hbs +0 -44
- data/ext/libmongocrypt/libmongocrypt/bindings/node/etc/build-static.sh +0 -36
- data/ext/libmongocrypt/libmongocrypt/bindings/node/index.d.ts +0 -641
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/autoEncrypter.js +0 -420
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/buffer_pool.js +0 -123
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/clientEncryption.js +0 -821
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/common.js +0 -98
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/cryptoCallbacks.js +0 -87
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/errors.js +0 -75
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/index.js +0 -73
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/mongocryptdManager.js +0 -66
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/aws.js +0 -26
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/azure.js +0 -178
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/gcp.js +0 -24
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/index.js +0 -54
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/utils.js +0 -39
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/stateMachine.js +0 -492
- data/ext/libmongocrypt/libmongocrypt/bindings/node/package-lock.json +0 -15302
- data/ext/libmongocrypt/libmongocrypt/bindings/node/package.json +0 -100
- data/ext/libmongocrypt/libmongocrypt/bindings/node/src/mongocrypt.cc +0 -956
- data/ext/libmongocrypt/libmongocrypt/bindings/node/src/mongocrypt.h +0 -114
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/autoEncrypter.test.js +0 -950
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/buffer_pool.test.js +0 -91
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/clientEncryption.test.js +0 -1093
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/common.test.js +0 -94
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/cryptoCallbacks.test.js +0 -240
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/README.md +0 -5
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/cmd.json +0 -6
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/collection-info.json +0 -37
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/encrypted-document-nested.json +0 -8
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/encrypted-document.json +0 -11
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/encryptedFields.json +0 -30
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/key-document.json +0 -32
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/key1-document.json +0 -30
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/mongocryptd-reply.json +0 -18
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/index.test.js +0 -45
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/mongocryptdManager.test.js +0 -48
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/providers/credentialsProvider.test.js +0 -551
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/release.test.js +0 -66
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/requirements.helper.js +0 -51
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/stateMachine.test.js +0 -331
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/tools/chai-addons.js +0 -8
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/tools/mongodb_reporter.js +0 -325
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/types/index.test-d.ts +0 -63
- data/ext/libmongocrypt/libmongocrypt/bindings/python/setup.py +0 -89
- data/ext/libmongocrypt/libmongocrypt/debian/build_snapshot.sh +0 -79
- data/ext/libmongocrypt/libmongocrypt/debian/changelog +0 -105
- data/ext/libmongocrypt/libmongocrypt/debian/compat +0 -1
- data/ext/libmongocrypt/libmongocrypt/debian/control +0 -41
- data/ext/libmongocrypt/libmongocrypt/debian/copyright +0 -129
- data/ext/libmongocrypt/libmongocrypt/debian/gbp.conf +0 -23
- data/ext/libmongocrypt/libmongocrypt/debian/libmongocrypt-dev.dirs +0 -2
- data/ext/libmongocrypt/libmongocrypt/debian/libmongocrypt-dev.install +0 -5
- data/ext/libmongocrypt/libmongocrypt/debian/libmongocrypt0.dirs +0 -1
- data/ext/libmongocrypt/libmongocrypt/debian/libmongocrypt0.install +0 -1
- data/ext/libmongocrypt/libmongocrypt/debian/rules +0 -46
- data/ext/libmongocrypt/libmongocrypt/debian/source/format +0 -1
- data/ext/libmongocrypt/libmongocrypt/debian/source/lintian-overrides +0 -3
- data/ext/libmongocrypt/libmongocrypt/debian/source/options +0 -1
- data/ext/libmongocrypt/libmongocrypt/debian/watch +0 -3
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/mongocryptd-reply.json +0 -72
- data.tar.gz.sig +0 -1
- metadata.gz.sig +0 -0
- /data/ext/libmongocrypt/libmongocrypt/{bindings/node/test/data/kms-decrypt-reply.txt → test/data/kms-aws/decrypt-response.txt} +0 -0
- /data/ext/libmongocrypt/libmongocrypt/{bindings/node/test/data/kms-encrypt-reply.txt → test/data/kms-aws/encrypt-response.txt} +0 -0
- /data/ext/libmongocrypt/libmongocrypt/test/data/{gcp-auth → kms-gcp}/decrypt-response.txt +0 -0
- /data/ext/libmongocrypt/libmongocrypt/test/data/{gcp-auth → kms-gcp}/encrypt-response.txt +0 -0
- /data/ext/libmongocrypt/libmongocrypt/test/data/{gcp-auth → kms-gcp}/oauth-response.txt +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d52da7e268e39f57d0f06e5056eac9ca78cbc90d7f4088a4c905d72e3f8997e2
|
4
|
+
data.tar.gz: 5d68d759ad42dc16bd8c3818850561ce294bd08615c2938d5ade40a8b755d5d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01a3dbefc3f7621c0acf918e2651f19057334f4acbdc20246e7e8dac7c2119269208202716fd19738a087d8688f38befad44ef85b1594da237f3bfd9be4c9744
|
7
|
+
data.tar.gz: 53c3fc9028f38a3a42844989e6783d36db4f714bd5eb0b837120ae9fb25d51dfad3b1e8f2ab7e69d027ed57648daeaf7c6781370e0021c300bec2cdcd37ba48e
|
@@ -1,4 +1,37 @@
|
|
1
1
|
# ChangeLog
|
2
|
+
## 1.11.0
|
3
|
+
### New features
|
4
|
+
- Support `range` algorithm as stable.
|
5
|
+
### Deprecated
|
6
|
+
- The Windows download URLs for [stable](https://s3.amazonaws.com/mciuploads/libmongocrypt/windows/latest_release/libmongocrypt.tar.gz) and [unstable](https://s3.amazonaws.com/mciuploads/libmongocrypt/windows/latest_release/libmongocrypt_unstable.tar.gz) are now deprecated. See the GitHub Release page for Windows downloads.
|
7
|
+
## 1.10.1
|
8
|
+
## Fixed
|
9
|
+
- Document `range` algorithm as unstable.
|
10
|
+
## 1.10.0
|
11
|
+
### New features
|
12
|
+
- Support KMIP `delegated` option.
|
13
|
+
- Support processing `bulkWrite` command.
|
14
|
+
- Support `range` algorithm.
|
15
|
+
## 1.9.1
|
16
|
+
### New features
|
17
|
+
- Add Debian 12 packages
|
18
|
+
## 1.9.0
|
19
|
+
### New features
|
20
|
+
- Support named KMS providers.
|
21
|
+
- Add `arm64` Debian packages
|
22
|
+
## Fixed
|
23
|
+
- Fix `arm64` Alpine build.
|
24
|
+
## 1.8.4
|
25
|
+
### Fixed
|
26
|
+
- Fix `aarch64` packages for RHEL 8, RHEL 9, Amazon 2023, and Amazon 2
|
27
|
+
## 1.8.3
|
28
|
+
### Improvements
|
29
|
+
- Include packages for RHEL 8, RHEL 9, and Amazon 2023
|
30
|
+
## 1.8.2
|
31
|
+
### Fixed
|
32
|
+
- Fix possible leaks in Queryable Encryption in errors on malformed data.
|
33
|
+
## 1.8.1
|
34
|
+
- Bypass search index management commands in automatic encryption
|
2
35
|
## 1.8.0
|
3
36
|
This release adds stable support of the Queryable Encryption (QE) feature for the "Indexed" and "Unindexed" algorithms.
|
4
37
|
## 1.8.0-alpha1
|
@@ -7,6 +7,10 @@ elseif (DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
|
|
7
7
|
message (WARNING "The CMAKE_MSVC_RUNTIME_LIBRARY variable is set, but CMake is too old to understand it")
|
8
8
|
endif ()
|
9
9
|
|
10
|
+
if (POLICY CMP0135)
|
11
|
+
cmake_policy (SET CMP0135 NEW)
|
12
|
+
endif ()
|
13
|
+
|
10
14
|
project (mongocrypt C)
|
11
15
|
|
12
16
|
# Used for the csfle-markup util:
|
@@ -20,7 +24,7 @@ option (ENABLE_PIC
|
|
20
24
|
ON
|
21
25
|
)
|
22
26
|
option (ENABLE_BUILD_FOR_PPA "Maintainer-only option for preparing PPA build" OFF)
|
23
|
-
option (ENABLE_ONLINE_TESTS "Enable online tests and the csfle utility" ON)
|
27
|
+
option (ENABLE_ONLINE_TESTS "Enable online tests and the csfle utility. Requires libmongoc." ON)
|
24
28
|
|
25
29
|
if (ENABLE_WINDOWS_STATIC_RUNTIME)
|
26
30
|
if (POLICY CMP0091)
|
@@ -69,6 +73,7 @@ if (ENABLE_MORE_WARNINGS_AS_ERRORS)
|
|
69
73
|
msvc:/W3 msvc:/WX msvc:/wd4996 msvc:/wd4359
|
70
74
|
gnu-like:-Wall gnu-like:-Werror
|
71
75
|
gnu-like:-Wswitch-enum gnu-like:-Wswitch-default
|
76
|
+
gnu-like:-Wsign-compare
|
72
77
|
)
|
73
78
|
add_link_options (
|
74
79
|
# Enable link-time warnings. VS 2015 sees LNK4099 spuriously, but it is a
|
@@ -420,6 +425,9 @@ if (BUILD_TESTING)
|
|
420
425
|
INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/src"
|
421
426
|
LINK_LIBRARIES _mongocrypt::libbson_for_static
|
422
427
|
COMPILE_FEATURES cxx_std_11
|
428
|
+
# Define `__STDC_LIMIT_MACROS` in libbson to define integer macros (e.g. SIZE_MAX) when including in C++ code.
|
429
|
+
# C99 standard notes: "C++ implementations should define these macros only when __STDC_LIMIT_MACROS is defined before <stdint.h> is included."
|
430
|
+
COMPILE_DEFINITIONS __STDC_LIMIT_MACROS
|
423
431
|
PREFIX ""
|
424
432
|
)
|
425
433
|
|
@@ -473,6 +481,7 @@ set (TEST_MONGOCRYPT_SOURCES
|
|
473
481
|
test/test-mongocrypt-cache.c
|
474
482
|
test/test-mongocrypt-cache-oauth.c
|
475
483
|
test/test-mongocrypt-ciphertext.c
|
484
|
+
test/test-mongocrypt-cleanup.c
|
476
485
|
test/test-mongocrypt-compact.c
|
477
486
|
test/test-mongocrypt-crypto.c
|
478
487
|
test/test-mongocrypt-crypto-hooks.c
|
@@ -494,10 +503,12 @@ set (TEST_MONGOCRYPT_SOURCES
|
|
494
503
|
test/test-mongocrypt-local-kms.c
|
495
504
|
test/test-mongocrypt-log.c
|
496
505
|
test/test-mongocrypt-marking.c
|
506
|
+
test/test-mongocrypt-opts.c
|
497
507
|
test/test-mongocrypt-status.c
|
498
508
|
test/test-mongocrypt-traverse-util.c
|
499
509
|
test/test-mongocrypt-util.c
|
500
510
|
test/test-mongocrypt.c
|
511
|
+
test/test-named-kms-providers.c
|
501
512
|
)
|
502
513
|
|
503
514
|
# Define test-mongocrypt
|
@@ -1,10 +1,7 @@
|
|
1
1
|
# Code Owners will automatically be added as reviewers on PRs
|
2
2
|
|
3
|
-
# NodeJS Bindings
|
4
|
-
bindings/node @nbbeeken @durran @baileympearson @dariakp @addaleax
|
5
|
-
|
6
3
|
# Python Bindings
|
7
|
-
bindings/python @
|
4
|
+
bindings/python @mongodb/dbx-python
|
8
5
|
|
9
6
|
# Java Bindings
|
10
7
|
bindings/java @jyemin @rozza
|
@@ -46,6 +46,7 @@
|
|
46
46
|
# • deb9 - Debian 9.2
|
47
47
|
# • deb10 - Debian 10.0
|
48
48
|
# • deb11 - Debian 11.0
|
49
|
+
# • deb12 - Debian 12.0
|
49
50
|
# • sles15 - OpenSUSE Leap 15.0
|
50
51
|
# • alpine - Alpine Linux 3.18
|
51
52
|
#
|
@@ -179,6 +180,11 @@ ENV_DEBIAN:
|
|
179
180
|
COMMAND
|
180
181
|
ARG --required version
|
181
182
|
FROM +init --base=docker.io/library/debian:$version
|
183
|
+
IF [ $version = "9.2" ]
|
184
|
+
# Update source list for archived Debian stretch packages.
|
185
|
+
# Refer: https://unix.stackexchange.com/a/743865/260858
|
186
|
+
RUN echo "deb http://archive.debian.org/debian stretch main" > /etc/apt/sources.list
|
187
|
+
END
|
182
188
|
DO +DEBIAN_SETUP
|
183
189
|
|
184
190
|
env.deb9:
|
@@ -196,13 +202,17 @@ env.deb11:
|
|
196
202
|
# A Debian 11.0 environment
|
197
203
|
DO +ENV_DEBIAN --version 11.0
|
198
204
|
|
205
|
+
env.deb12:
|
206
|
+
# A Debian 12.0 environment
|
207
|
+
DO +ENV_DEBIAN --version 12.0
|
208
|
+
|
199
209
|
env.sles15:
|
200
210
|
# An OpenSUSE Leap 15.0 environment.
|
201
211
|
FROM +init --base=docker.io/opensuse/leap:15.0
|
202
212
|
DO +SLES_SETUP
|
203
213
|
|
204
214
|
env.alpine:
|
205
|
-
FROM +init --base=docker.io/library/alpine:3.
|
215
|
+
FROM +init --base=docker.io/library/alpine:3.18
|
206
216
|
DO +ALPINE_SETUP
|
207
217
|
|
208
218
|
# Utility: Warm-up obtaining CMake and Ninja for the build. This is usually
|
@@ -249,7 +259,7 @@ BUILD_EXAMPLE_STATE_MACHINE:
|
|
249
259
|
RUN cd /s && /s/example-state-machine
|
250
260
|
|
251
261
|
rpm-build:
|
252
|
-
FROM +init --base fedora:
|
262
|
+
FROM +init --base fedora:38
|
253
263
|
GIT CLONE https://src.fedoraproject.org/rpms/libmongocrypt.git /R
|
254
264
|
# Install the packages listed by "BuildRequires" and rpm-build:
|
255
265
|
RUN __install $(awk '/^BuildRequires:/ { print $2 }' /R/libmongocrypt.spec) \
|
@@ -265,7 +275,7 @@ rpm-build:
|
|
265
275
|
|
266
276
|
rpm-install-runtime:
|
267
277
|
# Install the runtime RPM
|
268
|
-
FROM +init --base fedora:
|
278
|
+
FROM +init --base fedora:38
|
269
279
|
COPY +rpm-build/RPMS /tmp/libmongocrypt-rpm/
|
270
280
|
RUN dnf makecache
|
271
281
|
RUN __install $(find /tmp/libmongocrypt-rpm/ -name 'libmongocrypt-1.*.rpm')
|
@@ -372,3 +382,141 @@ build:
|
|
372
382
|
CACHE /s/libmongocrypt/cmake-build
|
373
383
|
END
|
374
384
|
RUN env USE_NINJA=1 bash libmongocrypt/.evergreen/build_all.sh
|
385
|
+
SAVE ARTIFACT /s/install /libmongocrypt-install
|
386
|
+
|
387
|
+
# `create-deb-packages-and-repos` creates the .deb packages and repo directories intended for the PPA on debian-like distros. Options:
|
388
|
+
# • --env=[...]
|
389
|
+
# · Set the environment for the build. Only debian-like environments are supported.
|
390
|
+
# • --packager_distro=[...] is passed to `create-packages-and-repos.sh`
|
391
|
+
# • --packager_arch=[...] is passed to `create-packages-and-repos.sh`
|
392
|
+
create-deb-packages-and-repos:
|
393
|
+
ARG env
|
394
|
+
FROM +env.$env
|
395
|
+
DO +CACHE_WARMUP
|
396
|
+
DO +COPY_SOURCE
|
397
|
+
WORKDIR /s
|
398
|
+
RUN __install dh-make dpkg-dev apt-utils
|
399
|
+
ARG packager_distro
|
400
|
+
ARG packager_arch
|
401
|
+
RUN env \
|
402
|
+
WORKDIR=/s \
|
403
|
+
PYTHON=python3 \
|
404
|
+
HAS_PACKAGES=true \
|
405
|
+
PACKAGER_DISTRO=$packager_distro \
|
406
|
+
PACKAGER_ARCH=$packager_arch \
|
407
|
+
bash libmongocrypt/.evergreen/create-packages-and-repos.sh
|
408
|
+
SAVE ARTIFACT libmongocrypt/repo AS LOCAL repo
|
409
|
+
|
410
|
+
# `test-deb-packages-from-ppa` tests Debian and Ubuntu packages installed on the PPA.
|
411
|
+
# • --env=[...] (default "deb11")
|
412
|
+
# · Set the environment for the build. Only debian-like environments are supported.
|
413
|
+
# • --distro=[...] (default "debian bullseye")
|
414
|
+
# · Has the form: "(debian|ubuntu) (name)". Must match distro set for `--env`.
|
415
|
+
# • --version=[...] (default "development"). The libmongocrypt package version.
|
416
|
+
# · May refer to a release branch (e.g. "1.8"). Release branch packages are updated on a tagged release.
|
417
|
+
# · "development" packages are updated by the `publish-packages` tasks every commit.
|
418
|
+
test-deb-packages-from-ppa:
|
419
|
+
ARG env="deb11"
|
420
|
+
ARG distro="debian bullseye"
|
421
|
+
ARG version="development"
|
422
|
+
FROM +env.$env
|
423
|
+
WORKDIR /s
|
424
|
+
RUN __install apt-transport-https
|
425
|
+
# Install libmongocrypt following install steps described in README.md:
|
426
|
+
RUN curl -s --location https://pgp.mongodb.com/libmongocrypt.asc | gpg --dearmor >/etc/apt/trusted.gpg.d/libmongocrypt.gpg
|
427
|
+
RUN echo "deb https://libmongocrypt.s3.amazonaws.com/apt/$distro/libmongocrypt/$version main" | tee /etc/apt/sources.list.d/libmongocrypt.list
|
428
|
+
# Test using libmongocrypt:
|
429
|
+
RUN __install libmongocrypt-dev gcc
|
430
|
+
RUN echo "
|
431
|
+
#include <stdio.h>
|
432
|
+
#include <mongocrypt/mongocrypt.h>
|
433
|
+
int main(void) {
|
434
|
+
const char *ver = mongocrypt_version(NULL);
|
435
|
+
printf (\"Using libmongocrypt %s\", ver);
|
436
|
+
}" > test.c
|
437
|
+
RUN gcc -o test.out test.c $(pkg-config --libs --cflags libmongocrypt)
|
438
|
+
RUN ./test.out
|
439
|
+
|
440
|
+
# `sign` uses Garasign to sign a file with the libmongocrypt key.
|
441
|
+
# Requires prior authentication with Artifactory.
|
442
|
+
# See: https://docs.devprod.prod.corp.mongodb.com/release-tools-container-images/garasign/garasign_signing/.
|
443
|
+
sign:
|
444
|
+
ARG --required file_to_sign
|
445
|
+
ARG --required output_file
|
446
|
+
FROM artifactory.corp.mongodb.com/release-tools-container-registry-local/garasign-gpg
|
447
|
+
WORKDIR /s
|
448
|
+
COPY ${file_to_sign} /s/file
|
449
|
+
RUN --secret garasign_username --secret garasign_password \
|
450
|
+
GRS_CONFIG_USER1_USERNAME=${garasign_username} \
|
451
|
+
GRS_CONFIG_USER1_PASSWORD=${garasign_password} \
|
452
|
+
/bin/bash -c "gpgloader && gpg --yes -v --armor -o /s/file.asc --detach-sign /s/file"
|
453
|
+
# Verify the signature
|
454
|
+
RUN touch /keyring
|
455
|
+
RUN curl -sS https://pgp.mongodb.com/libmongocrypt.pub | gpg -q --no-default-keyring --keyring "/keyring" --import -
|
456
|
+
RUN gpgv --keyring "/keyring" "/s/file.asc" "/s/file"
|
457
|
+
SAVE ARTIFACT /s/file.asc AS LOCAL ${output_file}
|
458
|
+
|
459
|
+
# silkbomb:
|
460
|
+
# An environment with the `silkbomb` command.
|
461
|
+
#
|
462
|
+
# See https://docs.devprod.prod.corp.mongodb.com/mms/python/src/sbom/silkbomb/ for documentation of silkbomb.
|
463
|
+
silkbomb:
|
464
|
+
FROM artifactory.corp.mongodb.com/release-tools-container-registry-public-local/silkbomb:1.0
|
465
|
+
# Alias the silkbom executable to a simpler name:
|
466
|
+
RUN ln -s /python/src/sbom/silkbomb/bin /usr/local/bin/silkbomb
|
467
|
+
|
468
|
+
# sbom-generate:
|
469
|
+
# Generate/update the etc/cyclonedx.sbom.json file from the etc/purls.txt file.
|
470
|
+
#
|
471
|
+
# This target will update the existing etc/cyclonedx.sbom.json file in-place based
|
472
|
+
# on the content of etc/purls.txt.
|
473
|
+
#
|
474
|
+
sbom-generate:
|
475
|
+
FROM +silkbomb
|
476
|
+
# Copy in the relevant files:
|
477
|
+
WORKDIR /s
|
478
|
+
COPY etc/purls.txt etc/cyclonedx.sbom.json /s/
|
479
|
+
# Update the SBOM file:
|
480
|
+
RUN silkbomb update \
|
481
|
+
--purls purls.txt \
|
482
|
+
--sbom-in cyclonedx.sbom.json \
|
483
|
+
--sbom-out cyclonedx.sbom.json
|
484
|
+
# Save the result back to the host:
|
485
|
+
SAVE ARTIFACT /s/cyclonedx.sbom.json AS LOCAL etc/cyclonedx.sbom.json
|
486
|
+
|
487
|
+
# sbom-download:
|
488
|
+
# Download the Augmented SBOM file from Silk.
|
489
|
+
#
|
490
|
+
# See https://wiki.corp.mongodb.com/display/DRIVERS/Using+AWS+Secrets+Manager+to+Store+Testing+Secrets for instructions to get secrets from AWS Secrets Manager. Secrets are available under `drivers/libmongocrypt`.
|
491
|
+
#
|
492
|
+
sbom-download:
|
493
|
+
ARG --required out
|
494
|
+
ARG --required branch
|
495
|
+
FROM +silkbomb
|
496
|
+
WORKDIR /s
|
497
|
+
# Download the Augmented SBOM file:
|
498
|
+
RUN --no-cache --secret silk_client_id --secret silk_client_secret \
|
499
|
+
SILK_CLIENT_ID=${silk_client_id} \
|
500
|
+
SILK_CLIENT_SECRET=${silk_client_secret} \
|
501
|
+
silkbomb download \
|
502
|
+
--sbom-out cyclonedx.augmented.sbom.json \
|
503
|
+
--silk-asset-group libmongocrypt-${branch}
|
504
|
+
# Save the result back to the host:
|
505
|
+
SAVE ARTIFACT /s/cyclonedx.augmented.sbom.json AS LOCAL ${out}
|
506
|
+
RUN echo "Augmented SBOM saved to ${out}"
|
507
|
+
|
508
|
+
# silk-create-asset-group:
|
509
|
+
# Create an asset group for Silk.
|
510
|
+
#
|
511
|
+
# See https://wiki.corp.mongodb.com/display/DRIVERS/Using+AWS+Secrets+Manager+to+Store+Testing+Secrets for instructions to get secrets from AWS Secrets Manager. Secrets are available under `drivers/libmongocrypt`.
|
512
|
+
#
|
513
|
+
silk-create-asset-group:
|
514
|
+
ARG --required branch
|
515
|
+
FROM +env.alpine
|
516
|
+
RUN __install curl jq
|
517
|
+
COPY etc/silk-create-asset-group.sh /s/silk-create-asset-group.sh
|
518
|
+
RUN --no-cache --secret silk_client_id --secret silk_client_secret \
|
519
|
+
silk_client_id=${silk_client_id} \
|
520
|
+
silk_client_secret=${silk_client_secret} \
|
521
|
+
branch=${branch} \
|
522
|
+
/s/silk-create-asset-group.sh
|
@@ -72,12 +72,10 @@ find_package (mongocrypt)
|
|
72
72
|
```
|
73
73
|
|
74
74
|
## Installing libmongocrypt on Windows ##
|
75
|
-
|
76
|
-
|
75
|
+
A Windows DLL for x86_64 is available on the Github Releases page. See the [latest release](https://github.com/mongodb/libmongocrypt/releases/latest).
|
76
|
+
|
77
|
+
Use `gpg` to verify the signature. The public key for `libmongocrypt` is available on https://pgp.mongodb.com/.
|
77
78
|
|
78
|
-
To download the latest unstable release, download from this URL:
|
79
|
-
https://s3.amazonaws.com/mciuploads/libmongocrypt/windows/latest_release/libmongocrypt_unstable.tar.gz
|
80
|
-
Do not use the unstable version of libmongocrypt in a production environment.
|
81
79
|
|
82
80
|
### Testing ###
|
83
81
|
`test-mongocrypt` mocks all I/O with files stored in the `test/data` and `test/example` directories. Run `test-mongocrypt` from the source directory:
|
@@ -108,53 +106,32 @@ We decided against the "have libmongocrypt do everything" approach because it co
|
|
108
106
|
|
109
107
|
### Releasing ###
|
110
108
|
|
111
|
-
|
112
|
-
Version numbers of libmongocrypt must follow the format 1.[0-9].[0-9] for releases and 1.[0-9].[0-9]-(alpha|beta|rc)[0-9] for pre-releases. This ensures that Linux distribution packages built from each commit are published to the correct location.
|
113
|
-
|
114
|
-
#### Steps to release ####
|
115
|
-
Do the following when releasing:
|
116
|
-
- Update CHANGELOG.md with the version being released.
|
117
|
-
- If this is a new minor release (e.g. `x.y.0`):
|
118
|
-
- Update the Linux distribution package installation instructions in the below sections to refer to the new version x.y.
|
119
|
-
- Commit these changes (on `master`) so that both the `master` branch and the new branch you are about to create refer to the new branch (note that this means you will commit changes to this file, and `CHANGELOG.md`)
|
120
|
-
- Create a branch named `rx.y`.
|
121
|
-
- Update the [libmongocrypt-release](https://evergreen.mongodb.com/projects##libmongocrypt-release) Evergreen project (requires auth) to set `Branch Name` to `rx.y`.
|
122
|
-
- Commit, create a new git tag, like `1.0.0-rc123` or `1.0.0`, and push.
|
123
|
-
- Push both the branch ref and tag ref in the same command: `git push origin master 1.0.0-rc123` or `git push origin r1.0 1.0.0`
|
124
|
-
- Pushing the branch ref and the tag ref in the same command eliminates the possibility of a race condition in Evergreen (for building resources based on the presence of a release tag)
|
125
|
-
- Note that in the future (e.g., if we move to a PR-based workflow for releases, or if we simply want to take better advantage of advanced Evergreen features), it is possible to use Evergreen's "Trigger Versions With Git Tags" feature by updating both `config.yml` and the project's settings in Evergreen
|
126
|
-
- Ensure the version on Evergreen with the tagged commit is scheduled. The following tasks must pass to complete the release:
|
127
|
-
- `upload-all`
|
128
|
-
- `windows-upload`. It is scheduled from the `windows-upload-check` task.
|
129
|
-
- Create the release from the GitHub releases page from the new tag.
|
130
|
-
- Submit a PR to update the Homebrew package https://github.com/mongodb/homebrew-brew/blob/master/Formula/libmongocrypt.rb. ([Example](https://github.com/mongodb/homebrew-brew/pull/135)).
|
131
|
-
- If this is a new minor release (e.g. `x.y.0`), file a DOCSP ticket to update the installation instructions on [Install libmongocrypt](https://www.mongodb.com/docs/manual/core/csfle/reference/libmongocrypt/). ([Example](https://jira.mongodb.org/browse/DOCSP-26877))
|
132
|
-
- Update the release on the [Jira releases page](https://jira.mongodb.org/projects/MONGOCRYPT/versions).
|
109
|
+
See [releasing](./doc/releasing.md).
|
133
110
|
|
134
111
|
## Installing libmongocrypt From Distribution Packages ##
|
135
112
|
Distribution packages (i.e., .deb/.rpm) are built and published for several Linux distributions. The installation of these packages for supported platforms is documented here.
|
136
113
|
|
137
114
|
### Unstable Development Distribution Packages ###
|
138
|
-
To install the latest unstable development package, change `1.
|
115
|
+
To install the latest unstable development package, change `1.11` to `development` in the package URLs listed in the subsequent instructions. For example, `https://libmongocrypt.s3.amazonaws.com/apt/ubuntu <release>/libmongocrypt/1.11` in the instructions would become `https://libmongocrypt.s3.amazonaws.com/apt/ubuntu <release>/libmongocrypt/development`. Do not use the unstable version of libmongocrypt in a production environment.
|
139
116
|
|
140
117
|
### .deb Packages (Debian and Ubuntu) ###
|
141
118
|
|
142
119
|
First, import the public key used to sign the package repositories:
|
143
120
|
|
144
121
|
```
|
145
|
-
sudo sh -c 'curl -s --location https://
|
122
|
+
sudo sh -c 'curl -s --location https://pgp.mongodb.com/libmongocrypt.asc | gpg --dearmor >/etc/apt/trusted.gpg.d/libmongocrypt.gpg'
|
146
123
|
```
|
147
124
|
|
148
125
|
Second, create a list entry for the repository. For Ubuntu systems (be sure to change `<release>` to `xenial`, `bionic`, `focal`, or `jammy`, as appropriate to your system):
|
149
126
|
|
150
127
|
```
|
151
|
-
echo "deb https://libmongocrypt.s3.amazonaws.com/apt/ubuntu <release>/libmongocrypt/1.
|
128
|
+
echo "deb https://libmongocrypt.s3.amazonaws.com/apt/ubuntu <release>/libmongocrypt/1.11 universe" | sudo tee /etc/apt/sources.list.d/libmongocrypt.list
|
152
129
|
```
|
153
130
|
|
154
|
-
For Debian systems (be sure to change `<release>` to `stretch`, `buster`,
|
131
|
+
For Debian systems (be sure to change `<release>` to `stretch`, `buster`, `bullseye`, or `bookworm` as appropriate to your system):
|
155
132
|
|
156
133
|
```
|
157
|
-
echo "deb https://libmongocrypt.s3.amazonaws.com/apt/debian <release>/libmongocrypt/1.
|
134
|
+
echo "deb https://libmongocrypt.s3.amazonaws.com/apt/debian <release>/libmongocrypt/1.11 main" | sudo tee /etc/apt/sources.list.d/libmongocrypt.list
|
158
135
|
```
|
159
136
|
|
160
137
|
Third, update the package cache:
|
@@ -179,10 +156,29 @@ Create the file `/etc/yum.repos.d/libmongocrypt.repo` with contents:
|
|
179
156
|
```
|
180
157
|
[libmongocrypt]
|
181
158
|
name=libmongocrypt repository
|
182
|
-
baseurl=https://libmongocrypt.s3.amazonaws.com/yum/redhat/$releasever/libmongocrypt/1.
|
159
|
+
baseurl=https://libmongocrypt.s3.amazonaws.com/yum/redhat/$releasever/libmongocrypt/1.11/x86_64
|
160
|
+
gpgcheck=1
|
161
|
+
enabled=1
|
162
|
+
gpgkey=https://pgp.mongodb.com/libmongocrypt.asc
|
163
|
+
```
|
164
|
+
|
165
|
+
Then install the libmongocrypt packages:
|
166
|
+
|
167
|
+
```
|
168
|
+
sudo yum install -y libmongocrypt
|
169
|
+
```
|
170
|
+
|
171
|
+
#### Amazon Linux 2023 ####
|
172
|
+
|
173
|
+
Create the file `/etc/yum.repos.d/libmongocrypt.repo` with contents:
|
174
|
+
|
175
|
+
```
|
176
|
+
[libmongocrypt]
|
177
|
+
name=libmongocrypt repository
|
178
|
+
baseurl=https://libmongocrypt.s3.amazonaws.com/yum/amazon/2023/libmongocrypt/1.11/x86_64
|
183
179
|
gpgcheck=1
|
184
180
|
enabled=1
|
185
|
-
gpgkey=https://
|
181
|
+
gpgkey=https://pgp.mongodb.com/libmongocrypt.asc
|
186
182
|
```
|
187
183
|
|
188
184
|
Then install the libmongocrypt packages:
|
@@ -198,10 +194,10 @@ Create the file `/etc/yum.repos.d/libmongocrypt.repo` with contents:
|
|
198
194
|
```
|
199
195
|
[libmongocrypt]
|
200
196
|
name=libmongocrypt repository
|
201
|
-
baseurl=https://libmongocrypt.s3.amazonaws.com/yum/amazon/2/libmongocrypt/1.
|
197
|
+
baseurl=https://libmongocrypt.s3.amazonaws.com/yum/amazon/2/libmongocrypt/1.11/x86_64
|
202
198
|
gpgcheck=1
|
203
199
|
enabled=1
|
204
|
-
gpgkey=https://
|
200
|
+
gpgkey=https://pgp.mongodb.com/libmongocrypt.asc
|
205
201
|
```
|
206
202
|
|
207
203
|
Then install the libmongocrypt packages:
|
@@ -217,10 +213,10 @@ Create the file `/etc/yum.repos.d/libmongocrypt.repo` with contents:
|
|
217
213
|
```
|
218
214
|
[libmongocrypt]
|
219
215
|
name=libmongocrypt repository
|
220
|
-
baseurl=https://libmongocrypt.s3.amazonaws.com/yum/amazon/2013.03/libmongocrypt/1.
|
216
|
+
baseurl=https://libmongocrypt.s3.amazonaws.com/yum/amazon/2013.03/libmongocrypt/1.11/x86_64
|
221
217
|
gpgcheck=1
|
222
218
|
enabled=1
|
223
|
-
gpgkey=https://
|
219
|
+
gpgkey=https://pgp.mongodb.com/libmongocrypt.asc
|
224
220
|
```
|
225
221
|
|
226
222
|
Then install the libmongocrypt packages:
|
@@ -234,13 +230,13 @@ sudo yum install -y libmongocrypt
|
|
234
230
|
First, import the public key used to sign the package repositories:
|
235
231
|
|
236
232
|
```
|
237
|
-
sudo rpm --import https://
|
233
|
+
sudo rpm --import https://pgp.mongodb.com/libmongocrypt.asc
|
238
234
|
```
|
239
235
|
|
240
236
|
Second, add the repository (be sure to change `<release>` to `12` or `15`, as appropriate to your system):
|
241
237
|
|
242
238
|
```
|
243
|
-
sudo zypper addrepo --gpgcheck "https://libmongocrypt.s3.amazonaws.com/zypper/suse/<release>/libmongocrypt/1.
|
239
|
+
sudo zypper addrepo --gpgcheck "https://libmongocrypt.s3.amazonaws.com/zypper/suse/<release>/libmongocrypt/1.11/x86_64" libmongocrypt
|
244
240
|
```
|
245
241
|
|
246
242
|
Finally, install the libmongocrypt packages:
|
@@ -1,5 +1,6 @@
|
|
1
1
|
|
2
2
|
configure_file(cs.sln cs.sln COPYONLY)
|
3
|
+
configure_file(MongoDB.Driver.snk MongoDB.Driver.snk COPYONLY)
|
3
4
|
|
4
5
|
configure_file(MongoDB.Libmongocrypt/MongoDB.Libmongocrypt.csproj MongoDB.Libmongocrypt/MongoDB.Libmongocrypt.csproj COPYONLY)
|
5
6
|
configure_file(MongoDB.Libmongocrypt/Package.include.template.csproj MongoDB.Libmongocrypt/Package.csproj.include)
|
Binary file
|
@@ -1,4 +1,4 @@
|
|
1
1
|
using System.Runtime.CompilerServices;
|
2
2
|
|
3
|
-
[assembly: InternalsVisibleTo("MongoDB.Libmongocrypt.Test")]
|
4
|
-
[assembly: InternalsVisibleTo("MongoDB.Libmongocrypt.Test32")]
|
3
|
+
[assembly: InternalsVisibleTo("MongoDB.Libmongocrypt.Test, PublicKey=002400000480000094000000060200000024000052534131000400000100010035287f0d3883c0a075c88e0cda3ce93b621003ecbd5e920d4a8c7238564f4d2f4f68116aca28c9b21341dc3a877679c14556192b2b2f5fe2c11d624e0894d308ff7b94bf6fd72aef1b41017ffe2572e99019d1c61963e68cd0ed67734a42cb333b808e3867cbe631937214e32e409fb1fa62fdb69d494c2530e64a40e417d6ee")]
|
4
|
+
[assembly: InternalsVisibleTo("MongoDB.Libmongocrypt.Test32, PublicKey=002400000480000094000000060200000024000052534131000400000100010035287f0d3883c0a075c88e0cda3ce93b621003ecbd5e920d4a8c7238564f4d2f4f68116aca28c9b21341dc3a877679c14556192b2b2f5fe2c11d624e0894d308ff7b94bf6fd72aef1b41017ffe2572e99019d1c61963e68cd0ed67734a42cb333b808e3867cbe631937214e32e409fb1fa62fdb69d494c2530e64a40e417d6ee")]
|
@@ -48,7 +48,14 @@ namespace MongoDB.Libmongocrypt
|
|
48
48
|
/// </value>
|
49
49
|
public IntPtr Data
|
50
50
|
{
|
51
|
-
get
|
51
|
+
get
|
52
|
+
{
|
53
|
+
if (!_handle.IsInvalid)
|
54
|
+
{
|
55
|
+
return Marshal.ReadIntPtr(_handle.DangerousGetHandle());
|
56
|
+
}
|
57
|
+
return IntPtr.Zero;
|
58
|
+
}
|
52
59
|
}
|
53
60
|
|
54
61
|
/// <summary>
|
@@ -59,7 +66,14 @@ namespace MongoDB.Libmongocrypt
|
|
59
66
|
/// </value>
|
60
67
|
public uint Length
|
61
68
|
{
|
62
|
-
get
|
69
|
+
get
|
70
|
+
{
|
71
|
+
if (!_handle.IsInvalid)
|
72
|
+
{
|
73
|
+
return (uint)Marshal.ReadInt32(_handle.DangerousGetHandle(), IntPtr.Size);
|
74
|
+
}
|
75
|
+
return 0;
|
76
|
+
}
|
63
77
|
}
|
64
78
|
|
65
79
|
internal BinarySafeHandle Handle => _handle;
|
data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptClientFactory.cs
CHANGED
@@ -15,6 +15,7 @@
|
|
15
15
|
*/
|
16
16
|
|
17
17
|
using System;
|
18
|
+
using System.Linq;
|
18
19
|
|
19
20
|
namespace MongoDB.Libmongocrypt
|
20
21
|
{
|
@@ -34,6 +35,9 @@ namespace MongoDB.Libmongocrypt
|
|
34
35
|
private static Library.Delegates.RandomCallback __randomCallback = new Library.Delegates.RandomCallback(SecureRandomCallback.GenerateRandom);
|
35
36
|
private static Library.Delegates.CryptoHmacCallback __signRsaesPkcs1HmacCallback = new Library.Delegates.CryptoHmacCallback(SigningRSAESPKCSCallback.RsaSign);
|
36
37
|
|
38
|
+
// mongocrypt_is_crypto_available is only available in libmongocrypt version >= 1.9
|
39
|
+
private static readonly Version __mongocryptIsCryptoAvailableMinVersion = Version.Parse("1.9");
|
40
|
+
|
37
41
|
/// <summary>Creates a CryptClient with the specified options.</summary>
|
38
42
|
/// <param name="options">The options.</param>
|
39
43
|
/// <returns>A CryptClient</returns>
|
@@ -42,14 +46,14 @@ namespace MongoDB.Libmongocrypt
|
|
42
46
|
MongoCryptSafeHandle handle = null;
|
43
47
|
Status status = null;
|
44
48
|
|
49
|
+
var cryptoAvailable = Version.Parse(Library.Version.Split('-', '+').First()) >= __mongocryptIsCryptoAvailableMinVersion && Library.mongocrypt_is_crypto_available();
|
50
|
+
|
45
51
|
try
|
46
52
|
{
|
47
53
|
handle = Library.mongocrypt_new();
|
48
54
|
status = new Status();
|
49
|
-
|
50
|
-
|
51
|
-
// to avoid restrictions on target frameworks that present in some of below
|
52
|
-
if (OperatingSystemHelper.CurrentOperatingSystem != OperatingSystemPlatform.Windows)
|
55
|
+
|
56
|
+
if (!cryptoAvailable)
|
53
57
|
{
|
54
58
|
handle.Check(
|
55
59
|
status,
|
@@ -48,6 +48,9 @@ namespace MongoDB.Libmongocrypt
|
|
48
48
|
_mongocrypt_ctx_setopt_key_encryption_key = new Lazy<Delegates.mongocrypt_ctx_setopt_key_encryption_key>(
|
49
49
|
() => __loader.Value.GetFunction<Delegates.mongocrypt_ctx_setopt_key_encryption_key>(
|
50
50
|
("mongocrypt_ctx_setopt_key_encryption_key")), true);
|
51
|
+
|
52
|
+
_mongocrypt_is_crypto_available = new Lazy<Delegates.mongocrypt_is_crypto_available>(
|
53
|
+
() => __loader.Value.GetFunction<Delegates.mongocrypt_is_crypto_available>("mongocrypt_is_crypto_available"), true);
|
51
54
|
|
52
55
|
_mongocrypt_setopt_aes_256_ecb = new Lazy<Delegates.mongocrypt_setopt_aes_256_ecb>(
|
53
56
|
() => __loader.Value.GetFunction<Delegates.mongocrypt_setopt_aes_256_ecb>(
|
@@ -229,6 +232,8 @@ namespace MongoDB.Libmongocrypt
|
|
229
232
|
internal static Delegates.mongocrypt_setopt_log_handler mongocrypt_setopt_log_handler => _mongocrypt_setopt_log_handler.Value;
|
230
233
|
internal static Delegates.mongocrypt_setopt_kms_providers mongocrypt_setopt_kms_providers => _mongocrypt_setopt_kms_providers.Value;
|
231
234
|
internal static Delegates.mongocrypt_ctx_setopt_key_encryption_key mongocrypt_ctx_setopt_key_encryption_key => _mongocrypt_ctx_setopt_key_encryption_key.Value;
|
235
|
+
|
236
|
+
internal static Delegates.mongocrypt_is_crypto_available mongocrypt_is_crypto_available => _mongocrypt_is_crypto_available.Value;
|
232
237
|
|
233
238
|
internal static Delegates.mongocrypt_setopt_aes_256_ecb mongocrypt_setopt_aes_256_ecb => _mongocrypt_setopt_aes_256_ecb.Value;
|
234
239
|
internal static Delegates.mongocrypt_setopt_bypass_query_analysis mongocrypt_setopt_bypass_query_analysis => _mongocrypt_setopt_bypass_query_analysis.Value;
|
@@ -306,6 +311,8 @@ namespace MongoDB.Libmongocrypt
|
|
306
311
|
|
307
312
|
private static readonly Lazy<Delegates.mongocrypt_setopt_kms_providers> _mongocrypt_setopt_kms_providers;
|
308
313
|
private static readonly Lazy<Delegates.mongocrypt_ctx_setopt_key_encryption_key> _mongocrypt_ctx_setopt_key_encryption_key;
|
314
|
+
|
315
|
+
private static readonly Lazy<Delegates.mongocrypt_is_crypto_available> _mongocrypt_is_crypto_available;
|
309
316
|
|
310
317
|
private static readonly Lazy<Delegates.mongocrypt_setopt_aes_256_ecb> _mongocrypt_setopt_aes_256_ecb;
|
311
318
|
private static readonly Lazy<Delegates.mongocrypt_setopt_bypass_query_analysis> _mongocrypt_setopt_bypass_query_analysis;
|
@@ -399,6 +406,9 @@ namespace MongoDB.Libmongocrypt
|
|
399
406
|
|
400
407
|
public delegate MongoCryptSafeHandle mongocrypt_new();
|
401
408
|
|
409
|
+
[return: MarshalAs(UnmanagedType.I1)]
|
410
|
+
public delegate bool mongocrypt_is_crypto_available();
|
411
|
+
|
402
412
|
public delegate void LogCallback([MarshalAs(UnmanagedType.I4)] LogLevel level, IntPtr messasge,
|
403
413
|
uint message_length, IntPtr context);
|
404
414
|
|