libmongocrypt-helper 1.7.4.0.1002 → 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 +40 -5
- data/ext/libmongocrypt/libmongocrypt/CMakeLists.txt +29 -24
- data/ext/libmongocrypt/libmongocrypt/CODEOWNERS +1 -4
- data/ext/libmongocrypt/libmongocrypt/Earthfile +522 -0
- 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/CryptClient.cs +25 -6
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptClientFactory.cs +8 -4
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/Library.cs +35 -3
- 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.Example/MongoDB.Libmongocrypt.Example.csproj +1 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/BasicTests.cs +1 -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 +22 -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 +22 -7
- 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 +50 -6
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2/int32/encrypted-payload.json +26 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/{python/test/data/fle2-find-range-explicit → java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2}/int32/rangeopts.json +3 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/README.md +4 -771
- data/ext/libmongocrypt/libmongocrypt/bindings/python/CHANGELOG.rst +86 -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 +232 -296
- data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/compat.py +6 -31
- 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 -254
- 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/requirements-test.txt +7 -0
- 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 +2 -10
- 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 +26 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/fle2-find-range-explicit-v2/int32/rangeopts.json +14 -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 +991 -343
- 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 +31 -6
- data/ext/libmongocrypt/libmongocrypt/cmake/IntelDFP.cmake +20 -227
- data/ext/libmongocrypt/libmongocrypt/cmake/Patch.cmake +54 -0
- data/ext/libmongocrypt/libmongocrypt/cmake/Platform.cmake +50 -0
- data/ext/libmongocrypt/libmongocrypt/cmake/mongocrypt-config.cmake +21 -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/c6-vault.repo +39 -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/fle2_aead_generate_tests.py +15 -24
- data/ext/libmongocrypt/libmongocrypt/etc/fle2_crypto.py +66 -54
- data/ext/libmongocrypt/libmongocrypt/etc/fle2_generate_tests.py +14 -23
- data/ext/libmongocrypt/libmongocrypt/etc/fle2v2_aead_generate_tests.py +32 -0
- data/ext/libmongocrypt/libmongocrypt/etc/format-all.sh +12 -0
- data/ext/libmongocrypt/libmongocrypt/etc/format.sh +16 -0
- data/ext/libmongocrypt/libmongocrypt/etc/install-package.sh +48 -0
- 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/mongo-inteldfp-libmongocrypt-pr-625.patch +13 -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/cng.c +381 -436
- data/ext/libmongocrypt/libmongocrypt/src/crypto/commoncrypto.c +162 -227
- data/ext/libmongocrypt/libmongocrypt/src/crypto/libcrypto.c +183 -248
- data/ext/libmongocrypt/libmongocrypt/src/crypto/none.c +33 -55
- data/ext/libmongocrypt/libmongocrypt/src/csfle-markup.cpp +175 -205
- data/ext/libmongocrypt/libmongocrypt/src/mc-array-private.h +10 -21
- data/ext/libmongocrypt/libmongocrypt/src/mc-array.c +44 -56
- data/ext/libmongocrypt/libmongocrypt/src/mc-check-conversions-private.h +4 -8
- data/ext/libmongocrypt/libmongocrypt/src/mc-dec128.h +351 -463
- data/ext/libmongocrypt/libmongocrypt/src/mc-dec128.test.cpp +59 -66
- data/ext/libmongocrypt/libmongocrypt/src/mc-efc-private.h +21 -11
- data/ext/libmongocrypt/libmongocrypt/src/mc-efc.c +175 -99
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle-blob-subtype-private.h +18 -10
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h +69 -70
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder.c +445 -439
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-private-v2.h +41 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-private.h +11 -18
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-v2.c +135 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload.c +109 -126
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-private-v2.h +103 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-private.h +28 -31
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-v2.c +173 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload.c +106 -125
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-private-v2.h +130 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-private.h +36 -44
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-v2.c +382 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload.c +237 -278
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-private-v2.h +133 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-private.h +67 -56
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-v2.c +437 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev.c +454 -325
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-common-private.h +69 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-common.c +182 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-private.h +23 -31
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-v2-private.h +85 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-v2.c +142 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev.c +104 -231
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-range-operator-private.h +8 -7
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-rfds-private.h +56 -56
- data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-rfds.c +520 -580
- data/ext/libmongocrypt/libmongocrypt/src/mc-optional-private.h +47 -66
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation-private.h +67 -76
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation.c +201 -190
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding-private.h +55 -42
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding.c +809 -558
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-generator.template.h +177 -201
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-private.h +54 -53
- data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover.c +188 -240
- data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts-private.h +43 -35
- data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts.c +484 -337
- data/ext/libmongocrypt/libmongocrypt/src/mc-reader-private.h +36 -71
- data/ext/libmongocrypt/libmongocrypt/src/mc-reader.c +111 -164
- data/ext/libmongocrypt/libmongocrypt/src/mc-tokens-private.h +87 -65
- data/ext/libmongocrypt/libmongocrypt/src/mc-tokens.c +153 -125
- data/ext/libmongocrypt/libmongocrypt/src/mc-writer-private.h +66 -0
- data/ext/libmongocrypt/libmongocrypt/src/mc-writer.c +141 -0
- data/ext/libmongocrypt/libmongocrypt/src/mlib/check.hpp +37 -55
- data/ext/libmongocrypt/libmongocrypt/src/mlib/endian.h +11 -11
- data/ext/libmongocrypt/libmongocrypt/src/mlib/error.h +27 -32
- data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.h +461 -499
- data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.test.cpp +256 -334
- data/ext/libmongocrypt/libmongocrypt/src/mlib/macros.h +4 -5
- data/ext/libmongocrypt/libmongocrypt/src/mlib/path.h +196 -231
- data/ext/libmongocrypt/libmongocrypt/src/mlib/path.test.c +56 -79
- data/ext/libmongocrypt/libmongocrypt/src/mlib/str.h +411 -530
- data/ext/libmongocrypt/libmongocrypt/src/mlib/str.test.c +116 -131
- data/ext/libmongocrypt/libmongocrypt/src/mlib/thread.h +17 -26
- data/ext/libmongocrypt/libmongocrypt/src/mlib/user-check.h +2 -2
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-binary-private.h +1 -9
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-binary.c +31 -48
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-buffer-private.h +55 -131
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-buffer.c +442 -565
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-collinfo-private.h +1 -2
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-collinfo.c +28 -45
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-key-private.h +11 -17
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-key.c +104 -132
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-oauth-private.h +16 -24
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-oauth.c +110 -93
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-private.h +26 -45
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache.c +220 -273
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ciphertext-private.h +13 -25
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ciphertext.c +147 -166
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-compat.h +2 -2
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-crypto-private.h +110 -204
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-crypto.c +1145 -1567
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-datakey.c +510 -476
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-decrypt.c +817 -694
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-encrypt.c +2775 -2697
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-private.h +189 -184
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-rewrap-many-datakey.c +308 -351
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx.c +990 -1139
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-dll-private.h +23 -24
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-endian-private.h +44 -58
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-endpoint-private.h +21 -25
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-endpoint.c +167 -181
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kek-private.h +42 -44
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kek.c +292 -272
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-broker-private.h +70 -110
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-broker.c +1010 -1033
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-private.h +27 -44
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key.c +349 -402
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kms-ctx-private.h +127 -120
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kms-ctx.c +1692 -1611
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-log-private.h +35 -67
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-log.c +49 -83
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking-private.h +31 -36
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking.c +1923 -1479
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-mutex-private.h +7 -12
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts-private.h +124 -107
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts.c +925 -419
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-private.h +99 -122
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-status-private.h +3 -8
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-status.c +92 -119
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-traverse-util-private.h +19 -29
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-traverse-util.c +136 -176
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-util-private.h +11 -21
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-util.c +98 -136
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.c +924 -1339
- data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.h +199 -313
- data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_dll.c +83 -79
- data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_mutex.c +20 -28
- data/ext/libmongocrypt/libmongocrypt/src/os_win/os_dll.c +64 -73
- data/ext/libmongocrypt/libmongocrypt/src/os_win/os_mutex.c +8 -16
- data/ext/libmongocrypt/libmongocrypt/test/crypt_shared-stub.cpp +57 -87
- 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-delete/empty/encrypted-payload-v2.json +60 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/encrypted-payload-v2.json +67 -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 +5 -5
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/find-indexed-contentionFactor1-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/find-indexed-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-contentionFactor1-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-same-user-and-index-key-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality-v2/cmd.json +6 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality-v2/encrypted-field-map.json +22 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality-v2/encrypted-payload.json +40 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality-v2/mongocryptd-reply.json +19 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/cmd.json +10 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/encrypted-payload.json +41 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/mongocryptd-reply.json +49 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/cmd.json +6 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/encrypted-field-map.json +30 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/encrypted-payload.json +50 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/mongocryptd-reply.json +58 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/cmd.json +6 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/encrypted-payload.json +41 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/mongocryptd-reply.json +49 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/cmd.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/encrypted-field-map.json +30 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/encrypted-payload.json +44 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/mongocryptd-reply.json +52 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/cmd.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/encrypted-payload.json +41 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/mongocryptd-reply.json +49 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/cmd.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/encrypted-payload.json +41 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/mongocryptd-reply.json +49 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/cmd.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/encrypted-payload.json +41 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/mongocryptd-reply.json +49 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double/encrypted-payload-v2.json +26 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double-precision/encrypted-payload-v2.json +26 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32/encrypted-payload-v2.json +26 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/encrypted-payload-v2.json +26 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-openinterval/encrypted-payload-v2.json +16 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert/cmd.json +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/RNG_DATA.h +65 -65
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/cmd.json +13 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/encrypted-payload.json +44 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/mongocryptd-reply.json +52 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/RNG_DATA.h +132 -132
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/RNG_DATA.h +71 -71
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/cmd.json +9 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/encrypted-field-map.json +30 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/encrypted-payload.json +53 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/mongocryptd-reply.json +61 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/cmd.json +9 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/encrypted-payload.json +44 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/mongocryptd-reply.json +52 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/RNG_DATA.h +68 -68
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/RNG_DATA.h +19 -19
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/cmd.json +11 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/encrypted-field-map.json +30 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/encrypted-payload.json +47 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/mongocryptd-reply.json +55 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/cmd.json +11 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/encrypted-payload.json +44 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/mongocryptd-reply.json +52 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/RNG_DATA.h +25 -25
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/cmd.json +11 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/encrypted-payload.json +44 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/mongocryptd-reply.json +52 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/RNG_DATA.h +65 -65
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/cmd.json +11 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/encrypted-field-map.json +27 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/encrypted-payload.json +44 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/mongocryptd-reply.json +52 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/RNG_DATA.h +68 -68
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/encrypted-payload-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/RNG_DATA.h +19 -19
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/encrypted-payload-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32/RNG_DATA.h +25 -25
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32/encrypted-payload-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/encrypted-payload-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/RNG_DATA.h +15 -15
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/encrypted-payload-v2.json +8 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed-v2/cmd.json +9 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed-v2/encrypted-field-map.json +18 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed-v2/encrypted-payload.json +14 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed-v2/mongocryptd-reply.json +41 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2/cmd.json +9 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2/encrypted-field-map.json +22 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2/encrypted-payload.json +39 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2/mongocryptd-reply.json +49 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/iev-v2/FLECrudTest-insertOneRangeV2.json +10 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/iev-v2/FLECrudTest-insertOneV2.json +10 -0
- 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/roundtrip/README.md +17 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/aes-ctr.json +29 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2-fixed.json +10 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2-generated.json +38 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2aead-decrypt.json +35 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2aead-fixed.json +29 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2aead-generated.json +122 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2v2-aead-fixed.json +29 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2v2-aead-generated.json +122 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/mcgrew.json +12 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/nist.json +20 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/tokens/README.md +30 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/tokens/mc.json +25 -0
- data/ext/libmongocrypt/libmongocrypt/test/data/tokens/server.json +25 -0
- data/ext/libmongocrypt/libmongocrypt/test/example-no-bson.c +4 -4
- data/ext/libmongocrypt/libmongocrypt/test/example-state-machine.c +279 -323
- data/ext/libmongocrypt/libmongocrypt/test/fuzz_kms.c +8 -7
- data/ext/libmongocrypt/libmongocrypt/test/test-dll.cpp +6 -7
- data/ext/libmongocrypt/libmongocrypt/test/test-gcp-auth.c +221 -283
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-efc.c +60 -73
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-equality-payload-v2.c +78 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-range-payload-v2.c +129 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iev-v2.c +248 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iev.c +467 -414
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup-v2.c +248 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup.c +141 -159
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-uev-v2.c +338 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-uev.c +238 -176
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-rfds.c +373 -474
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-edge-generation.c +421 -388
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-encoding.c +974 -825
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-mincover.c +499 -481
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-rangeopts.c +312 -148
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-reader.c +124 -207
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-tokens.c +249 -213
- data/ext/libmongocrypt/libmongocrypt/test/test-mc-writer.c +176 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.c +632 -808
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.h +22 -2
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert.h +168 -189
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-buffer.c +187 -211
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cache-oauth.c +118 -37
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cache.c +210 -233
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ciphertext.c +185 -220
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cleanup.c +374 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-compact.c +410 -445
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-hooks.c +798 -812
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-std-hooks.c +142 -135
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-std-hooks.h +70 -71
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto.c +394 -846
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-csfle-lib.c +159 -183
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-decrypt.c +870 -1045
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-encrypt.c +5183 -4717
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-rewrap-many-datakey.c +750 -964
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-setopt.c +1093 -1178
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-datakey.c +348 -420
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-dll.c +23 -30
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-endpoint.c +98 -111
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kek.c +49 -52
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key-broker.c +770 -920
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key-cache.c +354 -407
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key.c +197 -245
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kms-ctx.c +705 -368
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kms-responses.c +147 -166
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-local-kms.c +50 -61
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-log.c +85 -100
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-marking.c +1073 -690
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-opts.c +42 -0
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-status.c +46 -58
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-traverse-util.c +381 -451
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-util.c +55 -67
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-util.h +7 -10
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.c +879 -918
- data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.h +119 -169
- 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 +512 -559
- data/ext/libmongocrypt/libmongocrypt/test/util/make_includes.py +1 -1
- data/ext/libmongocrypt/libmongocrypt/test/util/util.c +771 -882
- data/ext/libmongocrypt/libmongocrypt/test/util/util.h +33 -55
- data/lib/libmongocrypt_helper/version.rb +2 -2
- metadata +245 -111
- checksums.yaml.gz.sig +0 -0
- data/ext/libmongocrypt/libmongocrypt/VERSION_CURRENT +0 -1
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit/int32/encrypted-payload.json +0 -26
- data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit/int32/key-document.json +0 -0
- data/ext/libmongocrypt/libmongocrypt/bindings/node/CHANGELOG.md +0 -81
- 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 -39
- data/ext/libmongocrypt/libmongocrypt/bindings/node/index.d.ts +0 -515
- 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 -699
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/common.js +0 -100
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/credentialsProvider.js +0 -33
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/cryptoCallbacks.js +0 -87
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/index.js +0 -42
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/mongocryptdManager.js +0 -66
- data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/stateMachine.js +0 -487
- data/ext/libmongocrypt/libmongocrypt/bindings/node/package-lock.json +0 -16051
- data/ext/libmongocrypt/libmongocrypt/bindings/node/package.json +0 -81
- data/ext/libmongocrypt/libmongocrypt/bindings/node/src/mongocrypt.cc +0 -929
- data/ext/libmongocrypt/libmongocrypt/bindings/node/src/mongocrypt.h +0 -114
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/autoEncrypter.test.js +0 -953
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/buffer_pool.test.js +0 -91
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/clientEncryption.test.js +0 -701
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/credentialsProvider.test.js +0 -163
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/cryptoCallbacks.test.js +0 -284
- 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/mongocryptdManager.test.js +0 -48
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/release.test.js +0 -59
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/requirements.helper.js +0 -29
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/stateMachine.test.js +0 -331
- data/ext/libmongocrypt/libmongocrypt/bindings/node/test/tools/mongodb_reporter.js +0 -325
- data/ext/libmongocrypt/libmongocrypt/bindings/python/setup.py +0 -84
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/fle2-find-range-explicit/int32/encrypted-payload.json +0 -26
- data/ext/libmongocrypt/libmongocrypt/bindings/python/test-requirements.txt +0 -12
- 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/aes-ctr.cstructs +0 -359
- data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/mongocryptd-reply.json +0 -72
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-aead.cstructs +0 -109
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/encrypted-payload.json +0 -26
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/rangeopts.json +0 -5
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/RNG_DATA.h +0 -70
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/encrypted-payload.json +0 -8
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/rangeopts.json +0 -5
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/value-to-encrypt.json +0 -5
- data/ext/libmongocrypt/libmongocrypt/test/data/fle2.cstructs +0 -33
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -0
- /data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/{fle2-find-range-explicit → fle2-find-range-explicit-v2}/int32/key-filter.json +0 -0
- /data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/{fle2-find-range-explicit → fle2-find-range-explicit-v2}/int32/value-to-encrypt.json +0 -0
- /data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/{fle2-find-range-explicit → fle2-find-range-explicit-v2}/int32/value-to-encrypt.json +0 -0
- /data/ext/libmongocrypt/libmongocrypt/bindings/{java/mongocrypt/src/test/resources/fle2-find-range-explicit → python/test/data/fle2-find-rangePreview-explicit}/int32/rangeopts.json +0 -0
- /data/ext/libmongocrypt/libmongocrypt/{test/data/fle2-find-range-explicit/int32-nominmax → bindings/python/test/data/fle2-find-rangePreview-explicit/int32}/value-to-encrypt.json +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
@@ -0,0 +1,522 @@
|
|
1
|
+
# Earthly Intro: https://docs.earthly.dev/
|
2
|
+
# Earthfile Reference: https://docs.earthly.dev/docs/earthfile
|
3
|
+
|
4
|
+
# Quick notes:
|
5
|
+
# • The shell script at ".evergreen/earthly.sh" can be used to automatically
|
6
|
+
# download and use a fixed version of Earthly that is compatible with
|
7
|
+
# this file version. Execute the shell script as if it were the Earthly
|
8
|
+
# executable itself.
|
9
|
+
# • In this file, the convention is to copy the source tree into /s/libmongocrypt
|
10
|
+
# • Earthly copies the "build context" (working directory) into the local buildkit
|
11
|
+
# daemon before each build execution. (Similar to the Docker build context).
|
12
|
+
# If you have a large amount of data in the working directory, this could be
|
13
|
+
# slow. The ".earthlyignore" file specifies patterns of files and directories
|
14
|
+
# to exclude from the context upload. Modify it to suite your needs, if necessary.
|
15
|
+
# • Only a subset of the source tree is COPY'd into the build environment. Files
|
16
|
+
# outside of this set will not be available in the build. See the COPY_SOURCE
|
17
|
+
# command for the list.
|
18
|
+
# • Modification at any layer will invalidate caching on all subsequent build
|
19
|
+
# layers. This is important and by-design in Earthly. Push infrequently-modified
|
20
|
+
# operations to earlier in the process the pipeline to make better use of
|
21
|
+
# the cache.
|
22
|
+
#
|
23
|
+
# This file has a few major sections:
|
24
|
+
# - Setup COMMANDs
|
25
|
+
# - Utility COMMANDs
|
26
|
+
# - Environment targets
|
27
|
+
# - Build/test/CI targets
|
28
|
+
#
|
29
|
+
# All environment targets begin with "env.". All build targets (should) accept an "env"
|
30
|
+
# parameter that specifies the name of the environment to use for the task. The name
|
31
|
+
# of an environment is specified following the "env." prefix. For example, the
|
32
|
+
# Ubuntu 22.04 environment is named "u22", so its environment target is "env.u22",
|
33
|
+
# and can be used i.e. "earthly +build --env=u22"
|
34
|
+
#
|
35
|
+
# The following environment are defined in this file:
|
36
|
+
# • u22 - Ubuntu 22.04
|
37
|
+
# • u20 - Ubuntu 20.04
|
38
|
+
# • u18 - Ubuntu 18.04
|
39
|
+
# • u16 - Ubuntu 16.04
|
40
|
+
# • u14 - Ubuntu 14.04
|
41
|
+
# • rl8 - RockyLinux 8 - Stand-in for RHEL 8
|
42
|
+
# • c7 - CentOS 7 - Stand-in for RHEL 7
|
43
|
+
# • c6 - CentOS 6 - Stand-in for RHEL 6
|
44
|
+
# • amzn1 - AmazonLinux (2018.03)
|
45
|
+
# • amzn2 - AmazonLinux 2
|
46
|
+
# • deb9 - Debian 9.2
|
47
|
+
# • deb10 - Debian 10.0
|
48
|
+
# • deb11 - Debian 11.0
|
49
|
+
# • deb12 - Debian 12.0
|
50
|
+
# • sles15 - OpenSUSE Leap 15.0
|
51
|
+
# • alpine - Alpine Linux 3.18
|
52
|
+
#
|
53
|
+
# When adding new environments, always pull from a fully-qualified image ID:
|
54
|
+
# • DO NOT: "ubuntu"
|
55
|
+
# • DO NOT: "ubuntu:latest"
|
56
|
+
# • DO NOT: "ubuntu:22.10"
|
57
|
+
# • DO: "docker.io/library/ubuntu:22.10"
|
58
|
+
# ###
|
59
|
+
|
60
|
+
VERSION --use-cache-command 0.6
|
61
|
+
FROM docker.io/library/alpine:3.16
|
62
|
+
WORKDIR /s
|
63
|
+
|
64
|
+
init:
|
65
|
+
# Special initializing target that sets up the base image and adds the "__install"
|
66
|
+
# script. This scripts abstracts around the underlying package manager interface
|
67
|
+
# to "do the right thing" when you want to install packages. Package names will
|
68
|
+
# still need to be spelled correctly for the respective system.
|
69
|
+
#
|
70
|
+
# Invoke +init with a "--base" parameter that specifies the base image to pull
|
71
|
+
ARG --required base
|
72
|
+
FROM $base
|
73
|
+
COPY etc/install-package.sh /usr/local/bin/__install
|
74
|
+
RUN chmod +x /usr/local/bin/__install
|
75
|
+
ENV USER_CACHES_DIR=/Cache
|
76
|
+
|
77
|
+
# Environment setup commands below. Each provides the basic environment for a
|
78
|
+
# libmongocrypt build. Additional packages and setup may be required for
|
79
|
+
# individual tasks.
|
80
|
+
|
81
|
+
DEBIAN_SETUP:
|
82
|
+
# Setup for a debian-like build environment. Used for both Debian and Ubuntu
|
83
|
+
COMMAND
|
84
|
+
RUN __install build-essential g++ libssl-dev curl unzip python3 pkg-config \
|
85
|
+
git ccache findutils ca-certificates
|
86
|
+
|
87
|
+
REDHAT_SETUP:
|
88
|
+
# Setup for a redhat-like build environment. Used for CentOS and RockyLinux.
|
89
|
+
COMMAND
|
90
|
+
RUN __install epel-release && \
|
91
|
+
__install gcc-c++ make openssl-devel curl unzip git ccache findutils \
|
92
|
+
patch
|
93
|
+
|
94
|
+
CENTOS6_SETUP:
|
95
|
+
# Special setup for CentOS6: The packages have been moved to the vault, so
|
96
|
+
# we need to enable the vault repos before we perform any __installs
|
97
|
+
COMMAND
|
98
|
+
RUN rm /etc/yum.repos.d/*.repo
|
99
|
+
COPY etc/c6-vault.repo /etc/yum.repos.d/CentOS-Base.repo
|
100
|
+
DO +REDHAT_SETUP
|
101
|
+
|
102
|
+
AMZ_SETUP:
|
103
|
+
# Setup for Amazon Linux.
|
104
|
+
COMMAND
|
105
|
+
# amzn1 has "python38", but amzn2 has "python3." Try both
|
106
|
+
RUN __install python3 || __install python38
|
107
|
+
RUN __install gcc-c++ make openssl-devel curl unzip tar gzip \
|
108
|
+
openssh-clients patch git
|
109
|
+
|
110
|
+
SLES_SETUP:
|
111
|
+
# Setup for a SLES/SUSE build environment
|
112
|
+
COMMAND
|
113
|
+
RUN __install gcc-c++ make libopenssl-devel curl unzip tar gzip python3 \
|
114
|
+
patch git xz which
|
115
|
+
|
116
|
+
ALPINE_SETUP:
|
117
|
+
# Setup for an Alpine Linux build environment
|
118
|
+
COMMAND
|
119
|
+
RUN __install make bash gcc g++ unzip curl tar gzip git musl-dev \
|
120
|
+
linux-headers openssl-dev python3
|
121
|
+
|
122
|
+
# Environment targets are defined below. These do not have build outputs, but
|
123
|
+
# are rather themselves the "outputs" to be used as the environment for subsequent
|
124
|
+
# tasks
|
125
|
+
|
126
|
+
env.c6:
|
127
|
+
# A CentOS 6 environment.
|
128
|
+
FROM +init --base=docker.io/library/centos:6
|
129
|
+
DO +CENTOS6_SETUP
|
130
|
+
|
131
|
+
env.c7:
|
132
|
+
# A CentOS 7 environment.
|
133
|
+
FROM +init --base=docker.io/library/centos:7
|
134
|
+
DO +REDHAT_SETUP
|
135
|
+
|
136
|
+
env.rl8:
|
137
|
+
# CentOS 8 is cancelled. Use RockyLinux 8 for our RHEL 8 environment.
|
138
|
+
FROM +init --base=docker.io/library/rockylinux:8
|
139
|
+
DO +REDHAT_SETUP
|
140
|
+
|
141
|
+
# Utility command for Ubuntu environments
|
142
|
+
ENV_UBUNTU:
|
143
|
+
COMMAND
|
144
|
+
ARG --required version
|
145
|
+
FROM +init --base=docker.io/library/ubuntu:$version
|
146
|
+
DO +DEBIAN_SETUP
|
147
|
+
|
148
|
+
env.u14:
|
149
|
+
# An Ubuntu 14.04 environment
|
150
|
+
DO +ENV_UBUNTU --version 14.04
|
151
|
+
|
152
|
+
env.u16:
|
153
|
+
# An Ubuntu 16.04 environment
|
154
|
+
DO +ENV_UBUNTU --version 16.04
|
155
|
+
|
156
|
+
env.u18:
|
157
|
+
# An Ubuntu 18.04 environment
|
158
|
+
DO +ENV_UBUNTU --version 18.04
|
159
|
+
|
160
|
+
env.u20:
|
161
|
+
# An Ubuntu 20.04 environment
|
162
|
+
DO +ENV_UBUNTU --version 20.04
|
163
|
+
|
164
|
+
env.u22:
|
165
|
+
# An Ubuntu 22.04 environment
|
166
|
+
DO +ENV_UBUNTU --version 22.04
|
167
|
+
|
168
|
+
env.amzn1:
|
169
|
+
# An Amazon "1" environment. (AmazonLinux 2018)
|
170
|
+
FROM +init --base=docker.io/library/amazonlinux:2018.03
|
171
|
+
DO +AMZ_SETUP
|
172
|
+
|
173
|
+
env.amzn2:
|
174
|
+
# An AmazonLinux 2 environment
|
175
|
+
FROM +init --base=docker.io/library/amazonlinux:2
|
176
|
+
DO +AMZ_SETUP
|
177
|
+
|
178
|
+
# Utility command for Debian setup
|
179
|
+
ENV_DEBIAN:
|
180
|
+
COMMAND
|
181
|
+
ARG --required version
|
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
|
188
|
+
DO +DEBIAN_SETUP
|
189
|
+
|
190
|
+
env.deb9:
|
191
|
+
# A Debian 9.2 environment
|
192
|
+
DO +ENV_DEBIAN --version 9.2
|
193
|
+
|
194
|
+
env.deb10:
|
195
|
+
# A Debian 10.0 environment
|
196
|
+
DO +ENV_DEBIAN --version 10.0
|
197
|
+
|
198
|
+
env.deb-unstable:
|
199
|
+
DO +ENV_DEBIAN --version=unstable
|
200
|
+
|
201
|
+
env.deb11:
|
202
|
+
# A Debian 11.0 environment
|
203
|
+
DO +ENV_DEBIAN --version 11.0
|
204
|
+
|
205
|
+
env.deb12:
|
206
|
+
# A Debian 12.0 environment
|
207
|
+
DO +ENV_DEBIAN --version 12.0
|
208
|
+
|
209
|
+
env.sles15:
|
210
|
+
# An OpenSUSE Leap 15.0 environment.
|
211
|
+
FROM +init --base=docker.io/opensuse/leap:15.0
|
212
|
+
DO +SLES_SETUP
|
213
|
+
|
214
|
+
env.alpine:
|
215
|
+
FROM +init --base=docker.io/library/alpine:3.18
|
216
|
+
DO +ALPINE_SETUP
|
217
|
+
|
218
|
+
# Utility: Warm-up obtaining CMake and Ninja for the build. This is usually
|
219
|
+
# very quick, but on some platforms we need to compile them from source.
|
220
|
+
CACHE_WARMUP:
|
221
|
+
COMMAND
|
222
|
+
# Copy only the scripts that are strictly necessary for the operation, to
|
223
|
+
# avoid cache invalidation later on.
|
224
|
+
COPY .evergreen/setup-env.sh \
|
225
|
+
.evergreen/init.sh \
|
226
|
+
.evergreen/ensure-cmake.sh \
|
227
|
+
.evergreen/ensure-ninja.sh \
|
228
|
+
/T/
|
229
|
+
RUN bash /T/ensure-cmake.sh
|
230
|
+
RUN env NINJA_EXE=/usr/local/bin/ninja \
|
231
|
+
bash /T/ensure-ninja.sh
|
232
|
+
|
233
|
+
COPY_SOURCE:
|
234
|
+
COMMAND
|
235
|
+
COPY --dir \
|
236
|
+
.git/ \
|
237
|
+
cmake/ \
|
238
|
+
kms-message/ \
|
239
|
+
test/ \
|
240
|
+
debian/ \
|
241
|
+
src/ \
|
242
|
+
doc/ \
|
243
|
+
etc/ \
|
244
|
+
LICENSE \
|
245
|
+
.evergreen/ \
|
246
|
+
third-party/ \
|
247
|
+
CMakeLists.txt \
|
248
|
+
"/s/libmongocrypt"
|
249
|
+
COPY --dir bindings/cs/ "/s/libmongocrypt/bindings/"
|
250
|
+
|
251
|
+
BUILD_EXAMPLE_STATE_MACHINE:
|
252
|
+
COMMAND
|
253
|
+
COPY test/example-state-machine.c /s/
|
254
|
+
RUN pkg-config --exists libmongocrypt --print-errors && \
|
255
|
+
gcc /s/example-state-machine.c \
|
256
|
+
-o /s/example-state-machine \
|
257
|
+
$(pkg-config --cflags --libs libmongocrypt)
|
258
|
+
COPY --dir test/example /s/test/example
|
259
|
+
RUN cd /s && /s/example-state-machine
|
260
|
+
|
261
|
+
rpm-build:
|
262
|
+
FROM +init --base fedora:38
|
263
|
+
GIT CLONE https://src.fedoraproject.org/rpms/libmongocrypt.git /R
|
264
|
+
# Install the packages listed by "BuildRequires" and rpm-build:
|
265
|
+
RUN __install $(awk '/^BuildRequires:/ { print $2 }' /R/libmongocrypt.spec) \
|
266
|
+
rpm-build
|
267
|
+
DO +COPY_SOURCE
|
268
|
+
RUN cp -r /s/libmongocrypt/. /R
|
269
|
+
RUN awk -f /R/etc/rpm/tweak.awk < /R/libmongocrypt.spec > /R/libmongocrypt.2.spec
|
270
|
+
RUN rpmbuild -ba /R/libmongocrypt.2.spec \
|
271
|
+
-D "_topdir /X" \
|
272
|
+
-D "_sourcedir /R"
|
273
|
+
SAVE ARTIFACT /X/RPMS /
|
274
|
+
SAVE ARTIFACT /X/SRPMS /
|
275
|
+
|
276
|
+
rpm-install-runtime:
|
277
|
+
# Install the runtime RPM
|
278
|
+
FROM +init --base fedora:38
|
279
|
+
COPY +rpm-build/RPMS /tmp/libmongocrypt-rpm/
|
280
|
+
RUN dnf makecache
|
281
|
+
RUN __install $(find /tmp/libmongocrypt-rpm/ -name 'libmongocrypt-1.*.rpm')
|
282
|
+
|
283
|
+
rpm-install-dev:
|
284
|
+
# Install the development RPM
|
285
|
+
FROM +rpm-install-runtime
|
286
|
+
COPY +rpm-build/RPMS /tmp/libmongocrypt-rpm/
|
287
|
+
RUN dnf makecache
|
288
|
+
RUN __install $(find /tmp/libmongocrypt-rpm/ -name 'libmongocrypt-devel-*.rpm')
|
289
|
+
|
290
|
+
rpm-devel-test:
|
291
|
+
# Attempt to build a small app using pkg-config and the dev RPM
|
292
|
+
FROM +rpm-install-dev
|
293
|
+
RUN __install gcc
|
294
|
+
DO +BUILD_EXAMPLE_STATE_MACHINE
|
295
|
+
SAVE ARTIFACT /s/example-state-machine /
|
296
|
+
|
297
|
+
rpm-runtime-test:
|
298
|
+
# Attempt to run a libmongocrypt-using app with the runtime RPM installed
|
299
|
+
FROM +rpm-install-runtime
|
300
|
+
COPY +rpm-devel-test/example-state-machine /s/
|
301
|
+
COPY --dir test/example /s/test/example
|
302
|
+
RUN cd /s/ && /s/example-state-machine
|
303
|
+
|
304
|
+
# A target to build the debian package. Options:
|
305
|
+
# • --env=[...] (default: deb-unstable)
|
306
|
+
# · Set the environment for the build. Affects which packages are available
|
307
|
+
# for build dependencies.
|
308
|
+
# NOTE: Uncommited local changes will be ignored and not affect the result!
|
309
|
+
deb-build:
|
310
|
+
ARG env=deb-unstable
|
311
|
+
FROM +env.$env
|
312
|
+
RUN __install git-buildpackage fakeroot debhelper cmake libbson-dev \
|
313
|
+
libintelrdfpmath-dev
|
314
|
+
DO +COPY_SOURCE
|
315
|
+
WORKDIR /s/libmongocrypt
|
316
|
+
RUN git clean -fdx && git reset --hard
|
317
|
+
RUN python3 etc/calc_release_version.py > VERSION_CURRENT
|
318
|
+
RUN git add -f VERSION_CURRENT && \
|
319
|
+
git -c user.name=anon -c user.email=anon@localhost \
|
320
|
+
commit VERSION_CURRENT -m 'Set version' && \
|
321
|
+
env LANG=C bash debian/build_snapshot.sh && \
|
322
|
+
debc ../*.changes && \
|
323
|
+
dpkg -i ../*.deb
|
324
|
+
SAVE ARTIFACT /s/*.deb /debs/
|
325
|
+
|
326
|
+
deb-install-runtime:
|
327
|
+
# Install the runtime deb package
|
328
|
+
FROM +init --base=docker.io/library/debian:unstable
|
329
|
+
COPY +deb-build/debs/libmongocrypt0*.deb /tmp/lmc.deb
|
330
|
+
RUN __install /tmp/lmc.deb
|
331
|
+
|
332
|
+
deb-install-dev:
|
333
|
+
# Install the development deb package
|
334
|
+
FROM +deb-install-runtime
|
335
|
+
COPY +deb-build/debs/libmongocrypt-dev*.deb /tmp/lmc-dev.deb
|
336
|
+
RUN __install /tmp/lmc-dev.deb
|
337
|
+
|
338
|
+
deb-dev-test:
|
339
|
+
# Attempt to build a small app using pkg-config and the dev deb package
|
340
|
+
FROM +deb-install-dev
|
341
|
+
RUN __install pkg-config gcc
|
342
|
+
DO +BUILD_EXAMPLE_STATE_MACHINE
|
343
|
+
SAVE ARTIFACT /s/example-state-machine /
|
344
|
+
|
345
|
+
deb-runtime-test:
|
346
|
+
# Attempt to run a libmongocrypt-using app with the runtime DEB installed
|
347
|
+
FROM +deb-install-runtime
|
348
|
+
COPY +deb-dev-test/example-state-machine /s/
|
349
|
+
COPY --dir test/example /s/test/example
|
350
|
+
RUN cd /s/ && /s/example-state-machine
|
351
|
+
|
352
|
+
packaging-full-test:
|
353
|
+
BUILD +deb-runtime-test
|
354
|
+
BUILD +rpm-runtime-test
|
355
|
+
|
356
|
+
check-format:
|
357
|
+
FROM python:3.11.2-slim-buster
|
358
|
+
RUN pip install pipx
|
359
|
+
COPY etc/format* /X/etc/
|
360
|
+
COPY .evergreen/init.sh /X/.evergreen/
|
361
|
+
RUN /X/etc/format.sh # Does nothing, but warms the cache
|
362
|
+
COPY --dir .clang-format src test /X/
|
363
|
+
RUN /X/etc/format-all.sh --dry-run -Werror --verbose
|
364
|
+
|
365
|
+
# The main "build" target. Options:
|
366
|
+
# • --env=[...] (default "u22")
|
367
|
+
# · Set the environment for the build. Any name of and "env.<name>" targets
|
368
|
+
# can be used.
|
369
|
+
# • --persist_build={true,false} (default "true")
|
370
|
+
# · Persist the build directory between executions. Enables incremental
|
371
|
+
# compilation and reusing of configuration between builds. The build
|
372
|
+
# directory is NOT shared between different "--env" environments, only
|
373
|
+
# within a single environment.
|
374
|
+
build:
|
375
|
+
ARG env=u22
|
376
|
+
FROM +env.$env
|
377
|
+
DO +CACHE_WARMUP
|
378
|
+
DO +COPY_SOURCE
|
379
|
+
WORKDIR /s
|
380
|
+
ARG persist_build=true
|
381
|
+
IF $persist_build
|
382
|
+
CACHE /s/libmongocrypt/cmake-build
|
383
|
+
END
|
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
|