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
@@ -5,13 +5,11 @@ This program makes Debian and RPM repositories for libmongocrypt,
|
|
5
5
|
by downloading our tarballs and forming them into Linux packages.
|
6
6
|
It must be run on a Debianoid, since Debian provides tools to make
|
7
7
|
RPMs, but RPM-based systems don't provide debian packaging crud.
|
8
|
-
This program is also based on the program of the same name in the
|
9
|
-
MongoDB server repository.
|
10
8
|
|
11
9
|
This program was adapted from the program of the same name in the
|
12
10
|
MongoDB server repository:
|
13
11
|
|
14
|
-
https://github.com/mongodb/mongo/blob/
|
12
|
+
https://github.com/mongodb/mongo/blob/master/buildscripts/packager.py
|
15
13
|
|
16
14
|
Notes
|
17
15
|
-----
|
@@ -33,6 +31,25 @@ prerequisites:
|
|
33
31
|
apt-get install dpkg-dev rpm debhelper fakeroot ia32-libs createrepo git-core
|
34
32
|
echo "Now put the dist gnupg signing keys in ~root/.gnupg"
|
35
33
|
|
34
|
+
Differences from the server version of this script
|
35
|
+
--------------------------------------------------
|
36
|
+
|
37
|
+
* The version numbering scheme is a bit different, so the regexes in
|
38
|
+
this script are modified to match the versioning of libmongocrypt.
|
39
|
+
Naturally, instances of the package name 'mongodb' have been replaced
|
40
|
+
with 'libmongocrypt', and since libmonogcrypt does not use the 'org'
|
41
|
+
and 'enterprise' suffixes, those have been left out as well.
|
42
|
+
|
43
|
+
* The server version of this script has been updated to generate the
|
44
|
+
changelog based on Git history, while this version of the script
|
45
|
+
continues to use the boilerplate changelog.
|
46
|
+
|
47
|
+
* Other specific divergences, especially where care should be taken in
|
48
|
+
order to not clobber when syncing changes from the server version of
|
49
|
+
the script, are noted with explanatory comments as needed. These
|
50
|
+
comments are prefixed 'MC:' to make them easily distinguished from
|
51
|
+
other comments coming from the original source.
|
52
|
+
|
36
53
|
"""
|
37
54
|
|
38
55
|
import argparse
|
@@ -48,10 +65,10 @@ import tempfile
|
|
48
65
|
import time
|
49
66
|
|
50
67
|
# The MongoDB names for the architectures we support.
|
51
|
-
ARCH_CHOICES = ["x86_64", "arm64", "s390x", "ppc64le"]
|
68
|
+
ARCH_CHOICES = ["x86_64", "arm64", "aarch64", "s390x", "ppc64le"]
|
52
69
|
|
53
70
|
# Made up names for the flavors of distribution we package for.
|
54
|
-
DISTROS = ["suse", "debian", "redhat", "ubuntu", "amazon", "amazon2"]
|
71
|
+
DISTROS = ["suse", "debian", "redhat", "ubuntu", "amazon", "amazon2", "amazon2023"]
|
55
72
|
|
56
73
|
|
57
74
|
class Spec(object):
|
@@ -63,7 +80,7 @@ class Spec(object):
|
|
63
80
|
self.gitspec = gitspec
|
64
81
|
self.rel = rel
|
65
82
|
|
66
|
-
# Commit-triggerd
|
83
|
+
# Commit-triggerd version numbers can be in the form: 3.0.7-pre-, or 3.0.7-5-g3b67ac
|
67
84
|
# Patch builds version numbers are in the form: 3.5.5-64-g03945fa-patch-58debcdb3ff1223c9d00005b
|
68
85
|
#
|
69
86
|
def is_nightly(self):
|
@@ -79,6 +96,7 @@ class Spec(object):
|
|
79
96
|
"""Return True if rc."""
|
80
97
|
return bool(re.search(r"-rc\d+(\+[0-9]{8}git[0-9a-f]+)?$", self.version()))
|
81
98
|
|
99
|
+
# MC: libmongocrypt also has beta releases
|
82
100
|
def is_beta(self):
|
83
101
|
"""Return True if beta."""
|
84
102
|
return bool(re.search(r"-beta\d+(\+[0-9]{8}git[0-9a-f]+)?$", self.version()))
|
@@ -106,6 +124,9 @@ class Spec(object):
|
|
106
124
|
return self.gitspec
|
107
125
|
return 'r' + self.version()
|
108
126
|
|
127
|
+
# MC: Leave out the version_better_than() and suffix() funtions, which are
|
128
|
+
# not used by libmongocrypt's packaging workflow
|
129
|
+
|
109
130
|
def prelease(self):
|
110
131
|
"""Return pre-release verison suffix."""
|
111
132
|
# NOTE: This is only called for RPM packages, and only after
|
@@ -192,7 +213,6 @@ class Distro(object):
|
|
192
213
|
Power and x86 have different names for apt/yum (ppc64le/ppc64el
|
193
214
|
and x86_64/amd64).
|
194
215
|
"""
|
195
|
-
# pylint: disable=too-many-return-statements
|
196
216
|
if re.search("^(debian|ubuntu)", self.dname):
|
197
217
|
if arch == "ppc64le":
|
198
218
|
return "ppc64el"
|
@@ -208,14 +228,15 @@ class Distro(object):
|
|
208
228
|
return "ppc64le"
|
209
229
|
elif arch == "s390x":
|
210
230
|
return "s390x"
|
211
|
-
elif arch == "arm64":
|
212
|
-
return "aarch64"
|
213
231
|
elif arch.endswith("86"):
|
214
232
|
return "i686"
|
233
|
+
elif arch == "arm64":
|
234
|
+
return "arm64"
|
235
|
+
elif arch == "aarch64":
|
236
|
+
return "aarch64"
|
215
237
|
return "x86_64"
|
216
238
|
else:
|
217
239
|
raise Exception("BUG: unsupported platform?")
|
218
|
-
# pylint: enable=too-many-return-statements
|
219
240
|
|
220
241
|
def repodir(self, arch, build_os, spec): # noqa: D406,D407,D412,D413
|
221
242
|
"""Return the directory where we'll place the package files for (distro, distro_version).
|
@@ -267,6 +288,8 @@ class Distro(object):
|
|
267
288
|
|
268
289
|
Example, "universe" for Ubuntu, "main" for debian.
|
269
290
|
"""
|
291
|
+
# MC: libmongocrypt uses the 'universe' section for Ubuntu, rather than
|
292
|
+
# 'multiverse' like the server
|
270
293
|
if self.dname == 'ubuntu':
|
271
294
|
return "universe"
|
272
295
|
elif self.dname == 'debian':
|
@@ -274,13 +297,13 @@ class Distro(object):
|
|
274
297
|
else:
|
275
298
|
raise Exception("unsupported distro: %s" % self.dname)
|
276
299
|
|
277
|
-
def repo_os_version(self, build_os):
|
300
|
+
def repo_os_version(self, build_os):
|
278
301
|
"""Return an OS version suitable for package repo directory naming.
|
279
302
|
|
280
303
|
Example, 5, 6 or 7 for redhat/centos, "precise," "wheezy," etc.
|
281
304
|
for Ubuntu/Debian, 11 for suse, "2013.03" for amazon.
|
282
305
|
"""
|
283
|
-
|
306
|
+
|
284
307
|
if self.dname == 'suse':
|
285
308
|
return re.sub(r'^suse(\d+)$', r'\1', build_os)
|
286
309
|
if self.dname == 'redhat':
|
@@ -289,6 +312,8 @@ class Distro(object):
|
|
289
312
|
return "2013.03"
|
290
313
|
elif self.dname == 'amazon2':
|
291
314
|
return "2017.12"
|
315
|
+
elif self.dname == 'amazon2023':
|
316
|
+
return "2023.0"
|
292
317
|
elif self.dname == 'ubuntu':
|
293
318
|
if build_os == 'ubuntu1204':
|
294
319
|
return "precise"
|
@@ -313,11 +338,12 @@ class Distro(object):
|
|
313
338
|
return 'buster'
|
314
339
|
elif build_os == 'debian11':
|
315
340
|
return 'bullseye'
|
341
|
+
elif build_os == 'debian12':
|
342
|
+
return 'bookworm'
|
316
343
|
else:
|
317
344
|
raise Exception("unsupported build_os: %s" % build_os)
|
318
345
|
else:
|
319
346
|
raise Exception("unsupported distro: %s" % self.dname)
|
320
|
-
# pylint: enable=too-many-return-statements
|
321
347
|
|
322
348
|
def make_pkg(self, build_os, arch, spec, srcdir):
|
323
349
|
"""Return the package."""
|
@@ -335,14 +361,26 @@ class Distro(object):
|
|
335
361
|
"suse11" for suse, etc.
|
336
362
|
"""
|
337
363
|
# Community builds only support amd64
|
338
|
-
if arch not in ['x86_64', 'ppc64le', 's390x', 'arm64']:
|
364
|
+
if arch not in ['x86_64', 'ppc64le', 's390x', 'arm64', 'aarch64']:
|
339
365
|
raise Exception("BUG: unsupported architecture (%s)" % arch)
|
340
366
|
|
341
367
|
if re.search("(suse)", self.dname):
|
342
368
|
return ["suse11", "suse12", "suse15"]
|
343
369
|
elif re.search("(redhat|fedora|centos)", self.dname):
|
344
|
-
return [
|
345
|
-
|
370
|
+
return [
|
371
|
+
"rhel91",
|
372
|
+
"rhel83",
|
373
|
+
"rhel82",
|
374
|
+
"rhel81",
|
375
|
+
"rhel80",
|
376
|
+
"rhel70",
|
377
|
+
"rhel71",
|
378
|
+
"rhel72",
|
379
|
+
"rhel62",
|
380
|
+
"rhel55",
|
381
|
+
"rhel67"
|
382
|
+
]
|
383
|
+
elif self.dname in ['amazon', 'amazon2', 'amazon2023']:
|
346
384
|
return [self.dname]
|
347
385
|
elif self.dname == 'ubuntu':
|
348
386
|
return [
|
@@ -354,7 +392,7 @@ class Distro(object):
|
|
354
392
|
"ubuntu2204",
|
355
393
|
]
|
356
394
|
elif self.dname == 'debian':
|
357
|
-
return ["debian81", "debian92", "debian10", "debian11"]
|
395
|
+
return ["debian81", "debian92", "debian10", "debian11", "debian12"]
|
358
396
|
else:
|
359
397
|
raise Exception("BUG: unsupported platform?")
|
360
398
|
|
@@ -370,6 +408,8 @@ class Distro(object):
|
|
370
408
|
return 'amzn1'
|
371
409
|
elif self.dname == 'amazon2':
|
372
410
|
return 'amzn2'
|
411
|
+
elif self.dname == 'amazon2023':
|
412
|
+
return 'amzn2023'
|
373
413
|
return re.sub(r'^rh(el\d).*$', r'\1', build_os)
|
374
414
|
|
375
415
|
|
@@ -489,7 +529,7 @@ def setupdir(distro, build_os, arch, spec):
|
|
489
529
|
# would be dst/x86_64/debian-sysvinit/wheezy/libmongocrypt/
|
490
530
|
# or dst/x86_64/redhat/rhel55/libmongocrypt/
|
491
531
|
return "dst/%s/%s/%s/%s-%s/" % (arch, distro.name(), build_os, distro.pkgbase(),
|
492
|
-
|
532
|
+
spec.pversion(distro))
|
493
533
|
|
494
534
|
|
495
535
|
def unpack_binaries_into(build_os, arch, spec, where):
|
@@ -504,7 +544,10 @@ def unpack_binaries_into(build_os, arch, spec, where):
|
|
504
544
|
try:
|
505
545
|
sysassert(["tar", "xvzf", rootdir + "/" + tarfile(build_os, arch, spec)])
|
506
546
|
release_dir = glob('libmongocrypt-*')[0]
|
507
|
-
for releasefile in "lib", "lib64", "include":
|
547
|
+
for releasefile in "lib", "lib64", "include", "LICENSE", "README.md":
|
548
|
+
# MC: wrap print() and os.rename() in a conditional since as a library
|
549
|
+
# we have to consider that sometimes artifacts are in lib and other
|
550
|
+
# times they are in lib64
|
508
551
|
if os.path.exists("%s/%s" % (release_dir, releasefile)):
|
509
552
|
print("moving file: %s/%s" % (release_dir, releasefile))
|
510
553
|
os.rename("%s/%s" % (release_dir, releasefile), releasefile)
|
@@ -524,16 +567,23 @@ def make_package(distro, build_os, arch, spec, srcdir):
|
|
524
567
|
|
525
568
|
sdir = setupdir(distro, build_os, arch, spec)
|
526
569
|
ensure_dir(sdir)
|
570
|
+
# Note that the RPM packages get their man pages from the debian
|
571
|
+
# directory, so the debian directory is needed in all cases (and
|
572
|
+
# innocuous in the debianoids' sdirs).
|
527
573
|
for pkgdir in ["etc/debian", "etc/rpm"]:
|
528
574
|
print("Copying packaging files from %s to %s" % ("%s/%s" % (srcdir, pkgdir), sdir))
|
575
|
+
# FIXME: sh-dash-cee is bad. See if tarfile can do this.
|
529
576
|
sysassert([
|
530
577
|
"sh", "-c",
|
578
|
+
# MC: we use --strip-components=1 since the 'debian/' and 'rpm/'
|
579
|
+
# dirs are under 'etc/' in the libmongocrypt repo
|
531
580
|
"(cd \"%s\" && tar cf - %s ) | (cd \"%s\" && tar --strip-components=1 -xvf -)" % (srcdir, pkgdir, sdir)
|
532
581
|
])
|
533
582
|
# Splat the binaries under sdir. The "build" stages of the
|
534
583
|
# packaging infrastructure will move the files to wherever they
|
535
584
|
# need to go.
|
536
585
|
unpack_binaries_into(build_os, arch, spec, sdir)
|
586
|
+
|
537
587
|
return distro.make_pkg(build_os, arch, spec, srcdir)
|
538
588
|
|
539
589
|
|
@@ -549,6 +599,11 @@ def make_repo(repodir, distro, build_os):
|
|
549
599
|
|
550
600
|
def make_deb(distro, build_os, arch, spec, srcdir):
|
551
601
|
"""Make the Debian script."""
|
602
|
+
# I can't remember the details anymore, but the initscript/upstart
|
603
|
+
# job files' names must match the package name in some way; and
|
604
|
+
# see also the --name flag to dh_installinit in the generated
|
605
|
+
# debian/rules file.
|
606
|
+
# MC: We leave out all the stuff that the server does related to init scripts
|
552
607
|
sdir = setupdir(distro, build_os, arch, spec)
|
553
608
|
# Rewrite the control and rules files
|
554
609
|
write_debian_changelog(sdir + "debian/changelog", spec, srcdir, distro)
|
@@ -560,6 +615,9 @@ def make_deb(distro, build_os, arch, spec, srcdir):
|
|
560
615
|
"cp", "-v", srcdir + "etc/debian/rules", sdir + "debian/rules"
|
561
616
|
])
|
562
617
|
|
618
|
+
# MC: Skip some server-specific things, like variations of the controls and
|
619
|
+
# rules files, as well as maintainer scripts (i.e., postinst)
|
620
|
+
|
563
621
|
# Do the packaging.
|
564
622
|
oldcwd = os.getcwd()
|
565
623
|
try:
|
@@ -621,7 +679,7 @@ Description: libmongocrypt packages
|
|
621
679
|
os.chdir(oldpwd)
|
622
680
|
|
623
681
|
|
624
|
-
def move_repos_into_place(src, dst):
|
682
|
+
def move_repos_into_place(src, dst):
|
625
683
|
"""Move the repos into place."""
|
626
684
|
# Find all the stuff in src/*, move it to a freshly-created
|
627
685
|
# directory beside dst, then play some games with symlinks so that
|
@@ -690,6 +748,8 @@ def write_debian_changelog(path, spec, srcdir, distro):
|
|
690
748
|
"""Write the debian changelog."""
|
691
749
|
oldcwd = os.getcwd()
|
692
750
|
os.chdir(srcdir)
|
751
|
+
# MC: Rather than using Git to generate the changelog (like the server), we
|
752
|
+
# just use a simple boilerplate changelog
|
693
753
|
preamble = "libmongocrypt (%s-0) unstable; urgency=medium\n\n" % spec.pversion(distro)
|
694
754
|
preamble += " * Built from Evergreen.\n\n"
|
695
755
|
preamble += " -- Roberto C. Sanchez <roberto@connexer.com> "
|
@@ -701,72 +761,26 @@ def write_debian_changelog(path, spec, srcdir, distro):
|
|
701
761
|
]).decode('utf-8')
|
702
762
|
finally:
|
703
763
|
os.chdir(oldcwd)
|
764
|
+
# MC: No need to munge the version and rewrite the changelog
|
704
765
|
with open(path, 'w') as fh:
|
705
766
|
fh.write(sb)
|
706
767
|
|
707
768
|
|
708
|
-
def make_rpm(distro, build_os, arch, spec, srcdir):
|
769
|
+
def make_rpm(distro, build_os, arch, spec, srcdir):
|
709
770
|
"""Create the RPM specfile."""
|
710
771
|
sdir = setupdir(distro, build_os, arch, spec)
|
711
772
|
|
712
773
|
specfile = srcdir + "etc/rpm/libmongocrypt.spec"
|
713
774
|
|
775
|
+
# No need to mess with init scripts and such like the server
|
776
|
+
|
714
777
|
topdir = ensure_dir('%s/rpmbuild/%s/' % (os.getcwd(), build_os))
|
715
778
|
for subdir in ["BUILD", "RPMS", "SOURCES", "SPECS", "SRPMS"]:
|
716
779
|
ensure_dir("%s/%s/" % (topdir, subdir))
|
717
780
|
distro_arch = distro.archname(arch)
|
718
|
-
|
719
|
-
#
|
720
|
-
|
721
|
-
# load, so we have to figure out what it would normally load,
|
722
|
-
# augment that list, and tell RPM to use the augmented list. To
|
723
|
-
# figure out what macrofiles ordinarily get loaded, older RPM
|
724
|
-
# versions had a parameter called "macrofiles" that could be
|
725
|
-
# extracted from "rpm --showrc". But newer RPM versions don't
|
726
|
-
# have this. To tell RPM what macros to use, older versions of
|
727
|
-
# RPM have a --macros option that doesn't work; on these versions,
|
728
|
-
# you can put a "macrofiles" parameter into an rpmrc file. But
|
729
|
-
# that "macrofiles" setting doesn't do anything for newer RPM
|
730
|
-
# versions, where you have to use the --macros flag instead. And
|
731
|
-
# all of this is to let us do our work with some guarantee that
|
732
|
-
# we're not clobbering anything that doesn't belong to us.
|
733
|
-
#
|
734
|
-
# On RHEL systems, --rcfile will generally be used and
|
735
|
-
# --macros will be used in Ubuntu.
|
736
|
-
#
|
737
|
-
macrofiles = [
|
738
|
-
l for l in backtick(["rpm", "--showrc"]).decode('utf-8').split("\n")
|
739
|
-
if l.startswith("macrofiles")
|
740
|
-
]
|
741
|
-
flags = []
|
742
|
-
macropath = os.getcwd() + "/macros"
|
743
|
-
|
744
|
-
write_rpm_macros_file(macropath, topdir, distro.release_dist(build_os))
|
745
|
-
if macrofiles:
|
746
|
-
macrofiles = macrofiles[0] + ":" + macropath
|
747
|
-
rcfile = os.getcwd() + "/rpmrc"
|
748
|
-
write_rpmrc_file(rcfile, macrofiles)
|
749
|
-
flags = ["--rcfile", rcfile]
|
750
|
-
else:
|
751
|
-
# This hard-coded hooey came from some box running RPM
|
752
|
-
# 4.4.2.3. It may not work over time, but RPM isn't sanely
|
753
|
-
# configurable.
|
754
|
-
flags = [
|
755
|
-
"--macros",
|
756
|
-
"/usr/lib/rpm/macros:/usr/lib/rpm/%s-linux/macros:/usr/lib/rpm/suse/macros:/etc/rpm/macros.*:/etc/rpm/macros:/etc/rpm/%s-linux/macros:~/.rpmmacros:%s"
|
757
|
-
% (distro_arch, distro_arch, macropath)
|
758
|
-
]
|
759
|
-
# Put the specfile and the tar'd up binaries and stuff in
|
760
|
-
# place.
|
761
|
-
#
|
762
|
-
# The version of rpm and rpm tools in RHEL 5.5 can't interpolate the
|
763
|
-
# %{dynamic_version} macro, so do it manually
|
764
|
-
with open(specfile, "r") as spec_source:
|
765
|
-
with open(topdir + "SPECS/" + os.path.basename(specfile), "w") as spec_dest:
|
766
|
-
for line in spec_source:
|
767
|
-
line = line.replace('%{dynamic_version}', spec.pversion(distro))
|
768
|
-
line = line.replace('%{dynamic_release}', spec.prelease())
|
769
|
-
spec_dest.write(line)
|
781
|
+
|
782
|
+
# Places the RPM Spec file where it's expected for the rpmbuild execution later.
|
783
|
+
shutil.copy(specfile, topdir + "SPECS")
|
770
784
|
|
771
785
|
oldcwd = os.getcwd()
|
772
786
|
os.chdir(sdir + "/../")
|
@@ -780,10 +794,39 @@ def make_rpm(distro, build_os, arch, spec, srcdir): # pylint: disable=too-many-
|
|
780
794
|
os.chdir(oldcwd)
|
781
795
|
# Do the build.
|
782
796
|
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
797
|
+
# MC: Dump the rpm config.
|
798
|
+
bt = backtick(["rpm", "--showrc"]).decode('utf-8')
|
799
|
+
print(bt)
|
800
|
+
#
|
801
|
+
# MC: Add some macro definitions to the rpmbuild invocation:
|
802
|
+
#
|
803
|
+
# _arch - it seems like this one ought to be defined by RPM, but it appears
|
804
|
+
# to not be and without it the build fails to find some artifacts
|
805
|
+
#
|
806
|
+
# _smp_build_ncpus - it seems that on some platforms xargs is invoked in
|
807
|
+
# such a way that if _smp_build_ncpus is not set (which it apparently is not
|
808
|
+
# on every platform) then the xargs invocation fails
|
809
|
+
#
|
810
|
+
# debug_package - tells rpmbuild that there is no package to build with
|
811
|
+
# debugging information/symbols; we don't generate them and since we are
|
812
|
+
# packaging a library rpmbuild expects to find them
|
813
|
+
#
|
814
|
+
flags = [
|
815
|
+
"-D",
|
816
|
+
"_smp_build_ncpus 1",
|
817
|
+
"-D",
|
818
|
+
"debug_package %{nil}",
|
819
|
+
"-D",
|
820
|
+
"_arch {}".format(arch),
|
821
|
+
"-D",
|
822
|
+
"_topdir {}".format(topdir),
|
823
|
+
"-D",
|
824
|
+
"dist .{}".format(distro.release_dist(build_os)),
|
825
|
+
"-D",
|
826
|
+
"dynamic_version {}".format(spec.pversion(distro)),
|
827
|
+
"-D",
|
828
|
+
"dynamic_release {}".format(spec.prelease()),
|
829
|
+
]
|
787
830
|
|
788
831
|
# Versions of RPM after 4.4 ignore our BuildRoot tag so we need to
|
789
832
|
# specify it on the command line args to rpmbuild
|
@@ -814,20 +857,6 @@ def make_rpm_repo(repo):
|
|
814
857
|
os.chdir(oldpwd)
|
815
858
|
|
816
859
|
|
817
|
-
def write_rpmrc_file(path, string):
|
818
|
-
"""Write the RPM rc file."""
|
819
|
-
with open(path, 'w') as fh:
|
820
|
-
fh.write(string)
|
821
|
-
|
822
|
-
|
823
|
-
def write_rpm_macros_file(path, topdir, release_dist):
|
824
|
-
"""Write the RPM macros file."""
|
825
|
-
with open(path, 'w') as fh:
|
826
|
-
fh.write("%%_topdir %s\n" % topdir)
|
827
|
-
fh.write("%%dist .%s\n" % release_dist)
|
828
|
-
fh.write("%_use_internal_dependency_generator 0\n")
|
829
|
-
|
830
|
-
|
831
860
|
def ensure_dir(filename):
|
832
861
|
"""Ensure that the dirname directory of filename exists, and return filename."""
|
833
862
|
dirpart = os.path.dirname(filename)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# These package URLs (purls) point to the versions (tags) of external dependencies
|
2
|
+
# that are committed to the project. Refer: https://github.com/package-url/purl-spec
|
3
|
+
|
4
|
+
# This file is fed to silkbomb to generate the cyclonedx.sbom.json file. Edit this file
|
5
|
+
# instead of modifying the SBOM JSON directly. After modifying this file, be sure to
|
6
|
+
# re-generate the SBOM JSON file with: `./.evergreen/earthly.sh +sbom-generate`. If
|
7
|
+
# adding a new dependency, ensure the resulting SBOM JSON includes the `licenses` and
|
8
|
+
# `copyright` property. This information can be manually added.
|
9
|
+
|
10
|
+
# libbson is obtained via `cmake/FetchMongoC.cmake`.
|
11
|
+
pkg:github/mongodb/mongo-c-driver@v1.27.1?#src/libbson
|
12
|
+
|
13
|
+
# IntelDFP is obtained via `cmake/IntelDFP.cmake`
|
14
|
+
pkg:generic/IntelRDFPMathLib@20U2?download_url=https://www.netlib.org/misc/intel/IntelRDFPMathLib20U2.tar.gz
|
@@ -106,6 +106,42 @@ repos:
|
|
106
106
|
- yum/redhat/8/libmongocrypt
|
107
107
|
- yum/redhat/8Server/libmongocrypt
|
108
108
|
|
109
|
+
- name: rhel81
|
110
|
+
type: rpm
|
111
|
+
edition: org
|
112
|
+
bucket: libmongocrypt
|
113
|
+
region: us-east-1
|
114
|
+
repos:
|
115
|
+
- yum/redhat/8/libmongocrypt
|
116
|
+
- yum/redhat/8Server/libmongocrypt
|
117
|
+
|
118
|
+
- name: rhel82
|
119
|
+
type: rpm
|
120
|
+
edition: org
|
121
|
+
bucket: libmongocrypt
|
122
|
+
region: us-east-1
|
123
|
+
repos:
|
124
|
+
- yum/redhat/8/libmongocrypt
|
125
|
+
- yum/redhat/8Server/libmongocrypt
|
126
|
+
|
127
|
+
- name: rhel83
|
128
|
+
type: rpm
|
129
|
+
edition: org
|
130
|
+
bucket: libmongocrypt
|
131
|
+
region: us-east-1
|
132
|
+
repos:
|
133
|
+
- yum/redhat/8/libmongocrypt
|
134
|
+
- yum/redhat/8Server/libmongocrypt
|
135
|
+
|
136
|
+
- name: rhel91
|
137
|
+
type: rpm
|
138
|
+
edition: org
|
139
|
+
bucket: libmongocrypt
|
140
|
+
region: us-east-1
|
141
|
+
repos:
|
142
|
+
- yum/redhat/9/libmongocrypt
|
143
|
+
- yum/redhat/9Server/libmongocrypt
|
144
|
+
|
109
145
|
- name: amazon
|
110
146
|
type: rpm
|
111
147
|
edition: org
|
@@ -122,6 +158,14 @@ repos:
|
|
122
158
|
repos:
|
123
159
|
- yum/amazon/2/libmongocrypt
|
124
160
|
|
161
|
+
- name: amazon2023
|
162
|
+
type: rpm
|
163
|
+
edition: org
|
164
|
+
bucket: libmongocrypt
|
165
|
+
region: us-east-1
|
166
|
+
repos:
|
167
|
+
- yum/amazon/2023/libmongocrypt
|
168
|
+
|
125
169
|
- name: suse12
|
126
170
|
type: rpm
|
127
171
|
edition: org
|
@@ -187,6 +231,18 @@ repos:
|
|
187
231
|
repos:
|
188
232
|
- apt/debian/dists/bullseye/libmongocrypt
|
189
233
|
|
234
|
+
- name: debian12
|
235
|
+
type: deb
|
236
|
+
code_name: "bookworm"
|
237
|
+
bucket: libmongocrypt
|
238
|
+
region: us-east-1
|
239
|
+
edition: org
|
240
|
+
component: main
|
241
|
+
architectures:
|
242
|
+
- amd64
|
243
|
+
repos:
|
244
|
+
- apt/debian/dists/bookworm/libmongocrypt
|
245
|
+
|
190
246
|
- name: ubuntu1404
|
191
247
|
type: deb
|
192
248
|
code_name: "trusty"
|
@@ -0,0 +1,70 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
set -o errexit
|
4
|
+
set -o pipefail
|
5
|
+
set -o nounset
|
6
|
+
|
7
|
+
# Check for required commands:
|
8
|
+
if ! command -v jq > /dev/null 2>&1; then
|
9
|
+
echo "jq not found. Install jq"
|
10
|
+
exit 1
|
11
|
+
fi
|
12
|
+
|
13
|
+
if ! command -v curl > /dev/null 2>&1; then
|
14
|
+
echo "curl not found. Install curl"
|
15
|
+
exit 1
|
16
|
+
fi
|
17
|
+
|
18
|
+
# Check for required environment variables:
|
19
|
+
: "${silk_client_id:?}"
|
20
|
+
: "${silk_client_secret:?}"
|
21
|
+
: "${branch:?}"
|
22
|
+
|
23
|
+
# Get Silk token:
|
24
|
+
json_payload=$(cat <<EOF
|
25
|
+
{
|
26
|
+
"client_id": "${silk_client_id}",
|
27
|
+
"client_secret": "${silk_client_secret}"
|
28
|
+
}
|
29
|
+
EOF
|
30
|
+
)
|
31
|
+
silk_jwt_token=$(curl --no-progress-meter --fail --location -X POST "https://silkapi.us1.app.silk.security/api/v1/authenticate" \
|
32
|
+
-H "Accept: application/json" \
|
33
|
+
-H "Content-Type: application/json" \
|
34
|
+
-d "$json_payload" \
|
35
|
+
| jq -e -r '.token')
|
36
|
+
|
37
|
+
asset_id="libmongocrypt-${branch}"
|
38
|
+
|
39
|
+
# Create Silk asset group:
|
40
|
+
json_payload=$(cat <<EOF
|
41
|
+
{
|
42
|
+
"active": true,
|
43
|
+
"name": "${asset_id}",
|
44
|
+
"code_repo_url": "https://github.com/mongodb/libmongocrypt",
|
45
|
+
"branch": "${branch}",
|
46
|
+
"metadata": {
|
47
|
+
"sbom_lite_path": "etc/cyclonedx.sbom.json"
|
48
|
+
},
|
49
|
+
"file_paths": [],
|
50
|
+
"asset_id": "${asset_id}"
|
51
|
+
}
|
52
|
+
EOF
|
53
|
+
)
|
54
|
+
if ! reply=$(curl --no-progress-meter --fail-with-body --location -X 'POST' \
|
55
|
+
'https://silkapi.us1.app.silk.security/api/v1/raw/asset_group' \
|
56
|
+
-H "Accept: application/json" \
|
57
|
+
-H "Authorization: ${silk_jwt_token}" \
|
58
|
+
-H 'Content-Type: application/json' \
|
59
|
+
-d "$json_payload"); then
|
60
|
+
echo "Failed to create silk asset group. Got reply: $reply"
|
61
|
+
exit 1
|
62
|
+
fi
|
63
|
+
|
64
|
+
if silkid=$(echo "$reply" | jq -e ".silk_id"); then
|
65
|
+
echo "Created silk asset group with asset_id=$asset_id and silk_id=$silkid"
|
66
|
+
else
|
67
|
+
echo "Reply does not contain expected 'silk_id': $reply"
|
68
|
+
exit 1
|
69
|
+
fi
|
70
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# libmongocrypt SSDLC Compliance Report
|
2
|
+
|
3
|
+
## Release Creator
|
4
|
+
|
5
|
+
See [C/CXX Release Info](https://docs.google.com/spreadsheets/d/1yHfGmDnbA5-Qt8FX4tKWC5xk9AhzYZx1SKF4AD36ecY/edit?usp=sharing) (internal).
|
6
|
+
|
7
|
+
## Process Document
|
8
|
+
|
9
|
+
Not available. <!-- DRIVERS-2892: replace with link to public-facing document once available. -->
|
10
|
+
|
11
|
+
## Tool used to track third party vulnerabilities
|
12
|
+
|
13
|
+
Silk and Snyk.
|
14
|
+
|
15
|
+
## Third-Party Dependency Information
|
16
|
+
|
17
|
+
See `cyclonedx.augmented.sbom.json` attached to release.
|
18
|
+
|
19
|
+
## Static Analysis Findings
|
20
|
+
|
21
|
+
See [SSDLC Static Analysis Reports](https://drive.google.com/drive/folders/17bjBnQ3mhEXvs6IK1rrTphJr0CUO2qZh?usp=sharing) (internal) for release-specific reports.
|
22
|
+
|
23
|
+
## Security Testing Report
|
24
|
+
|
25
|
+
See [libmongocrypt Security Testing Summary](https://docs.google.com/document/d/1dc7uvBzu3okAIsA8LSW5sVQGkYIvwpBVdg5v4wb4c4s?usp=sharing) (internal). Available as needed from the libmongocrypt team.
|
26
|
+
|
27
|
+
## Security Assessment Report
|
28
|
+
|
29
|
+
Not applicable to libmongocrypt.
|
30
|
+
|
31
|
+
## Signature Information
|
32
|
+
|
33
|
+
Signatures for Windows binaries are attached to this release and may be verified with `gpg`. The public key for `libmongocrypt` is available on https://pgp.mongodb.com/.
|
34
|
+
|
35
|
+
## Known Vulnerabilities
|
36
|
+
|
37
|
+
Any vulnerabilities that may be shown in the links referenced above have been reviewed and accepted by the appropriate approvers. For detailed information, see `third_party_vulnerabilities.md` attached to release.
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# 3rd Party Dependency Vulnerabilities
|
2
|
+
|
3
|
+
This document tracks vulnerabilities in 3rd party dependencies that directly affect the standard release product of libmongocrypt.
|
4
|
+
|
5
|
+
> [!IMPORTANT]
|
6
|
+
> The "standard release product" is defined as the set of files which are _installed_ by a configuration, build, and install of libmongocrypt. This includes static/shared library files, header files, and packaging files for supported build configurations. Vulnerabilities for 3rd party dependencies that are bundled with the standard release product are reported in this document.
|
7
|
+
>
|
8
|
+
> Language bindings (in the `bindings` directory), test files, utility scripts, documentation generators, and other miscellaneous files and artifacts are NOT considered part of the standard release product, even if they are included in the release distribution tarball. Vulnerabilities for such 3rd party dependencies are NOT reported in this document.
|
9
|
+
|
10
|
+
## Template
|
11
|
+
|
12
|
+
This section provides a template that may be used for actual vulnerability reports further below.
|
13
|
+
|
14
|
+
### CVE-YYYY-NNNNNN
|
15
|
+
|
16
|
+
- **Date Detected:** YYYY-MM-DD
|
17
|
+
- **Severity:** Low, Medium, High, or Critical
|
18
|
+
- **Detector:** Silk or Snyk
|
19
|
+
- **Description:** A short vulnerability description.
|
20
|
+
- **Dependency:** Name and version of the 3rd party dependency.
|
21
|
+
- **Upstream Status:** False Positive, Won't Fix, Fix Pending, or Fix Available. This is the fix status for the 3rd party dependency, not libmongocrypt. "Fix Available" should include the version and/or date when the fix was released, e.g. "Fix Available (1.2.3, 1970-01-01)".
|
22
|
+
- **Fix Status:** False Positive, Won't Fix, Fix Pending, or Fix Committed. This is the fix status for the libmongocrypt. "False Positive" and "Won't Fix" must include rationale in notes below.
|
23
|
+
- **For Release:** The libmongocrypt release version for which the "Fix Status" above was last updated.
|
24
|
+
- **Notes:** Context or rationale for remediation, references to relevant issue trackers, etc.
|
25
|
+
|
26
|
+
## libbson
|
27
|
+
|
28
|
+
### CVE-2023-0437
|
29
|
+
|
30
|
+
- **Date Detected:** 2024-05-20
|
31
|
+
- **Severity:** Medium
|
32
|
+
- **Detector:** Snyk
|
33
|
+
- **Description:** Loop with Unreachable Exit Condition ('Infinite Loop')
|
34
|
+
- **Dependency:** mongodb/mongo-c-driver@1.17.7
|
35
|
+
- **Upstream Status:** Fix Available (1.25.0, 2023-11-01).
|
36
|
+
- **Fix Status:** Fix Committed.
|
37
|
+
- **For Release:** 1.10.1
|
38
|
+
- **Notes:** Fixed in libbson 1.25.0 ([CDRIVER-4747](https://jira.mongodb.org/browse/CDRIVER-4747)). Fixed in libmongocrypt by upgrading libbson to 1.27.1 ([MONGOCRYPT-685](https://jira.mongodb.org/browse/MONGOCRYPT-685)).
|
39
|
+
|
40
|
+
## IntelDFP
|
41
|
+
|
42
|
+
None.
|