libmongocrypt-helper 1.6.1.0.1001 → 1.7.4.0.1000

Sign up to get free protection for your applications and to get access to all the features.
Files changed (991) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/ext/libmongocrypt/extconf.rb +70 -0
  4. data/ext/libmongocrypt/libmongocrypt/CHANGELOG.md +164 -0
  5. data/ext/libmongocrypt/libmongocrypt/CMakeLists.txt +699 -0
  6. data/ext/libmongocrypt/libmongocrypt/CODEOWNERS +13 -0
  7. data/ext/libmongocrypt/libmongocrypt/LICENSE +201 -0
  8. data/ext/libmongocrypt/libmongocrypt/README.md +250 -0
  9. data/ext/libmongocrypt/libmongocrypt/VERSION_CURRENT +1 -0
  10. data/ext/libmongocrypt/libmongocrypt/bindings/cs/CMakeLists.txt +16 -0
  11. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/AssemblyInfo.cs +4 -0
  12. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/Binary.cs +131 -0
  13. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/BinarySafeHandle.cs +60 -0
  14. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CheckableSafeHandle.cs +46 -0
  15. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CipherCallbacks.cs +168 -0
  16. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/ContextSafeHandle.cs +48 -0
  17. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptClient.cs +238 -0
  18. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptClientFactory.cs +134 -0
  19. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptContext.cs +214 -0
  20. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptException.cs +37 -0
  21. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptOptions.cs +67 -0
  22. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/HashCallback.cs +59 -0
  23. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/HmacShaCallbacks.cs +96 -0
  24. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/IStatus.cs +26 -0
  25. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/KmsCredentials.cs +53 -0
  26. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/KmsKeyId.cs +91 -0
  27. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/KmsRequest.cs +125 -0
  28. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/KmsRequestCollection.cs +60 -0
  29. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/Library.cs +652 -0
  30. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/LibraryLoader.cs +252 -0
  31. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/LibraryLoadingException.cs +34 -0
  32. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/License.txt +14 -0
  33. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/LogLevel.cs +26 -0
  34. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/MongoCryptSafeHandle.cs +48 -0
  35. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/MongoDB.Libmongocrypt.csproj +106 -0
  36. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/MongoDB.Libmongocrypt.ruleset +85 -0
  37. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/MongoDB.Libmongocrypt.targets +21 -0
  38. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/OperatingSystemHelper.cs +59 -0
  39. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/Package.include.template.csproj +38 -0
  40. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/PinnedBinary.cs +49 -0
  41. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/SecureRandomCallback.cs +51 -0
  42. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/SigningRSAESPKCSCallback.cs +74 -0
  43. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/Status.cs +94 -0
  44. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/StatusSafeHandle.cs +60 -0
  45. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/StyleCop.ruleset +11 -0
  46. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/stylecop.json +8 -0
  47. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Example/MongoDB.Libmongocrypt.Example.csproj +23 -0
  48. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Example/Package.include.template.csproj +11 -0
  49. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Example/Program.cs +442 -0
  50. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/BasicTests.cs +748 -0
  51. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/BsonUtil.cs +82 -0
  52. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/CallbackUtils.cs +37 -0
  53. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/CipherCallbacksTests.cs +46 -0
  54. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/HashCallbackTests.cs +37 -0
  55. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/HmacShaCallbacksTests.cs +37 -0
  56. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/MongoDB.Libmongocrypt.Test.csproj +35 -0
  57. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/Package.include.template.csproj +23 -0
  58. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/SigningRSAESPKCSCallbackTests.cs +64 -0
  59. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/collection-info.json +37 -0
  60. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/command-reply.json +13 -0
  61. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/encrypted-command-reply.json +16 -0
  62. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/encrypted-command.json +11 -0
  63. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/encrypted-value.json +6 -0
  64. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/key-document.json +36 -0
  65. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/key-filter.json +19 -0
  66. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/list-collections-filter.json +3 -0
  67. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/test/example/mongocryptd-command.json +22 -0
  68. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/xunit.runner.json +6 -0
  69. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test32/BasicTests.cs +54 -0
  70. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test32/MongoDB.Libmongocrypt.Test32.csproj +42 -0
  71. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test32/Package.include.template.csproj +23 -0
  72. data/ext/libmongocrypt/libmongocrypt/bindings/cs/README.md +66 -0
  73. data/ext/libmongocrypt/libmongocrypt/bindings/cs/Scripts/build.cake +219 -0
  74. data/ext/libmongocrypt/libmongocrypt/bindings/cs/Scripts/build.ps1 +275 -0
  75. data/ext/libmongocrypt/libmongocrypt/bindings/cs/Scripts/build.sh +77 -0
  76. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/README.md +36 -0
  77. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/build.gradle.kts +339 -0
  78. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradle/wrapper/gradle-wrapper.jar +0 -0
  79. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradle/wrapper/gradle-wrapper.properties +5 -0
  80. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradlew +188 -0
  81. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/gradlew.bat +100 -0
  82. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/BinaryHolder.java +45 -0
  83. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/CAPI.java +1130 -0
  84. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/CAPIHelper.java +96 -0
  85. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/CipherCallback.java +66 -0
  86. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/DisposableMemory.java +31 -0
  87. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/JULLogger.java +130 -0
  88. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/Logger.java +144 -0
  89. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/Loggers.java +50 -0
  90. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MacCallback.java +60 -0
  91. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MessageDigestCallback.java +55 -0
  92. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoAwsKmsProviderOptions.java +104 -0
  93. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCrypt.java +100 -0
  94. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptContext.java +137 -0
  95. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptContextImpl.java +164 -0
  96. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptException.java +67 -0
  97. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptImpl.java +408 -0
  98. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCryptOptions.java +284 -0
  99. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoCrypts.java +38 -0
  100. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoDataKeyOptions.java +125 -0
  101. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoExplicitEncryptOptions.java +225 -0
  102. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoKeyDecryptor.java +76 -0
  103. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoKeyDecryptorImpl.java +105 -0
  104. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoLocalKmsProviderOptions.java +83 -0
  105. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/MongoRewrapManyDataKeyOptions.java +104 -0
  106. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/SLF4JLogger.java +110 -0
  107. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/SecureRandomCallback.java +51 -0
  108. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/SigningRSAESPKCSCallback.java +76 -0
  109. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/main/java/com/mongodb/crypt/capi/package-info.java +18 -0
  110. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/java/com/mongodb/crypt/capi/MongoCryptTest.java +345 -0
  111. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/collection-info.json +37 -0
  112. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/command-reply.json +13 -0
  113. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/command.json +6 -0
  114. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/encrypted-command-reply.json +16 -0
  115. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/encrypted-command.json +11 -0
  116. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/encrypted-value.json +6 -0
  117. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit/int32/encrypted-payload.json +26 -0
  118. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit/int32/key-document.json +0 -0
  119. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit/int32/key-filter.json +19 -0
  120. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit/int32/rangeopts.json +11 -0
  121. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit/int32/value-to-encrypt.json +20 -0
  122. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/json-schema.json +15 -0
  123. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/key-document.json +36 -0
  124. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/key-filter-keyAltName.json +14 -0
  125. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/key-filter.json +19 -0
  126. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/keys/ABCDEFAB123498761234123456789012-local-document.json +30 -0
  127. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/kms-reply.txt +6 -0
  128. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/list-collections-filter.json +3 -0
  129. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/mongocryptd-command.json +22 -0
  130. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/mongocryptd-reply.json +18 -0
  131. data/ext/libmongocrypt/libmongocrypt/bindings/node/CHANGELOG.md +81 -0
  132. data/ext/libmongocrypt/libmongocrypt/bindings/node/LICENSE +201 -0
  133. data/ext/libmongocrypt/libmongocrypt/bindings/node/README.md +773 -0
  134. data/ext/libmongocrypt/libmongocrypt/bindings/node/binding.gyp +79 -0
  135. data/ext/libmongocrypt/libmongocrypt/bindings/node/etc/README.hbs +44 -0
  136. data/ext/libmongocrypt/libmongocrypt/bindings/node/etc/build-static.sh +39 -0
  137. data/ext/libmongocrypt/libmongocrypt/bindings/node/index.d.ts +515 -0
  138. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/autoEncrypter.js +420 -0
  139. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/buffer_pool.js +123 -0
  140. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/clientEncryption.js +699 -0
  141. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/common.js +100 -0
  142. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/credentialsProvider.js +33 -0
  143. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/cryptoCallbacks.js +87 -0
  144. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/index.js +42 -0
  145. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/mongocryptdManager.js +66 -0
  146. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/stateMachine.js +487 -0
  147. data/ext/libmongocrypt/libmongocrypt/bindings/node/package-lock.json +16051 -0
  148. data/ext/libmongocrypt/libmongocrypt/bindings/node/package.json +81 -0
  149. data/ext/libmongocrypt/libmongocrypt/bindings/node/src/mongocrypt.cc +929 -0
  150. data/ext/libmongocrypt/libmongocrypt/bindings/node/src/mongocrypt.h +114 -0
  151. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/autoEncrypter.test.js +953 -0
  152. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/buffer_pool.test.js +91 -0
  153. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/clientEncryption.test.js +701 -0
  154. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/credentialsProvider.test.js +163 -0
  155. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/cryptoCallbacks.test.js +284 -0
  156. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/README.md +5 -0
  157. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/cmd.json +6 -0
  158. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/collection-info.json +37 -0
  159. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/encrypted-document-nested.json +8 -0
  160. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/encrypted-document.json +11 -0
  161. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/encryptedFields.json +30 -0
  162. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/key-document.json +32 -0
  163. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/key1-document.json +30 -0
  164. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/kms-decrypt-reply.txt +6 -0
  165. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/kms-encrypt-reply.txt +7 -0
  166. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/data/mongocryptd-reply.json +18 -0
  167. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/mongocryptdManager.test.js +48 -0
  168. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/release.test.js +59 -0
  169. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/requirements.helper.js +29 -0
  170. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/stateMachine.test.js +331 -0
  171. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/tools/mongodb_reporter.js +325 -0
  172. data/ext/libmongocrypt/libmongocrypt/bindings/python/CHANGELOG.rst +121 -0
  173. data/ext/libmongocrypt/libmongocrypt/bindings/python/LICENSE +201 -0
  174. data/ext/libmongocrypt/libmongocrypt/bindings/python/README.rst +187 -0
  175. data/ext/libmongocrypt/libmongocrypt/bindings/python/RELEASE.rst +107 -0
  176. data/ext/libmongocrypt/libmongocrypt/bindings/python/build-manylinux-wheel.sh +16 -0
  177. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/__init__.py +16 -0
  178. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/auto_encrypter.py +61 -0
  179. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/binary.py +94 -0
  180. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/binding.py +1561 -0
  181. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/compat.py +61 -0
  182. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/credentials.py +136 -0
  183. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/crypto.py +162 -0
  184. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/errors.py +39 -0
  185. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/explicit_encrypter.py +248 -0
  186. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/mongocrypt.py +808 -0
  187. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/state_machine.py +156 -0
  188. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/version.py +17 -0
  189. data/ext/libmongocrypt/libmongocrypt/bindings/python/release.sh +92 -0
  190. data/ext/libmongocrypt/libmongocrypt/bindings/python/setup.py +84 -0
  191. data/ext/libmongocrypt/libmongocrypt/bindings/python/strip_header.py +51 -0
  192. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/__init__.py +37 -0
  193. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/collection-info.json +39 -0
  194. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/command-reply.json +13 -0
  195. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/command.json +6 -0
  196. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/compact/success/cmd.json +1 -0
  197. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/compact/success/encrypted-field-config-map.json +47 -0
  198. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/compact/success/encrypted-payload.json +23 -0
  199. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/encrypted-command-reply.json +16 -0
  200. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/encrypted-command.json +13 -0
  201. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/encrypted-field-config-map.json +48 -0
  202. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/encrypted-value.json +6 -0
  203. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/fle2-find-range-explicit/int32/encrypted-payload.json +26 -0
  204. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/fle2-find-range-explicit/int32/rangeopts.json +11 -0
  205. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/fle2-find-range-explicit/int32/value-to-encrypt.json +20 -0
  206. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/key-document-azure.json +33 -0
  207. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/key-document-gcp.json +35 -0
  208. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/key-document.json +33 -0
  209. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/key-filter.json +19 -0
  210. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/keys/12345678123498761234123456789012-local-document.json +30 -0
  211. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/keys/12345678123498761234123456789013-local-document.json +30 -0
  212. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/keys/ABCDEFAB123498761234123456789012-local-document.json +30 -0
  213. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/kms-encrypt-reply.txt +7 -0
  214. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/kms-reply-azure.txt +6 -0
  215. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/kms-reply-gcp.txt +6 -0
  216. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/kms-reply.txt +6 -0
  217. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/list-collections-filter.json +3 -0
  218. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/mongocryptd-command.json +26 -0
  219. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/mongocryptd-reply.json +20 -0
  220. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/schema-map.json +40 -0
  221. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/test_binding.py +71 -0
  222. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/test_crypto.py +49 -0
  223. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/test_mongocrypt.py +825 -0
  224. data/ext/libmongocrypt/libmongocrypt/bindings/python/test-requirements.txt +12 -0
  225. data/ext/libmongocrypt/libmongocrypt/cmake/FetchMongoC.cmake +20 -0
  226. data/ext/libmongocrypt/libmongocrypt/cmake/ImportBSON.cmake +209 -0
  227. data/ext/libmongocrypt/libmongocrypt/cmake/ImportDFP.cmake +70 -0
  228. data/ext/libmongocrypt/libmongocrypt/cmake/IntelDFP.cmake +409 -0
  229. data/ext/libmongocrypt/libmongocrypt/cmake/LTO.cmake +57 -0
  230. data/ext/libmongocrypt/libmongocrypt/cmake/MongoC-Warnings.cmake +74 -0
  231. data/ext/libmongocrypt/libmongocrypt/cmake/libmongocrypt-hidden-symbols.map +8 -0
  232. data/ext/libmongocrypt/libmongocrypt/cmake/libmongocrypt-hidden-symbols.txt +5 -0
  233. data/ext/libmongocrypt/libmongocrypt/cmake/libmongocrypt-static.pc.in +9 -0
  234. data/ext/libmongocrypt/libmongocrypt/cmake/libmongocrypt.pc.in +10 -0
  235. data/ext/libmongocrypt/libmongocrypt/cmake/ltocheck-lib.c +6 -0
  236. data/ext/libmongocrypt/libmongocrypt/cmake/ltocheck-main.c +9 -0
  237. data/ext/libmongocrypt/libmongocrypt/cmake/mongocrypt-config.cmake +42 -0
  238. data/ext/libmongocrypt/libmongocrypt/debian/build_snapshot.sh +79 -0
  239. data/ext/libmongocrypt/libmongocrypt/debian/changelog +105 -0
  240. data/ext/libmongocrypt/libmongocrypt/debian/compat +1 -0
  241. data/ext/libmongocrypt/libmongocrypt/debian/control +41 -0
  242. data/ext/libmongocrypt/libmongocrypt/debian/copyright +129 -0
  243. data/ext/libmongocrypt/libmongocrypt/debian/gbp.conf +23 -0
  244. data/ext/libmongocrypt/libmongocrypt/debian/libmongocrypt-dev.dirs +2 -0
  245. data/ext/libmongocrypt/libmongocrypt/debian/libmongocrypt-dev.install +5 -0
  246. data/ext/libmongocrypt/libmongocrypt/debian/libmongocrypt0.dirs +1 -0
  247. data/ext/libmongocrypt/libmongocrypt/debian/libmongocrypt0.install +1 -0
  248. data/ext/libmongocrypt/libmongocrypt/debian/rules +46 -0
  249. data/ext/libmongocrypt/libmongocrypt/debian/source/format +1 -0
  250. data/ext/libmongocrypt/libmongocrypt/debian/source/lintian-overrides +3 -0
  251. data/ext/libmongocrypt/libmongocrypt/debian/source/options +1 -0
  252. data/ext/libmongocrypt/libmongocrypt/debian/watch +3 -0
  253. data/ext/libmongocrypt/libmongocrypt/doc/Doxygen +2474 -0
  254. data/ext/libmongocrypt/libmongocrypt/etc/calc_release_version.py +265 -0
  255. data/ext/libmongocrypt/libmongocrypt/etc/debian/control +33 -0
  256. data/ext/libmongocrypt/libmongocrypt/etc/debian/rules +41 -0
  257. data/ext/libmongocrypt/libmongocrypt/etc/debian/source/format +1 -0
  258. data/ext/libmongocrypt/libmongocrypt/etc/fle2_aead_generate_tests.py +41 -0
  259. data/ext/libmongocrypt/libmongocrypt/etc/fle2_crypto.py +105 -0
  260. data/ext/libmongocrypt/libmongocrypt/etc/fle2_crypto_selftest.py +52 -0
  261. data/ext/libmongocrypt/libmongocrypt/etc/fle2_generate_tests.py +34 -0
  262. data/ext/libmongocrypt/libmongocrypt/etc/generate-kek-tests.py +69 -0
  263. data/ext/libmongocrypt/libmongocrypt/etc/generate-test-data.py +141 -0
  264. data/ext/libmongocrypt/libmongocrypt/etc/list-compile-files.py +20 -0
  265. data/ext/libmongocrypt/libmongocrypt/etc/mongo-inteldfp-MONGOCRYPT-571.patch +25 -0
  266. data/ext/libmongocrypt/libmongocrypt/etc/mongo-inteldfp-s390x.patch +134 -0
  267. data/ext/libmongocrypt/libmongocrypt/etc/packager.py +854 -0
  268. data/ext/libmongocrypt/libmongocrypt/etc/print-marking.py +36 -0
  269. data/ext/libmongocrypt/libmongocrypt/etc/repo_config.yaml +257 -0
  270. data/ext/libmongocrypt/libmongocrypt/etc/requirements.txt +2 -0
  271. data/ext/libmongocrypt/libmongocrypt/etc/rewrite.py +16 -0
  272. data/ext/libmongocrypt/libmongocrypt/etc/rpm/libmongocrypt.spec +67 -0
  273. data/ext/libmongocrypt/libmongocrypt/etc/rpm/tweak.awk +19 -0
  274. data/ext/libmongocrypt/libmongocrypt/integrating.md +251 -0
  275. data/ext/libmongocrypt/libmongocrypt/kms-message/CMakeLists.txt +305 -0
  276. data/ext/libmongocrypt/libmongocrypt/kms-message/COPYING +177 -0
  277. data/ext/libmongocrypt/libmongocrypt/kms-message/README.md +41 -0
  278. data/ext/libmongocrypt/libmongocrypt/kms-message/THIRD_PARTY_NOTICES +42 -0
  279. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/LICENSE +202 -0
  280. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/NOTICE +2 -0
  281. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.authz +1 -0
  282. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.creq +9 -0
  283. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.req +6 -0
  284. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.sreq +7 -0
  285. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-key-duplicate/get-header-key-duplicate.sts +4 -0
  286. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.authz +1 -0
  287. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.creq +9 -0
  288. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.req +6 -0
  289. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.sreq +7 -0
  290. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-multiline/get-header-value-multiline.sts +4 -0
  291. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.authz +1 -0
  292. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.creq +9 -0
  293. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.req +7 -0
  294. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.sreq +8 -0
  295. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-order/get-header-value-order.sts +4 -0
  296. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.authz +1 -0
  297. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.creq +10 -0
  298. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.req +5 -0
  299. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.sreq +6 -0
  300. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-header-value-trim/get-header-value-trim.sts +4 -0
  301. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-unreserved/get-unreserved.authz +1 -0
  302. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-unreserved/get-unreserved.creq +8 -0
  303. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-unreserved/get-unreserved.req +3 -0
  304. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-unreserved/get-unreserved.sreq +4 -0
  305. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-unreserved/get-unreserved.sts +4 -0
  306. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-utf8/get-utf8.authz +1 -0
  307. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-utf8/get-utf8.creq +8 -0
  308. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-utf8/get-utf8.req +3 -0
  309. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-utf8/get-utf8.sreq +4 -0
  310. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-utf8/get-utf8.sts +4 -0
  311. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla/get-vanilla.authz +1 -0
  312. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla/get-vanilla.creq +8 -0
  313. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla/get-vanilla.req +3 -0
  314. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla/get-vanilla.sreq +4 -0
  315. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla/get-vanilla.sts +4 -0
  316. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.authz +1 -0
  317. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.creq +8 -0
  318. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.req +3 -0
  319. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.sreq +4 -0
  320. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-empty-query-key/get-vanilla-empty-query-key.sts +4 -0
  321. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.authz +1 -0
  322. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.creq +8 -0
  323. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.req +3 -0
  324. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.sreq +4 -0
  325. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query/get-vanilla-query.sts +4 -0
  326. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.authz +1 -0
  327. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.creq +8 -0
  328. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.req +3 -0
  329. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.sreq +4 -0
  330. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-key/get-vanilla-query-order-key.sts +4 -0
  331. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.authz +1 -0
  332. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.creq +8 -0
  333. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.req +3 -0
  334. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.sreq +4 -0
  335. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-key-case/get-vanilla-query-order-key-case.sts +4 -0
  336. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.authz +1 -0
  337. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.creq +8 -0
  338. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.req +3 -0
  339. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.sreq +4 -0
  340. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-order-value/get-vanilla-query-order-value.sts +4 -0
  341. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.authz +1 -0
  342. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.creq +8 -0
  343. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.req +3 -0
  344. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.sreq +4 -0
  345. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-query-unreserved/get-vanilla-query-unreserved.sts +4 -0
  346. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.authz +1 -0
  347. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.creq +8 -0
  348. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.req +3 -0
  349. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.sreq +4 -0
  350. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/get-vanilla-utf8-query/get-vanilla-utf8-query.sts +4 -0
  351. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.authz +1 -0
  352. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.creq +8 -0
  353. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.req +3 -0
  354. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.sreq +4 -0
  355. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-relative/get-relative.sts +4 -0
  356. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.authz +1 -0
  357. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.creq +8 -0
  358. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.req +3 -0
  359. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.sreq +4 -0
  360. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-relative-relative/get-relative-relative.sts +4 -0
  361. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.authz +1 -0
  362. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.creq +8 -0
  363. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.req +3 -0
  364. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.sreq +4 -0
  365. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash/get-slash.sts +4 -0
  366. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.authz +1 -0
  367. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.creq +8 -0
  368. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.req +3 -0
  369. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.sreq +4 -0
  370. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash-dot-slash/get-slash-dot-slash.sts +4 -0
  371. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.authz +1 -0
  372. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.creq +8 -0
  373. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.req +3 -0
  374. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.sreq +4 -0
  375. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slash-pointless-dot/get-slash-pointless-dot.sts +4 -0
  376. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.authz +1 -0
  377. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.creq +8 -0
  378. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.req +3 -0
  379. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.sreq +4 -0
  380. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-slashes/get-slashes.sts +4 -0
  381. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-space/get-space.authz +1 -0
  382. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-space/get-space.creq +8 -0
  383. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-space/get-space.req +3 -0
  384. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-space/get-space.sreq +4 -0
  385. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/get-space/get-space.sts +4 -0
  386. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/normalize-path/normalize-path.txt +3 -0
  387. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.authz +1 -0
  388. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.creq +8 -0
  389. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.req +3 -0
  390. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.sreq +4 -0
  391. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-key-case/post-header-key-case.sts +4 -0
  392. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.authz +1 -0
  393. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.creq +9 -0
  394. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.req +4 -0
  395. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.sreq +5 -0
  396. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-key-sort/post-header-key-sort.sts +4 -0
  397. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.authz +1 -0
  398. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.creq +9 -0
  399. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.req +4 -0
  400. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.sreq +5 -0
  401. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-header-value-case/post-header-value-case.sts +4 -0
  402. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.authz +1 -0
  403. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.creq +8 -0
  404. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.req +3 -0
  405. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.sreq +5 -0
  406. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-sts-token/post-sts-header-after/post-sts-header-after.sts +4 -0
  407. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.authz +1 -0
  408. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.creq +9 -0
  409. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.req +4 -0
  410. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.sreq +5 -0
  411. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-sts-token/post-sts-header-before/post-sts-header-before.sts +4 -0
  412. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-sts-token/readme.txt +15 -0
  413. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla/post-vanilla.authz +1 -0
  414. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla/post-vanilla.creq +8 -0
  415. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla/post-vanilla.req +3 -0
  416. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla/post-vanilla.sreq +4 -0
  417. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla/post-vanilla.sts +4 -0
  418. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.authz +1 -0
  419. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.creq +8 -0
  420. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.req +3 -0
  421. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.sreq +4 -0
  422. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla-empty-query-value/post-vanilla-empty-query-value.sts +4 -0
  423. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.authz +1 -0
  424. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.creq +8 -0
  425. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.req +3 -0
  426. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.sreq +4 -0
  427. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-vanilla-query/post-vanilla-query.sts +4 -0
  428. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.authz +1 -0
  429. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.creq +9 -0
  430. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.req +6 -0
  431. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.sreq +7 -0
  432. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-x-www-form-urlencoded/post-x-www-form-urlencoded.sts +4 -0
  433. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.authz +1 -0
  434. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.creq +9 -0
  435. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.req +6 -0
  436. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.sreq +7 -0
  437. data/ext/libmongocrypt/libmongocrypt/kms-message/aws-sig-v4-test-suite/post-x-www-form-urlencoded-parameters/post-x-www-form-urlencoded-parameters.sts +4 -0
  438. data/ext/libmongocrypt/libmongocrypt/kms-message/cmake/kms_message-config.cmake +1 -0
  439. data/ext/libmongocrypt/libmongocrypt/kms-message/cmake/libkms_message.pc.in +9 -0
  440. data/ext/libmongocrypt/libmongocrypt/kms-message/src/hexlify.c +67 -0
  441. data/ext/libmongocrypt/libmongocrypt/kms-message/src/hexlify.h +24 -0
  442. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_azure_request.c +219 -0
  443. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_b64.c +654 -0
  444. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_caller_identity_request.c +52 -0
  445. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_crypto.h +70 -0
  446. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_crypto_apple.c +159 -0
  447. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_crypto_libcrypto.c +142 -0
  448. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_crypto_none.c +65 -0
  449. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_crypto_windows.c +268 -0
  450. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_decrypt_request.c +72 -0
  451. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_encrypt_request.c +73 -0
  452. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_endian_private.h +165 -0
  453. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_gcp_request.c +286 -0
  454. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_item_type_private.h +59 -0
  455. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_reader_writer.c +502 -0
  456. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_reader_writer_private.h +150 -0
  457. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_request.c +256 -0
  458. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_response.c +323 -0
  459. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_response_parser.c +148 -0
  460. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_response_parser_private.h +55 -0
  461. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_result_reason_private.h +77 -0
  462. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_result_status_private.h +54 -0
  463. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_tag_type_private.h +343 -0
  464. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kv_list.c +149 -0
  465. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kv_list.h +56 -0
  466. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_azure_request.h +110 -0
  467. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_b64.h +70 -0
  468. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_caller_identity_request.h +36 -0
  469. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_decrypt_request.h +37 -0
  470. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_encrypt_request.h +39 -0
  471. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_gcp_request.h +124 -0
  472. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_kmip_request.h +58 -0
  473. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_kmip_response.h +40 -0
  474. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_kmip_response_parser.h +26 -0
  475. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_message.h +34 -0
  476. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_message_defines.h +72 -0
  477. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_request.h +103 -0
  478. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_request_opt.h +80 -0
  479. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_response.h +43 -0
  480. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message/kms_response_parser.h +64 -0
  481. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message.c +47 -0
  482. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message_private.h +142 -0
  483. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_port.c +33 -0
  484. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_port.h +34 -0
  485. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request.c +925 -0
  486. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request_opt.c +88 -0
  487. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request_opt_private.h +32 -0
  488. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request_str.c +520 -0
  489. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request_str.h +89 -0
  490. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_response.c +54 -0
  491. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_response_parser.c +408 -0
  492. data/ext/libmongocrypt/libmongocrypt/kms-message/src/sort.c +74 -0
  493. data/ext/libmongocrypt/libmongocrypt/kms-message/src/sort.h +21 -0
  494. data/ext/libmongocrypt/libmongocrypt/kms-message/test/connection_close/connection_close.sreq +5 -0
  495. data/ext/libmongocrypt/libmongocrypt/kms-message/test/content_length/content_length.sreq +7 -0
  496. data/ext/libmongocrypt/libmongocrypt/kms-message/test/decrypt/decrypt.creq +11 -0
  497. data/ext/libmongocrypt/libmongocrypt/kms-message/test/decrypt/decrypt.sreq +9 -0
  498. data/ext/libmongocrypt/libmongocrypt/kms-message/test/encrypt/encrypt.creq +11 -0
  499. data/ext/libmongocrypt/libmongocrypt/kms-message/test/encrypt/encrypt.sreq +9 -0
  500. data/ext/libmongocrypt/libmongocrypt/kms-message/test/example-chunked-response.bin +20 -0
  501. data/ext/libmongocrypt/libmongocrypt/kms-message/test/example-multi-chunked-response.bin +22 -0
  502. data/ext/libmongocrypt/libmongocrypt/kms-message/test/example-response.bin +6 -0
  503. data/ext/libmongocrypt/libmongocrypt/kms-message/test/host/host.sreq +4 -0
  504. data/ext/libmongocrypt/libmongocrypt/kms-message/test/multibyte/multibyte.creq +10 -0
  505. data/ext/libmongocrypt/libmongocrypt/kms-message/test/multibyte/multibyte.sreq +8 -0
  506. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kmip_reader_writer.c +485 -0
  507. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_assert.h +147 -0
  508. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_azure_online.c +260 -0
  509. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_gcp_online.c +250 -0
  510. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_kmip_request.c +223 -0
  511. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_kmip_response.c +214 -0
  512. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_kmip_response_parser.c +197 -0
  513. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_online_util.c +120 -0
  514. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_online_util.h +35 -0
  515. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_request.c +1302 -0
  516. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_util.c +92 -0
  517. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_util.h +45 -0
  518. data/ext/libmongocrypt/libmongocrypt/kms-message/test/windows/dirent.h +1224 -0
  519. data/ext/libmongocrypt/libmongocrypt/src/crypto/cng.c +640 -0
  520. data/ext/libmongocrypt/libmongocrypt/src/crypto/commoncrypto.c +326 -0
  521. data/ext/libmongocrypt/libmongocrypt/src/crypto/libcrypto.c +341 -0
  522. data/ext/libmongocrypt/libmongocrypt/src/crypto/none.c +97 -0
  523. data/ext/libmongocrypt/libmongocrypt/src/csfle-markup.cpp +237 -0
  524. data/ext/libmongocrypt/libmongocrypt/src/mc-array-private.h +54 -0
  525. data/ext/libmongocrypt/libmongocrypt/src/mc-array.c +102 -0
  526. data/ext/libmongocrypt/libmongocrypt/src/mc-check-conversions-private.h +36 -0
  527. data/ext/libmongocrypt/libmongocrypt/src/mc-dec128.h +743 -0
  528. data/ext/libmongocrypt/libmongocrypt/src/mc-dec128.test.cpp +86 -0
  529. data/ext/libmongocrypt/libmongocrypt/src/mc-efc-private.h +48 -0
  530. data/ext/libmongocrypt/libmongocrypt/src/mc-efc.c +127 -0
  531. data/ext/libmongocrypt/libmongocrypt/src/mc-fle-blob-subtype-private.h +40 -0
  532. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h +152 -0
  533. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder.c +487 -0
  534. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-private.h +47 -0
  535. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload.c +156 -0
  536. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-private.h +95 -0
  537. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload.c +158 -0
  538. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-private.h +124 -0
  539. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload.c +316 -0
  540. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-private.h +179 -0
  541. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev.c +385 -0
  542. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-private.h +93 -0
  543. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev.c +269 -0
  544. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-range-operator-private.h +29 -0
  545. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-rfds-private.h +91 -0
  546. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-rfds.c +658 -0
  547. data/ext/libmongocrypt/libmongocrypt/src/mc-optional-private.h +124 -0
  548. data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation-private.h +161 -0
  549. data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation.c +242 -0
  550. data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding-private.h +128 -0
  551. data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding.c +620 -0
  552. data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-generator.template.h +308 -0
  553. data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-private.h +112 -0
  554. data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover.c +341 -0
  555. data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts-private.h +99 -0
  556. data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts.c +382 -0
  557. data/ext/libmongocrypt/libmongocrypt/src/mc-reader-private.h +130 -0
  558. data/ext/libmongocrypt/libmongocrypt/src/mc-reader.c +235 -0
  559. data/ext/libmongocrypt/libmongocrypt/src/mc-tokens-private.h +118 -0
  560. data/ext/libmongocrypt/libmongocrypt/src/mc-tokens.c +151 -0
  561. data/ext/libmongocrypt/libmongocrypt/src/mlib/check.hpp +89 -0
  562. data/ext/libmongocrypt/libmongocrypt/src/mlib/endian.h +42 -0
  563. data/ext/libmongocrypt/libmongocrypt/src/mlib/error.h +59 -0
  564. data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.h +685 -0
  565. data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.test.c +3 -0
  566. data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.test.cpp +407 -0
  567. data/ext/libmongocrypt/libmongocrypt/src/mlib/macros.h +53 -0
  568. data/ext/libmongocrypt/libmongocrypt/src/mlib/path.h +381 -0
  569. data/ext/libmongocrypt/libmongocrypt/src/mlib/path.test.c +93 -0
  570. data/ext/libmongocrypt/libmongocrypt/src/mlib/str.h +1028 -0
  571. data/ext/libmongocrypt/libmongocrypt/src/mlib/str.test.c +137 -0
  572. data/ext/libmongocrypt/libmongocrypt/src/mlib/thread.h +88 -0
  573. data/ext/libmongocrypt/libmongocrypt/src/mlib/user-check.h +4 -0
  574. data/ext/libmongocrypt/libmongocrypt/src/mlib/windows-lean.h +19 -0
  575. data/ext/libmongocrypt/libmongocrypt/src/mongo_crypt-v1.h +320 -0
  576. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-binary-private.h +34 -0
  577. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-binary.c +87 -0
  578. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-buffer-private.h +236 -0
  579. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-buffer.c +691 -0
  580. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-collinfo-private.h +24 -0
  581. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-collinfo.c +82 -0
  582. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-key-private.h +55 -0
  583. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-key.c +190 -0
  584. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-oauth-private.h +46 -0
  585. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-oauth.c +126 -0
  586. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-private.h +96 -0
  587. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache.c +341 -0
  588. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ciphertext-private.h +64 -0
  589. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ciphertext.c +212 -0
  590. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-compat.h +44 -0
  591. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-config.h.in +87 -0
  592. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-crypto-private.h +303 -0
  593. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-crypto.c +1850 -0
  594. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-datakey.c +534 -0
  595. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-decrypt.c +773 -0
  596. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-encrypt.c +3005 -0
  597. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-private.h +269 -0
  598. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-rewrap-many-datakey.c +415 -0
  599. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx.c +1283 -0
  600. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-dll-private.h +97 -0
  601. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-endian-private.h +168 -0
  602. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-endpoint-private.h +64 -0
  603. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-endpoint.c +212 -0
  604. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kek-private.h +109 -0
  605. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kek.c +325 -0
  606. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-broker-private.h +209 -0
  607. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-broker.c +1189 -0
  608. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-private.h +87 -0
  609. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key.c +473 -0
  610. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kms-ctx-private.h +154 -0
  611. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kms-ctx.c +1785 -0
  612. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-log-private.h +111 -0
  613. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-log.c +123 -0
  614. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking-private.h +74 -0
  615. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking.c +1624 -0
  616. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-mutex-private.h +46 -0
  617. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts-private.h +231 -0
  618. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts.c +493 -0
  619. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-private.h +197 -0
  620. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-status-private.h +39 -0
  621. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-status.c +169 -0
  622. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-traverse-util-private.h +59 -0
  623. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-traverse-util.c +234 -0
  624. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-util-private.h +84 -0
  625. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-util.c +203 -0
  626. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.c +1605 -0
  627. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.h +1610 -0
  628. data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_dll.c +132 -0
  629. data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_mutex.c +57 -0
  630. data/ext/libmongocrypt/libmongocrypt/src/os_win/os_dll.c +92 -0
  631. data/ext/libmongocrypt/libmongocrypt/src/os_win/os_mutex.c +45 -0
  632. data/ext/libmongocrypt/libmongocrypt/test/crypt_shared-stub.cpp +155 -0
  633. data/ext/libmongocrypt/libmongocrypt/test/data/NIST-CAVP.cstructs +1350 -0
  634. data/ext/libmongocrypt/libmongocrypt/test/data/aes-ctr.cstructs +359 -0
  635. data/ext/libmongocrypt/libmongocrypt/test/data/cache-tests.json +197 -0
  636. data/ext/libmongocrypt/libmongocrypt/test/data/collection-info-no-schema.json +19 -0
  637. data/ext/libmongocrypt/libmongocrypt/test/data/collection-info-no-validator.json +13 -0
  638. data/ext/libmongocrypt/libmongocrypt/test/data/collection-info-view.json +11 -0
  639. data/ext/libmongocrypt/libmongocrypt/test/data/collinfo-siblings.json +40 -0
  640. data/ext/libmongocrypt/libmongocrypt/test/data/compact/missing-key-id/collinfo.json +21 -0
  641. data/ext/libmongocrypt/libmongocrypt/test/data/compact/no-fields/collinfo.json +10 -0
  642. data/ext/libmongocrypt/libmongocrypt/test/data/compact/no-fields/encrypted-payload.json +4 -0
  643. data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/cmd.json +1 -0
  644. data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/collinfo.json +49 -0
  645. data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/encrypted-field-config-map.json +47 -0
  646. data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/encrypted-payload.json +23 -0
  647. data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/mongocryptd-reply.json +72 -0
  648. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/omitted/cmd-to-mongocryptd.json +34 -0
  649. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/omitted/cmd.json +6 -0
  650. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/omitted/collinfo.json +27 -0
  651. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/omitted/encrypted-payload.json +39 -0
  652. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/omitted/mongocryptd-reply.json +45 -0
  653. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved/cmd-to-mongocryptd.json +34 -0
  654. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved/cmd.json +7 -0
  655. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved/collinfo.json +27 -0
  656. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved/encrypted-payload.json +40 -0
  657. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved/mongocryptd-reply.json +45 -0
  658. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_empty/cmd-to-mongocryptd.json +17 -0
  659. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_empty/cmd.json +7 -0
  660. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_empty/collinfo.json +10 -0
  661. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_empty/encrypted-payload.json +7 -0
  662. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_empty/mongocryptd-reply.json +23 -0
  663. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_fle1/cmd-to-mongocryptd.json +26 -0
  664. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_fle1/cmd.json +7 -0
  665. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_fle1/collinfo.json +25 -0
  666. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_fle1/encrypted-payload.json +14 -0
  667. data/ext/libmongocrypt/libmongocrypt/test/data/dollardb/preserved_fle1/mongocryptd-reply.json +15 -0
  668. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-extraField.json +24 -0
  669. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-missingKeyId.json +17 -0
  670. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-oneField.json +23 -0
  671. data/ext/libmongocrypt/libmongocrypt/test/data/efc/efc-twoFields.json +39 -0
  672. data/ext/libmongocrypt/libmongocrypt/test/data/encrypted-cmd.json +11 -0
  673. data/ext/libmongocrypt/libmongocrypt/test/data/encrypted-field-config-map.json +48 -0
  674. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decryption-input.json +8 -0
  675. data/ext/libmongocrypt/libmongocrypt/test/data/find-with-encryptionInformation.json +16 -0
  676. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-collMod/cmd-to-mongocryptd.json +12 -0
  677. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-collMod/cmd.json +8 -0
  678. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-collMod/insert/cmd.json +8 -0
  679. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-collMod/insert/collinfo.json +9 -0
  680. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-collMod/mongocryptd-reply.json +14 -0
  681. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/old-mongocryptd/cmd.json +3 -0
  682. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/old-mongocryptd/encrypted-payload.json +3 -0
  683. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/old-mongocryptd/ismaster-to-mongocryptd.json +3 -0
  684. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/old-mongocryptd/mongocryptd-ismaster.json +12 -0
  685. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/with-cmd-schema/cmd-to-mongocryptd.json +20 -0
  686. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/with-cmd-schema/cmd.json +12 -0
  687. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/with-cmd-schema/encrypted-payload.json +12 -0
  688. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/with-cmd-schema/ismaster-to-mongocryptd.json +3 -0
  689. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/with-cmd-schema/mongocryptd-ismaster.json +12 -0
  690. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/with-cmd-schema/mongocryptd-reply.json +9 -0
  691. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/with-schema/cmd-to-mongocryptd.json +7 -0
  692. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/with-schema/cmd.json +3 -0
  693. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/with-schema/encrypted-payload.json +3 -0
  694. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/with-schema/ismaster-to-mongocryptd.json +3 -0
  695. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/with-schema/mongocryptd-ismaster.json +12 -0
  696. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/with-schema/mongocryptd-reply.json +9 -0
  697. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/with-schema/schema-map.json +5 -0
  698. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/without-schema/cmd-to-mongocryptd.json +5 -0
  699. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/without-schema/cmd.json +3 -0
  700. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/without-schema/encrypted-payload.json +3 -0
  701. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/without-schema/ismaster-to-mongocryptd.json +3 -0
  702. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/without-schema/mongocryptd-ismaster.json +12 -0
  703. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-create/without-schema/mongocryptd-reply.json +9 -0
  704. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-explain/with-csfle/cmd.json +8 -0
  705. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-explain/with-csfle/collinfo.json +7 -0
  706. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-explain/with-csfle/encrypted-payload.json +8 -0
  707. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-explain/with-mongocryptd/cmd-to-mongocryptd.json +10 -0
  708. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-explain/with-mongocryptd/cmd.json +8 -0
  709. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-explain/with-mongocryptd/collinfo.json +7 -0
  710. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-explain/with-mongocryptd/encrypted-payload.json +8 -0
  711. data/ext/libmongocrypt/libmongocrypt/test/data/fle1-explain/with-mongocryptd/mongocryptd-reply.json +14 -0
  712. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-aead.cstructs +109 -0
  713. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create/cmd-to-mongocryptd.json +14 -0
  714. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create/cmd.json +3 -0
  715. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create/encrypted-field-config-map.json +8 -0
  716. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create/encrypted-payload.json +3 -0
  717. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create/ismaster-to-mongocryptd.json +3 -0
  718. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create/mongocryptd-ismaster.json +12 -0
  719. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-create/mongocryptd-reply.json +9 -0
  720. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-decrypt-ieev/first-filter.json +21 -0
  721. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-decrypt-ieev/second-filter.json +21 -0
  722. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/cmd.json +6 -0
  723. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/collinfo.json +49 -0
  724. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/encrypted-field-config-map.json +47 -0
  725. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/encrypted-payload.json +91 -0
  726. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/mongocryptd-reply.json +66 -0
  727. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/cmd.json +6 -0
  728. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/collinfo.json +49 -0
  729. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/encrypted-field-config-map.json +47 -0
  730. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/encrypted-payload.json +98 -0
  731. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/mongocryptd-reply.json +72 -0
  732. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-csfle/cmd.json +8 -0
  733. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-csfle/collinfo.json +27 -0
  734. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-csfle/encrypted-payload.json +46 -0
  735. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-mongocryptd/cmd-to-mongocryptd.json +36 -0
  736. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-mongocryptd/cmd.json +8 -0
  737. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-mongocryptd/collinfo.json +27 -0
  738. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-mongocryptd/encrypted-payload.json +41 -0
  739. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-mongocryptd/mongocryptd-reply.json +47 -0
  740. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/find-indexed-contentionFactor1.json +8 -0
  741. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/find-indexed.json +8 -0
  742. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-contentionFactor1.json +8 -0
  743. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-same-user-and-index-key.json +8 -0
  744. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed.json +8 -0
  745. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality/cmd.json +6 -0
  746. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality/encrypted-field-map.json +23 -0
  747. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality/encrypted-payload.json +41 -0
  748. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality/mongocryptd-reply.json +19 -0
  749. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-explicit/cmd-to-mongocryptd.json +24 -0
  750. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-explicit/cmd-to-mongod.json +24 -0
  751. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-explicit/cmd.json +11 -0
  752. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-explicit/reply-from-mongocryptd.json +27 -0
  753. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/README.md +2 -0
  754. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date/cmd.json +10 -0
  755. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date/encrypted-field-map.json +28 -0
  756. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date/encrypted-payload.json +42 -0
  757. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date/mongocryptd-reply.json +50 -0
  758. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128/cmd.json +6 -0
  759. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128/encrypted-field-map.json +28 -0
  760. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128/encrypted-payload.json +42 -0
  761. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128/mongocryptd-reply.json +50 -0
  762. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision/cmd.json +6 -0
  763. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision/encrypted-field-map.json +31 -0
  764. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision/encrypted-payload.json +51 -0
  765. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision/mongocryptd-reply.json +59 -0
  766. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double/cmd.json +8 -0
  767. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double/encrypted-field-map.json +28 -0
  768. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double/encrypted-payload.json +42 -0
  769. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double/mongocryptd-reply.json +50 -0
  770. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision/cmd.json +8 -0
  771. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision/encrypted-field-map.json +31 -0
  772. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision/encrypted-payload.json +45 -0
  773. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision/mongocryptd-reply.json +53 -0
  774. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32/cmd.json +8 -0
  775. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32/encrypted-field-map.json +28 -0
  776. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32/encrypted-payload.json +42 -0
  777. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32/mongocryptd-reply.json +50 -0
  778. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64/cmd.json +8 -0
  779. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64/encrypted-field-map.json +28 -0
  780. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64/encrypted-payload.json +42 -0
  781. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64/mongocryptd-reply.json +50 -0
  782. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double/encrypted-payload.json +26 -0
  783. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double/rangeopts.json +5 -0
  784. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double/value-to-encrypt.json +20 -0
  785. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double-precision/encrypted-payload.json +26 -0
  786. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double-precision/rangeopts.json +14 -0
  787. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double-precision/value-to-encrypt.json +20 -0
  788. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32/encrypted-payload.json +26 -0
  789. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32/rangeopts.json +11 -0
  790. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32/value-to-encrypt.json +20 -0
  791. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/encrypted-payload.json +26 -0
  792. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/rangeopts.json +5 -0
  793. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/value-to-encrypt.json +20 -0
  794. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-openinterval/encrypted-payload.json +16 -0
  795. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-openinterval/rangeopts.json +11 -0
  796. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-openinterval/value-to-encrypt.json +13 -0
  797. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert/cmd.json +9 -0
  798. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert/encrypted-field-map.json +23 -0
  799. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert/encrypted-payload.json +40 -0
  800. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert/mongocryptd-reply.json +50 -0
  801. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/README.md +2 -0
  802. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/RNG_DATA.h +67 -0
  803. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/cmd.json +13 -0
  804. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/encrypted-field-map.json +28 -0
  805. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/encrypted-payload.json +45 -0
  806. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/mongocryptd-reply.json +53 -0
  807. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/RNG_DATA.h +134 -0
  808. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/cmd.json +9 -0
  809. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/encrypted-field-map.json +28 -0
  810. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/encrypted-payload.json +45 -0
  811. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/mongocryptd-reply.json +53 -0
  812. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/RNG_DATA.h +73 -0
  813. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/cmd.json +9 -0
  814. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/encrypted-field-map.json +31 -0
  815. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/encrypted-payload.json +54 -0
  816. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/mongocryptd-reply.json +62 -0
  817. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/RNG_DATA.h +70 -0
  818. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/cmd.json +11 -0
  819. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/encrypted-field-map.json +28 -0
  820. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/encrypted-payload.json +45 -0
  821. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/mongocryptd-reply.json +53 -0
  822. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/RNG_DATA.h +21 -0
  823. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/cmd.json +11 -0
  824. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/encrypted-field-map.json +31 -0
  825. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/encrypted-payload.json +48 -0
  826. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/mongocryptd-reply.json +56 -0
  827. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/RNG_DATA.h +27 -0
  828. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/cmd.json +11 -0
  829. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/encrypted-field-map.json +28 -0
  830. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/encrypted-payload.json +45 -0
  831. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/mongocryptd-reply.json +53 -0
  832. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/RNG_DATA.h +67 -0
  833. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/cmd.json +11 -0
  834. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/encrypted-field-map.json +28 -0
  835. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/encrypted-payload.json +45 -0
  836. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/mongocryptd-reply.json +53 -0
  837. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/RNG_DATA.h +70 -0
  838. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/encrypted-payload.json +8 -0
  839. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/rangeopts.json +5 -0
  840. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/value-to-encrypt.json +5 -0
  841. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/RNG_DATA.h +21 -0
  842. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/encrypted-payload.json +8 -0
  843. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/rangeopts.json +14 -0
  844. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/value-to-encrypt.json +5 -0
  845. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32/RNG_DATA.h +27 -0
  846. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32/encrypted-payload.json +8 -0
  847. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32/rangeopts.json +11 -0
  848. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32/value-to-encrypt.json +5 -0
  849. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/RNG_DATA.h +70 -0
  850. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/encrypted-payload.json +8 -0
  851. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/rangeopts.json +5 -0
  852. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/value-to-encrypt.json +5 -0
  853. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/RNG_DATA.h +17 -0
  854. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/encrypted-payload.json +8 -0
  855. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/rangeopts.json +11 -0
  856. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/value-to-encrypt.json +5 -0
  857. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed/cmd.json +9 -0
  858. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed/encrypted-field-map.json +23 -0
  859. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed/encrypted-payload.json +14 -0
  860. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed/mongocryptd-reply.json +46 -0
  861. data/ext/libmongocrypt/libmongocrypt/test/data/fle2.cstructs +33 -0
  862. data/ext/libmongocrypt/libmongocrypt/test/data/gcp-auth/decrypt-response.txt +5 -0
  863. data/ext/libmongocrypt/libmongocrypt/test/data/gcp-auth/encrypt-response.txt +5 -0
  864. data/ext/libmongocrypt/libmongocrypt/test/data/gcp-auth/oauth-response.txt +5 -0
  865. data/ext/libmongocrypt/libmongocrypt/test/data/kek-tests.json +169 -0
  866. data/ext/libmongocrypt/libmongocrypt/test/data/key-document-azure.json +33 -0
  867. data/ext/libmongocrypt/libmongocrypt/test/data/key-document-full.json +36 -0
  868. data/ext/libmongocrypt/libmongocrypt/test/data/key-document-gcp.json +35 -0
  869. data/ext/libmongocrypt/libmongocrypt/test/data/key-document-kmip.json +34 -0
  870. data/ext/libmongocrypt/libmongocrypt/test/data/key-document-local.json +18 -0
  871. data/ext/libmongocrypt/libmongocrypt/test/data/key-document-no-region.json +31 -0
  872. data/ext/libmongocrypt/libmongocrypt/test/data/key-document-with-alt-name-duplicate-id.json +36 -0
  873. data/ext/libmongocrypt/libmongocrypt/test/data/key-document-with-alt-name.json +33 -0
  874. data/ext/libmongocrypt/libmongocrypt/test/data/key-document-with-alt-name2.json +33 -0
  875. data/ext/libmongocrypt/libmongocrypt/test/data/keys/12345678123498761234123456789012-aws-decrypt-reply.txt +11 -0
  876. data/ext/libmongocrypt/libmongocrypt/test/data/keys/12345678123498761234123456789012-aws-document.json +32 -0
  877. data/ext/libmongocrypt/libmongocrypt/test/data/keys/12345678123498761234123456789012-key-material.txt +1 -0
  878. data/ext/libmongocrypt/libmongocrypt/test/data/keys/12345678123498761234123456789012-local-document.json +30 -0
  879. data/ext/libmongocrypt/libmongocrypt/test/data/keys/12345678123498761234123456789013-aws-decrypt-reply.txt +11 -0
  880. data/ext/libmongocrypt/libmongocrypt/test/data/keys/12345678123498761234123456789013-aws-document.json +32 -0
  881. data/ext/libmongocrypt/libmongocrypt/test/data/keys/12345678123498761234123456789013-key-material.txt +1 -0
  882. data/ext/libmongocrypt/libmongocrypt/test/data/keys/12345678123498761234123456789013-local-document.json +30 -0
  883. data/ext/libmongocrypt/libmongocrypt/test/data/keys/12345678123498761234123456789014-key-material.txt +1 -0
  884. data/ext/libmongocrypt/libmongocrypt/test/data/keys/12345678123498761234123456789014-local-document.json +30 -0
  885. data/ext/libmongocrypt/libmongocrypt/test/data/keys/ABCDEFAB123498761234123456789012-aws-decrypt-reply.txt +11 -0
  886. data/ext/libmongocrypt/libmongocrypt/test/data/keys/ABCDEFAB123498761234123456789012-aws-document.json +32 -0
  887. data/ext/libmongocrypt/libmongocrypt/test/data/keys/ABCDEFAB123498761234123456789012-key-material.txt +1 -0
  888. data/ext/libmongocrypt/libmongocrypt/test/data/keys/ABCDEFAB123498761234123456789012-local-document.json +30 -0
  889. data/ext/libmongocrypt/libmongocrypt/test/data/keys/README.md +21 -0
  890. data/ext/libmongocrypt/libmongocrypt/test/data/kms-encrypt-reply.txt +7 -0
  891. data/ext/libmongocrypt/libmongocrypt/test/data/kms-tests.json +297 -0
  892. data/ext/libmongocrypt/libmongocrypt/test/data/mongocryptd-cmd.json +26 -0
  893. data/ext/libmongocrypt/libmongocrypt/test/data/mongocryptd-reply-existing-ciphertext.json +24 -0
  894. data/ext/libmongocrypt/libmongocrypt/test/data/mongocryptd-reply-invalid.json +18 -0
  895. data/ext/libmongocrypt/libmongocrypt/test/data/mongocryptd-reply-key-alt-name.json +18 -0
  896. data/ext/libmongocrypt/libmongocrypt/test/data/mongocryptd-reply-key-alt-name2.json +18 -0
  897. data/ext/libmongocrypt/libmongocrypt/test/data/mongocryptd-reply-no-encryption-needed.json +7 -0
  898. data/ext/libmongocrypt/libmongocrypt/test/data/mongocryptd-reply-no-markings.json +7 -0
  899. data/ext/libmongocrypt/libmongocrypt/test/data/mongocryptd-reply-random.json +18 -0
  900. data/ext/libmongocrypt/libmongocrypt/test/data/range-edge-generation/edges_decimal128.cstruct +14527 -0
  901. data/ext/libmongocrypt/libmongocrypt/test/data/range-edge-generation/edges_double.cstruct +7959 -0
  902. data/ext/libmongocrypt/libmongocrypt/test/data/range-edge-generation/edges_int32.cstruct +6906 -0
  903. data/ext/libmongocrypt/libmongocrypt/test/data/range-edge-generation/edges_int64.cstruct +9429 -0
  904. data/ext/libmongocrypt/libmongocrypt/test/data/range-min-cover/mincover_decimal128.cstruct +4565 -0
  905. data/ext/libmongocrypt/libmongocrypt/test/data/range-min-cover/mincover_decimal128_precision.cstruct +312 -0
  906. data/ext/libmongocrypt/libmongocrypt/test/data/range-min-cover/mincover_double.cstruct +3277 -0
  907. data/ext/libmongocrypt/libmongocrypt/test/data/range-min-cover/mincover_double_precision.cstruct +369 -0
  908. data/ext/libmongocrypt/libmongocrypt/test/data/range-min-cover/mincover_int32.cstruct +4612 -0
  909. data/ext/libmongocrypt/libmongocrypt/test/data/range-min-cover/mincover_int64.cstruct +3398 -0
  910. data/ext/libmongocrypt/libmongocrypt/test/data/rmd/key-document-a.json +35 -0
  911. data/ext/libmongocrypt/libmongocrypt/test/data/rmd/key-document-b.json +37 -0
  912. data/ext/libmongocrypt/libmongocrypt/test/data/rmd/key-document-local.json +30 -0
  913. data/ext/libmongocrypt/libmongocrypt/test/data/rmd/kms-decrypt-reply-a.txt +6 -0
  914. data/ext/libmongocrypt/libmongocrypt/test/data/rmd/kms-decrypt-reply-b.txt +6 -0
  915. data/ext/libmongocrypt/libmongocrypt/test/data/rmd/kms-encrypt-reply-a.txt +7 -0
  916. data/ext/libmongocrypt/libmongocrypt/test/data/rmd/kms-encrypt-reply-b.txt +7 -0
  917. data/ext/libmongocrypt/libmongocrypt/test/data/schema-map.json +40 -0
  918. data/ext/libmongocrypt/libmongocrypt/test/data/schema.json +19 -0
  919. data/ext/libmongocrypt/libmongocrypt/test/example/README.md +5 -0
  920. data/ext/libmongocrypt/libmongocrypt/test/example/cmd.json +6 -0
  921. data/ext/libmongocrypt/libmongocrypt/test/example/collection-info.json +39 -0
  922. data/ext/libmongocrypt/libmongocrypt/test/example/encrypted-command.json +9 -0
  923. data/ext/libmongocrypt/libmongocrypt/test/example/key-document-custom-endpoint.json +34 -0
  924. data/ext/libmongocrypt/libmongocrypt/test/example/key-document.json +33 -0
  925. data/ext/libmongocrypt/libmongocrypt/test/example/kms-decrypt-reply.txt +6 -0
  926. data/ext/libmongocrypt/libmongocrypt/test/example/mongocryptd-reply.json +18 -0
  927. data/ext/libmongocrypt/libmongocrypt/test/example-no-bson.c +23 -0
  928. data/ext/libmongocrypt/libmongocrypt/test/example-state-machine.c +368 -0
  929. data/ext/libmongocrypt/libmongocrypt/test/fuzz_kms.c +42 -0
  930. data/ext/libmongocrypt/libmongocrypt/test/test-dll.cpp +22 -0
  931. data/ext/libmongocrypt/libmongocrypt/test/test-gcp-auth.c +312 -0
  932. data/ext/libmongocrypt/libmongocrypt/test/test-mc-efc.c +104 -0
  933. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iev.c +443 -0
  934. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup.c +184 -0
  935. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-uev.c +200 -0
  936. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-rfds.c +518 -0
  937. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-edge-generation.c +468 -0
  938. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-encoding.c +886 -0
  939. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-mincover.c +609 -0
  940. data/ext/libmongocrypt/libmongocrypt/test/test-mc-rangeopts.c +174 -0
  941. data/ext/libmongocrypt/libmongocrypt/test/test-mc-reader.c +251 -0
  942. data/ext/libmongocrypt/libmongocrypt/test/test-mc-tokens.c +245 -0
  943. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.c +1079 -0
  944. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.h +26 -0
  945. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert.h +218 -0
  946. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-buffer.c +266 -0
  947. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cache-oauth.c +57 -0
  948. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cache.c +264 -0
  949. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ciphertext.c +259 -0
  950. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-compact.c +478 -0
  951. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-hooks.c +917 -0
  952. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-std-hooks.c +177 -0
  953. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-std-hooks.h +110 -0
  954. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto.c +892 -0
  955. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-csfle-lib.c +208 -0
  956. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-decrypt.c +1134 -0
  957. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-encrypt.c +5096 -0
  958. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-rewrap-many-datakey.c +1061 -0
  959. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-setopt.c +1301 -0
  960. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-datakey.c +489 -0
  961. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-dll.c +48 -0
  962. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-endpoint.c +138 -0
  963. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kek.c +104 -0
  964. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key-broker.c +1174 -0
  965. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key-cache.c +475 -0
  966. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key.c +282 -0
  967. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kms-ctx.c +561 -0
  968. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kms-responses.c +206 -0
  969. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-local-kms.c +89 -0
  970. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-log.c +137 -0
  971. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-marking.c +738 -0
  972. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-status.c +88 -0
  973. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-traverse-util.c +548 -0
  974. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-util.c +105 -0
  975. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-util.h +42 -0
  976. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.c +1060 -0
  977. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.h +290 -0
  978. data/ext/libmongocrypt/libmongocrypt/test/util/HELP.autogen +102 -0
  979. data/ext/libmongocrypt/libmongocrypt/test/util/README.md +103 -0
  980. data/ext/libmongocrypt/libmongocrypt/test/util/csfle.c +612 -0
  981. data/ext/libmongocrypt/libmongocrypt/test/util/helpgen.py +7 -0
  982. data/ext/libmongocrypt/libmongocrypt/test/util/make_includes.py +845 -0
  983. data/ext/libmongocrypt/libmongocrypt/test/util/util.c +969 -0
  984. data/ext/libmongocrypt/libmongocrypt/test/util/util.h +96 -0
  985. data/ext/libmongocrypt/libmongocrypt/third-party/IntelRDFPMathLib20U2.tar.xz +0 -0
  986. data/lib/libmongocrypt_helper/version.rb +2 -2
  987. data/lib/libmongocrypt_helper.rb +15 -1
  988. data.tar.gz.sig +0 -0
  989. metadata +1019 -32
  990. metadata.gz.sig +0 -0
  991. data/so/libmongocrypt.so +0 -0
@@ -0,0 +1,45 @@
1
+ {
2
+ "insert": "test",
3
+ "documents": [
4
+ {
5
+ "plainText": "sample",
6
+ "encrypted": {
7
+ "$binary": {
8
+ "base64": "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",
9
+ "subType": "6"
10
+ }
11
+ }
12
+ }
13
+ ],
14
+ "encryptionInformation": {
15
+ "type": 1,
16
+ "schema": {
17
+ "db.test": {
18
+ "escCollection": "fle2.test.esc",
19
+ "eccCollection": "fle2.test.ecc",
20
+ "ecocCollection": "fle2.test.ecoc",
21
+ "fields": [
22
+ {
23
+ "keyId": {
24
+ "$binary": {
25
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
26
+ "subType": "04"
27
+ }
28
+ },
29
+ "path": "encrypted",
30
+ "bsonType": "decimal",
31
+ "queries": {
32
+ "queryType": "rangePreview",
33
+ "contention": {
34
+ "$numberInt": "0"
35
+ },
36
+ "sparsity": {
37
+ "$numberInt": "1"
38
+ }
39
+ }
40
+ }
41
+ ]
42
+ }
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "ok": {
3
+ "$numberInt": "1"
4
+ },
5
+ "result": {
6
+ "insert": "test",
7
+ "documents": [
8
+ {
9
+ "plainText": "sample",
10
+ "encrypted": {
11
+ "$binary": {
12
+ "base64": "A6EAAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAQgAAABN2AACwTivebwAAAAAAAAAAJDATbWluAP////9jjo03wIetvgnt/98TbWF4AP////9jjo03wIetvgnt/18AEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA",
13
+ "subType": "6"
14
+ }
15
+ }
16
+ }
17
+ ],
18
+ "encryptionInformation": {
19
+ "type": {
20
+ "$numberInt": "1"
21
+ },
22
+ "schema": {
23
+ "db.test": {
24
+ "escCollection": "fle2.test.esc",
25
+ "eccCollection": "fle2.test.ecc",
26
+ "ecocCollection": "fle2.test.ecoc",
27
+ "fields": [
28
+ {
29
+ "keyId": {
30
+ "$binary": {
31
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
32
+ "subType": "04"
33
+ }
34
+ },
35
+ "path": "encrypted",
36
+ "bsonType": "decimal",
37
+ "queries": {
38
+ "queryType": "rangePreview",
39
+ "contention": {
40
+ "$numberInt": "0"
41
+ },
42
+ "sparsity": {
43
+ "$numberInt": "1"
44
+ }
45
+ }
46
+ }
47
+ ]
48
+ }
49
+ }
50
+ }
51
+ },
52
+ "hasEncryptedPlaceholders": true
53
+ }
@@ -0,0 +1,73 @@
1
+ // Defines the random data for IVs to obtain a deterministic
2
+ // FLE2InsertUpdatePayload.
3
+ #define RNG_DATA \
4
+ "\x51\xdb\xd6\x46\x8b\xcb\x43\x8d\xfe\xe7\x24\x9c\x99\x2e\x41\x39" \
5
+ "\x18\x13\xcf\x9b\xa9\x94\xb8\x3b\x81\xc1\x25\xeb\xa7\xb0\xc0\x3b" \
6
+ "\x17\x17\xe2\x9b\x73\xec\xd9\x7f\x76\xc4\x4f\x63\x28\x3c\x05\xf2" \
7
+ "\x9c\x7d\x48\xaf\xae\x63\x8d\x62\x60\x31\x6e\x0c\xae\x48\x9f\x45" \
8
+ "\xd2\xc3\x8a\x5b\xe1\xd8\xd9\x23\xe4\x37\xe7\x8a\x5a\x6a\x82\x0e" \
9
+ "\xf0\x4b\x2e\x84\xf6\x02\xae\xfd\x45\x47\xcf\x3f\xb1\x2c\xb4\xfd" \
10
+ "\xae\xd7\x28\xea\x44\xf9\xb0\x7e\xd8\xa5\x90\xae\x51\xf6\x00\xc0" \
11
+ "\x62\x6b\x2a\x3f\xca\x2f\x2e\xa5\x78\xfe\xfa\xe3\x11\x99\xa0\x9b" \
12
+ "\x77\x55\x0c\xaf\x36\xc4\x8a\xd9\x72\x00\x81\x58\x34\xd4\x30\xcc" \
13
+ "\x19\x06\x93\xf9\x51\x7a\x14\x88\x1e\x44\x9e\xb0\xf6\x49\x2b\x3b" \
14
+ "\xf4\xfd\xdc\xf1\x49\xd4\x87\x71\x37\xef\x6f\x4c\x4e\x08\x7b\x1c" \
15
+ "\x57\x0d\x82\x7e\xa7\x03\xbb\x83\x70\x6c\xbf\x43\x99\xf6\x63\xae" \
16
+ "\x2f\x96\x3c\x44\xf3\x49\x22\xf7\xe6\x6d\xa6\x33\x3e\x4b\x5b\xc3" \
17
+ "\xf5\xd2\xa9\xfc\x9c\xef\x32\x04\x76\xbf\x48\xf4\xa4\xee\x63\xb7" \
18
+ "\x87\xdb\x48\xb0\xdd\xce\x68\xb0\x9e\x69\x60\x20\x63\xe6\x0e\x86" \
19
+ "\x12\xbd\x3f\x9d\x5c\x58\x01\x5a\x17\xe3\xa3\x87\x18\xbe\xb2\xbf" \
20
+ "\xcd\x8c\x12\x74\x01\x7d\xe7\xae\xd4\x2d\x91\xe7\xa8\x84\x9a\xb0" \
21
+ "\xc9\xde\x3e\x46\x6b\x66\x93\x54\xd7\x7b\xc4\xa4\x53\x10\x73\xa1" \
22
+ "\xec\x10\xe9\xa8\x7e\xe7\xb4\x27\x4f\xbb\xba\x5e\x67\x58\x0a\x33" \
23
+ "\x8e\x70\x27\x8a\x12\xf1\x9b\x60\xbb\x2d\x37\x03\x68\x67\x9c\x37" \
24
+ "\x6a\xff\xde\xf2\x6a\x01\xfd\x95\xc4\x68\xdb\x06\x62\xda\xc0\x62" \
25
+ "\x3f\x27\xcc\xa8\x90\x66\x66\x86\xa7\x4c\x12\xf9\x92\x1e\x68\xd3" \
26
+ "\x94\x30\xf4\x43\x85\x35\xdf\x1f\x3a\xaf\xc8\x9a\x5e\x67\x35\xa1" \
27
+ "\xfc\xad\x9a\xc2\x9b\x39\x3b\x79\x30\x3a\x0e\x16\x6a\x11\xd9\xad" \
28
+ "\xee\x4a\x5e\x6c\x20\x9f\x4d\x95\x3b\xe2\xa9\xaf\xd0\x43\xea\x4b" \
29
+ "\xbd\xd9\xf5\xe3\xeb\xb6\xfe\x5a\xc4\x02\x3d\x29\x9d\x39\x85\xf2" \
30
+ "\x4e\xac\xa8\x49\xa2\x22\x91\xa0\x9f\x1b\x4d\xd7\x21\xb6\x75\x47" \
31
+ "\x06\xe9\x4f\x01\x5f\xd2\x99\x1d\xf1\x0c\x6f\xef\xd1\xbf\xb2\x43" \
32
+ "\xc5\x33\x74\xb3\xc3\x8c\xfd\x80\x25\xfd\x53\xac\xc8\xf7\x91\x80" \
33
+ "\x9e\xa0\x55\x7e\xf7\x14\x67\x7a\x74\x84\xfb\x49\xb4\x55\x99\xc8" \
34
+ "\x28\x4a\xde\x5f\xec\x09\x56\xdd\x34\x2c\x46\x76\x3e\x82\x97\xa5" \
35
+ "\xc9\xc1\xcb\x96\xa8\x34\xac\x93\x08\xf8\x6a\x64\xfd\x72\xc9\xee" \
36
+ "\x3a\x71\x94\x63\x78\xc4\x5d\x28\x79\xfd\xeb\x0a\xbb\x24\x95\x2d" \
37
+ "\xc0\xc9\xa7\xd6\x76\x35\x51\xd5\x2b\x28\x5e\xde\x4f\xb5\xff\xd2" \
38
+ "\xbe\x12\x06\x04\xc0\xab\x5f\x76\xcb\x0f\x25\x7f\x22\x4f\xdb\xd7" \
39
+ "\x0f\x1f\x73\x98\xcc\x24\x02\x27\xb5\x92\x80\x68\x3f\x75\x50\x59" \
40
+ "\xbc\xe4\x2f\x2b\xcf\xbe\xce\x06\x7f\x54\x34\x45\x29\xa4\xb9\x5a" \
41
+ "\xa7\x76\xe2\x12\xdd\x33\xdf\xdf\x7d\x5d\xcd\xad\xf9\x5f\xa7\x8e" \
42
+ "\x76\xb2\xc2\x59\x0b\x94\xf9\xef\x11\x4a\x24\xeb\xac\xe8\x08\xad" \
43
+ "\xb9\x92\xf8\xc3\xf0\x21\xcd\x6e\x36\xa0\x36\xdc\x9b\xb7\x19\x73" \
44
+ "\xfe\x42\x2e\x05\x6a\xc5\x0f\x7d\x3b\x04\xdb\x5b\x33\xf2\x02\xa3" \
45
+ "\x86\xe8\xa8\x20\x4d\x56\x23\x9b\x23\x53\x90\xb9\x80\xe9\x04\x3b" \
46
+ "\x77\x5c\x57\x01\xc3\xd8\x40\xbb\x5d\xb5\xfa\x91\xe4\xb4\x3d\x21" \
47
+ "\xa4\xe5\x8e\x1c\x9d\x67\x11\x3e\x51\xda\x7d\x2b\xd8\xfe\xfe\x32" \
48
+ "\x7c\x03\x9d\x8e\x69\x07\x46\xb1\x59\x3f\xa4\xda\x40\x6f\x56\x8c" \
49
+ "\x02\x77\xa6\x27\x0b\x71\xdf\x2b\xa6\xa4\x35\xac\x88\xc0\xd8\xa3" \
50
+ "\x42\x2a\x00\x8d\x19\x90\x86\x27\x74\x5e\x2e\xc6\xd9\xf3\xe5\x4b" \
51
+ "\x00\xfe\xe0\xb9\xa6\x03\xbf\x7b\x17\x25\x5c\x14\x32\x1e\xea\xec" \
52
+ "\x20\xa6\x48\x3e\x6a\xee\x85\xb7\x3d\xad\xdd\xdd\x1c\x11\xaa\x18" \
53
+ "\x65\xb6\xb1\x1d\x38\xe9\x19\xc3\x92\xd3\xda\xa6\x57\xd0\xf5\xbc" \
54
+ "\x44\xf5\x58\xdf\xe9\x54\x31\xad\xc0\xcb\x17\x7a\x9b\x38\xc2\x28" \
55
+ "\x38\x9c\x04\x05\xfa\x7f\x36\xbc\x06\x6b\x44\x16\x9a\x84\x44\xd4" \
56
+ "\xf3\x62\x95\xd3\xa9\x49\x6e\x6e\x07\x77\x3f\xbc\x31\x34\x10\xe4" \
57
+ "\x0f\xed\x0f\x37\x0d\xdb\x3f\xdd\x75\xb0\x63\x1b\xbc\x95\xeb\xaf" \
58
+ "\xda\x9c\x5c\xf9\x8a\x48\x1f\xaa\xb9\x19\x64\x5e\xcb\x39\x99\x60" \
59
+ "\xec\xaa\x29\x5f\x0b\xc5\x7a\xff\xb9\xf6\x59\x77\x87\xe6\x08\x13" \
60
+ "\xcc\xf1\x71\xf7\xc3\x46\xfb\x7d\xa8\xc8\x17\x0f\xec\xb1\x16\x49" \
61
+ "\xb9\x60\x06\x59\x2b\x38\x75\x25\xdc\x3a\xcf\x8c\x69\x1c\x6e\x30" \
62
+ "\xc4\x44\x25\x94\xac\xa9\x41\xee\x9c\xed\x37\xcf\xa9\x0e\x12\x82" \
63
+ "\x15\xd8\x48\x12\x7c\x0f\x4b\x46\xad\xf6\xb9\x9b\x29\x58\x4c\xb9" \
64
+ "\xb4\x11\xa8\xa5\xe3\x38\xb2\x9c\x84\x37\x64\xf6\xc5\x18\x1a\x91" \
65
+ "\x96\x1d\x7e\x36\xbc\x5a\xc4\xfd\x08\xd9\x47\x54\xa6\x43\x8b\xf0" \
66
+ "\xf9\xd3\x0b\xef\x09\x88\xde\xca\x6d\xdd\x4f\xa0\x91\x83\xff\xb9" \
67
+ "\xcf\xf0\xa3\x39\x6e\x29\xe4\x1e\x2d\x45\xa9\xad\x63\xb8\x9d\x41" \
68
+ "\xf8\x92\xe4\xd4\x8c\x65\xce\x30\x10\x37\xfd\x39\x53\x73\xab\x9e" \
69
+ "\x30\x04\x62\x06\x68\x35\xbc\x30\x47\x71\x35\x83\xaa\x41\x69\x91" \
70
+ "\x1d\xa5\x77\xb7\xd0\xb4\xd9\x27\x58\xc6\xc7\xba\x6c\xb7\x2f\x6b" \
71
+ "\xe9\x8a\xd4\x35\x30\x42\xa4\xef\x20\xb1\x1d\x2b\x3f\x60\xf5\xa0" \
72
+ "\x30\x2f\xf7\x38\x6e\x17\x84\x8b\x56\x14\x12\xc7\x58\x50\xa1\x33" \
73
+ "\xdc\xb7\x56\xa8\xc3\xa6\x26\x3f\x25\xf2\xe9\x74\xe6\xf7\x3b\xb4"
@@ -0,0 +1,9 @@
1
+ {
2
+ "insert": "test",
3
+ "documents": [
4
+ {
5
+ "plainText": "sample",
6
+ "encrypted": {"$numberDecimal":"4.56000000000000"}
7
+ }
8
+ ]
9
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "db.test": {
3
+ "escCollection": "fle2.test.esc",
4
+ "eccCollection": "fle2.test.ecc",
5
+ "ecocCollection": "fle2.test.ecoc",
6
+ "fields": [
7
+ {
8
+ "keyId": {
9
+ "$binary": {
10
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
11
+ "subType": "04"
12
+ }
13
+ },
14
+ "path": "encrypted",
15
+ "bsonType": "decimal",
16
+ "queries": {
17
+ "queryType": "rangePreview",
18
+ "contention": {
19
+ "$numberInt": "0"
20
+ },
21
+ "sparsity": {
22
+ "$numberInt": "1"
23
+ },
24
+ "min": {"$numberDecimal":"0"},
25
+ "max":{"$numberDecimal":"1234567890123456789"},
26
+ "precision":{"$numberInt":"2"}
27
+ }
28
+ }
29
+ ]
30
+ }
31
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "insert": "test",
3
+ "documents": [
4
+ {
5
+ "plainText": "sample",
6
+ "encrypted": {
7
+ "$binary": {
8
+ "base64": "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",
9
+ "subType": "6"
10
+ }
11
+ }
12
+ }
13
+ ],
14
+ "encryptionInformation": {
15
+ "type": 1,
16
+ "schema": {
17
+ "db.test": {
18
+ "escCollection": "fle2.test.esc",
19
+ "eccCollection": "fle2.test.ecc",
20
+ "ecocCollection": "fle2.test.ecoc",
21
+ "fields": [
22
+ {
23
+ "keyId": {
24
+ "$binary": {
25
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
26
+ "subType": "04"
27
+ }
28
+ },
29
+ "path": "encrypted",
30
+ "bsonType": "decimal",
31
+ "queries": {
32
+ "queryType": "rangePreview",
33
+ "contention": {
34
+ "$numberInt": "0"
35
+ },
36
+ "sparsity": {
37
+ "$numberInt": "1"
38
+ },
39
+ "min": {
40
+ "$numberDecimal": "0"
41
+ },
42
+ "max": {
43
+ "$numberDecimal": "1234567890123456789"
44
+ },
45
+ "precision": {
46
+ "$numberInt": "2"
47
+ }
48
+ }
49
+ }
50
+ ]
51
+ }
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "ok": {
3
+ "$numberInt": "1"
4
+ },
5
+ "result": {
6
+ "insert": "test",
7
+ "documents": [
8
+ {
9
+ "plainText": "sample",
10
+ "encrypted": {
11
+ "$binary": {
12
+ "base64": "A7AAAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAUQAAABN2AACABMa6ngEAAAAAAAAAJDATbWluAAAAAAAAAAAAAAAAAAAAQDATbWF4ABWB6X30ECIRAAAAAAAAQDAQcHJlY2lzaW9uAAIAAAAAEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA",
13
+ "subType": "6"
14
+ }
15
+ }
16
+ }
17
+ ],
18
+ "encryptionInformation": {
19
+ "type": {
20
+ "$numberInt": "1"
21
+ },
22
+ "schema": {
23
+ "db.test": {
24
+ "escCollection": "fle2.test.esc",
25
+ "eccCollection": "fle2.test.ecc",
26
+ "ecocCollection": "fle2.test.ecoc",
27
+ "fields": [
28
+ {
29
+ "keyId": {
30
+ "$binary": {
31
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
32
+ "subType": "04"
33
+ }
34
+ },
35
+ "path": "encrypted",
36
+ "bsonType": "decimal",
37
+ "queries": {
38
+ "queryType": "rangePreview",
39
+ "contention": {
40
+ "$numberInt": "0"
41
+ },
42
+ "sparsity": {
43
+ "$numberInt": "1"
44
+ },
45
+ "min": {
46
+ "$numberDecimal": "0"
47
+ },
48
+ "max": {
49
+ "$numberDecimal": "1234567890123456789"
50
+ },
51
+ "precision": {
52
+ "$numberInt": "2"
53
+ }
54
+ }
55
+ }
56
+ ]
57
+ }
58
+ }
59
+ }
60
+ },
61
+ "hasEncryptedPlaceholders": true
62
+ }
@@ -0,0 +1,70 @@
1
+ // Defines the random data for IVs to obtain a deterministic
2
+ // FLE2InsertUpdatePayload.
3
+ #define RNG_DATA \
4
+ "\xc1\xa1\x03\x4e\x80\xc5\x22\xf1\x6b\x0c\xa9\x39\x2f\xda\x68\x88" \
5
+ "\xc0\x05\x26\x23\xfb\xa7\x85\x1e\xf8\x95\x4c\x23\xfe\x13\x26\x72" \
6
+ "\x67\xa3\x19\xe1\xb7\x2c\x24\xef\x36\xa0\x14\x16\xc8\x57\xf0\xee" \
7
+ "\xc9\xee\x1c\xa7\x25\x8e\x07\xe1\x47\x25\x72\x03\x32\x70\x7a\x9a" \
8
+ "\x1c\x9d\x9c\x3f\x0c\xbd\xe3\x13\xff\x27\xba\xdd\xaa\x8c\x08\xa4" \
9
+ "\x6b\x2f\xad\x5d\xce\x5f\xca\xaf\x75\xc3\xd9\xff\xe4\x5c\x36\xb9" \
10
+ "\x02\xd9\xc9\x6e\xee\x43\x49\x28\x4e\x76\x94\xe9\x5a\xb9\x46\xb5" \
11
+ "\x7c\xe2\xb7\x67\x1f\xfc\x02\xc6\xdd\xc9\x82\x26\x00\xd1\xd6\x67" \
12
+ "\xe1\x89\x54\x31\x24\x9c\xb1\x3f\xd0\xd9\xde\xe4\x63\xd9\x9e\xd5" \
13
+ "\x5a\xb7\x20\x26\x30\xab\x48\xbd\xac\x23\x5f\x95\x4b\x96\x17\x4f" \
14
+ "\xd5\x97\x4d\xdc\x24\xd7\x46\xd8\x73\x6d\x95\x3f\x0a\x51\xdb\x60" \
15
+ "\xe7\x60\xfc\x68\x5b\x78\x8e\x02\x19\x85\x44\x90\xb7\xe5\x60\xa4" \
16
+ "\x8a\x93\x06\x13\xcb\x1d\x3d\x66\xba\x01\x26\x4b\x0c\x4d\xcf\x69" \
17
+ "\x7a\xde\xb9\x2e\x40\xd1\x3b\x73\x7c\x6a\x9e\x3e\x1f\xa5\xff\x20" \
18
+ "\x4e\x94\xd0\x1d\x7c\x9e\x22\xbe\xa2\xb1\xb5\xa2\xff\xf5\x47\xeb" \
19
+ "\x59\xe7\xc6\x4a\x67\x0f\x0e\x7c\xef\x9a\x6f\x49\x63\xe5\x64\x2f" \
20
+ "\xcc\x73\x63\xdd\x36\x28\x03\x4c\x9b\x7e\xd2\x30\x83\xce\x0b\xb1" \
21
+ "\x20\x30\x83\xbf\x0c\x21\x44\x3d\xc3\x73\x42\x49\x57\x47\xcc\xfc" \
22
+ "\x97\xa9\x1a\x8b\xd2\xc2\x2d\xe9\xbf\x14\xe2\x9a\x05\xc3\x27\xe9" \
23
+ "\xa4\x1d\x55\x4f\xea\x78\x92\x81\xdb\x9e\x9e\x7d\x14\x12\xd3\x48" \
24
+ "\x93\xec\xdd\xdf\x4e\xc3\x78\x35\x20\x7a\xde\xa0\x3a\xee\xd5\x8a" \
25
+ "\xef\x0b\x39\x7d\x8f\xfd\x43\x50\xe2\x42\x0d\x76\xd8\xb9\x42\x0a" \
26
+ "\x3d\xfe\xbd\x51\x78\x97\x88\xb8\x2f\xf9\x32\x4d\x0f\x70\x58\xf0" \
27
+ "\xf9\xdf\xab\xc0\x58\x28\x9e\x8f\x7c\x34\x45\x4c\xc1\xc5\x18\x08" \
28
+ "\xc9\x66\xf1\xfe\xea\xfb\x50\x6a\xbc\x85\x19\x10\x79\x64\x76\xf6" \
29
+ "\xfa\x5b\xa4\xe7\x3b\xcc\x39\x35\x7d\x2c\xd8\x5f\x8f\xf2\xa1\x93" \
30
+ "\x15\x34\x87\xc6\x01\xa7\xa0\x00\x94\x8c\x02\x31\x25\x5c\xe9\x97" \
31
+ "\x9e\x3f\x0c\x72\xe6\x0f\x7f\x21\xe0\xb9\x17\x22\x33\xba\x69\x0c" \
32
+ "\x9f\x61\xb8\x8d\x6b\x2f\x86\xa7\x2f\xbf\x7b\xec\x82\x8e\x58\x34" \
33
+ "\xb2\x85\xe2\xaf\xf2\xd4\xa5\x7a\xba\x42\x17\xb5\xc8\xfc\xf4\x49" \
34
+ "\x65\xf0\xc4\xd5\xbd\xe6\x3d\xba\x91\x36\x5a\x84\x08\x79\x7e\xc8" \
35
+ "\xe0\x74\xa2\x34\x1a\xa6\xda\x1a\x84\x68\xb7\xa2\x66\x40\xd8\x1f" \
36
+ "\x48\x81\x47\xaa\xe1\x47\x05\xac\x84\xde\x15\x5b\xdf\x2e\x6b\xdd" \
37
+ "\x69\xaf\x9e\xca\xed\x99\xaf\x7d\x04\xb3\x8d\xcc\xf4\xa5\x7a\x6f" \
38
+ "\x7b\x37\x72\x53\xc2\xe0\xbd\x08\x63\xb3\xa3\x12\x84\x25\x55\x1c" \
39
+ "\x37\x7b\x77\x71\x6c\x19\x27\x27\x03\x97\x89\xaa\x93\x75\xf9\x06" \
40
+ "\x69\x1a\x22\x7d\x35\x66\x3a\xe7\x72\x91\x23\xfb\x39\x00\xae\xa9" \
41
+ "\x08\xe7\xae\x2a\xb7\xc2\x4d\xd6\x72\x15\xee\x70\xd1\xaf\x4f\x4d" \
42
+ "\x22\xe6\xc8\x79\xd7\x41\xb2\x28\x5a\xa2\x3e\x0d\xbd\x33\xac\x7d" \
43
+ "\x50\xcb\x96\xb5\xc2\x49\xc5\x7d\xd3\x36\x7c\xda\x6a\xc4\x54\xfa" \
44
+ "\x3f\x7c\xa4\xde\xfe\x60\x2c\x89\xc4\x79\xe4\x31\xdd\xb7\xa1\x76" \
45
+ "\x31\x43\xe1\xbb\xb8\x56\x78\x1e\x2d\xac\xe7\xff\x34\x8f\xc6\x36" \
46
+ "\x2c\x6f\x43\x65\x2f\x7f\xd1\xe3\xd1\x89\xf5\xe9\x2b\xd4\x58\xd7" \
47
+ "\xaf\x1b\xb4\xfb\xec\x61\xf0\xf3\x8f\x53\x9c\xaa\x31\x69\x17\x7d" \
48
+ "\xca\x6e\x1b\xba\x0d\x60\x43\x4d\x35\x4b\x23\x88\x4a\x51\x29\x7e" \
49
+ "\xfd\xb6\xe0\xd4\xcb\x94\x8b\xd3\x65\x22\x07\x9b\x39\xea\x46\xff" \
50
+ "\x5f\xf2\x4e\xee\x2e\x8a\x8d\xe3\x5d\xc7\xa4\xfc\xd4\xec\xb3\xc1" \
51
+ "\xe7\xbe\x19\x97\x7a\x7a\xc6\x2e\x0b\xcd\xc0\x94\x87\xcd\x5f\xc6" \
52
+ "\x37\x08\x01\xf3\x38\x90\xb5\x77\x97\xdd\xc4\x42\xa9\xb5\xe6\xdb" \
53
+ "\x7d\x4b\xfe\x4f\x5d\xc1\xe1\x5d\xde\x3d\x6a\x59\x70\x65\xb6\xeb" \
54
+ "\xce\x0c\xdf\x97\x88\xee\x72\x08\x64\xd9\x09\x44\x23\x66\x3b\xc4" \
55
+ "\x2c\x98\xfa\xfd\xd8\x6a\x04\xb9\xd1\xfc\xbf\xcb\xe1\xc1\x77\x3f" \
56
+ "\x42\x84\xc2\x13\x14\xff\x56\x4c\xf3\x40\x87\xb5\x13\x0d\x06\x38" \
57
+ "\x37\xc5\x15\xb6\xfd\x23\x80\x6e\x32\x59\xa1\x83\x2d\x73\xbb\xd5" \
58
+ "\x4e\xfd\x2d\x37\x09\x38\xcd\x3d\xa5\xef\xe1\x0f\xe5\x36\xa9\x8d" \
59
+ "\xbb\x27\xd4\x81\x5e\xdf\x63\x85\x67\x07\xed\x04\x84\x26\x82\x48" \
60
+ "\x85\x83\xed\x8b\xe8\x71\x29\x96\x71\x00\xc5\x75\x5b\xe3\x4f\x4d" \
61
+ "\xef\x2f\xfa\x88\xf2\x9a\xd0\xe3\xb8\x38\xdc\xd3\x12\x7a\x21\x65" \
62
+ "\x38\xdc\xb9\x36\x86\x23\xa9\xbc\xa5\x4f\x50\xc2\xb6\x3d\x40\xd4" \
63
+ "\xdc\x5b\x35\xf9\x89\xb0\x45\x7f\x3d\x2a\x61\xfd\x0e\xec\x00\x52" \
64
+ "\x71\xa5\x1f\xe5\x49\xe0\x26\xf9\xd0\x2a\x1d\x5f\x3f\x9e\x82\x07" \
65
+ "\xfb\xf7\xdb\xa1\x87\x56\xd6\x13\x4b\x2c\x8e\x73\xbc\x56\x98\x1d" \
66
+ "\xae\xe6\x9d\xab\x15\x83\x0e\x0a\x4c\x3c\xd0\x11\x41\x96\xc0\x56" \
67
+ "\x94\x7a\x1e\x0b\xc8\xec\x23\xa3\x9d\x6d\x01\x01\x22\xa7\xbd\x96" \
68
+ "\x51\xb0\x6a\xab\x98\x7c\xcd\xd3\xff\xf0\x67\x63\x16\xf2\x2f\x62" \
69
+ "\x3c\xbd\x8b\x4a\x49\xb0\xe4\xe3\x12\xd4\x6b\x12\x41\x32\x22\xc0" \
70
+ "\x51\x0c\xaf\x7e\x01\x46\x2b\xd5\x50\x9c\xd6\xfd\x42\xb5\x11\x4b"
@@ -0,0 +1,11 @@
1
+ {
2
+ "insert": "test",
3
+ "documents": [
4
+ {
5
+ "plainText": "sample",
6
+ "encrypted": {
7
+ "$numberDouble": "123.456"
8
+ }
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "db.test": {
3
+ "escCollection": "fle2.test.esc",
4
+ "eccCollection": "fle2.test.ecc",
5
+ "ecocCollection": "fle2.test.ecoc",
6
+ "fields": [
7
+ {
8
+ "keyId": {
9
+ "$binary": {
10
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
11
+ "subType": "04"
12
+ }
13
+ },
14
+ "path": "encrypted",
15
+ "bsonType": "double",
16
+ "queries": {
17
+ "queryType": "rangePreview",
18
+ "contention": {
19
+ "$numberInt": "0"
20
+ },
21
+ "sparsity": {
22
+ "$numberInt": "1"
23
+ }
24
+ }
25
+ }
26
+ ]
27
+ }
28
+ }