libmongocrypt-helper 1.7.4.0.1001 → 1.8.0.0.1001

Sign up to get free protection for your applications and to get access to all the features.
Files changed (398) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/ext/libmongocrypt/extconf.rb +2 -2
  4. data/ext/libmongocrypt/libmongocrypt/CHANGELOG.md +9 -7
  5. data/ext/libmongocrypt/libmongocrypt/CMakeLists.txt +17 -23
  6. data/ext/libmongocrypt/libmongocrypt/Earthfile +374 -0
  7. data/ext/libmongocrypt/libmongocrypt/README.md +7 -7
  8. data/ext/libmongocrypt/libmongocrypt/VERSION_CURRENT +1 -1
  9. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/CryptClient.cs +25 -6
  10. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt/Library.cs +25 -3
  11. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Example/MongoDB.Libmongocrypt.Example.csproj +1 -1
  12. data/ext/libmongocrypt/libmongocrypt/bindings/cs/MongoDB.Libmongocrypt.Test/BasicTests.cs +1 -1
  13. data/ext/libmongocrypt/libmongocrypt/bindings/cs/Scripts/build.cake +3 -2
  14. data/ext/libmongocrypt/libmongocrypt/bindings/cs/cs.sln +79 -0
  15. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/build.gradle.kts +2 -2
  16. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/java/com/mongodb/crypt/capi/MongoCryptTest.java +6 -4
  17. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit-v2/int32/encrypted-payload.json +26 -0
  18. data/ext/libmongocrypt/libmongocrypt/bindings/node/CHANGELOG.md +24 -0
  19. data/ext/libmongocrypt/libmongocrypt/bindings/node/README.md +134 -5
  20. data/ext/libmongocrypt/libmongocrypt/bindings/node/etc/build-static.sh +3 -6
  21. data/ext/libmongocrypt/libmongocrypt/bindings/node/index.d.ts +203 -77
  22. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/autoEncrypter.js +1 -1
  23. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/clientEncryption.js +165 -43
  24. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/common.js +12 -14
  25. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/errors.js +75 -0
  26. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/index.js +34 -3
  27. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/aws.js +26 -0
  28. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/azure.js +178 -0
  29. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/gcp.js +24 -0
  30. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/index.js +54 -0
  31. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/providers/utils.js +39 -0
  32. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/stateMachine.js +9 -4
  33. data/ext/libmongocrypt/libmongocrypt/bindings/node/package-lock.json +4440 -5189
  34. data/ext/libmongocrypt/libmongocrypt/bindings/node/package.json +27 -8
  35. data/ext/libmongocrypt/libmongocrypt/bindings/node/src/mongocrypt.cc +65 -38
  36. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/autoEncrypter.test.js +4 -7
  37. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/clientEncryption.test.js +434 -42
  38. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/common.test.js +94 -0
  39. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/cryptoCallbacks.test.js +1 -45
  40. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/index.test.js +45 -0
  41. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/mongocryptdManager.test.js +1 -1
  42. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/providers/credentialsProvider.test.js +551 -0
  43. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/release.test.js +10 -3
  44. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/requirements.helper.js +23 -1
  45. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/stateMachine.test.js +1 -1
  46. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/tools/chai-addons.js +8 -0
  47. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/types/index.test-d.ts +63 -0
  48. data/ext/libmongocrypt/libmongocrypt/bindings/python/CHANGELOG.rst +26 -0
  49. data/ext/libmongocrypt/libmongocrypt/bindings/python/README.rst +2 -2
  50. data/ext/libmongocrypt/libmongocrypt/bindings/python/build-manylinux-wheel.sh +1 -1
  51. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/binding.py +128 -238
  52. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/compat.py +0 -27
  53. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/explicit_encrypter.py +1 -1
  54. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/mongocrypt.py +5 -21
  55. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/version.py +2 -2
  56. data/ext/libmongocrypt/libmongocrypt/bindings/python/release.sh +5 -5
  57. data/ext/libmongocrypt/libmongocrypt/bindings/python/setup.py +14 -9
  58. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/__init__.py +1 -10
  59. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/fle2-find-range-explicit-v2/int32/encrypted-payload.json +26 -0
  60. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/test_mongocrypt.py +5 -5
  61. data/ext/libmongocrypt/libmongocrypt/bindings/python/test-requirements.txt +4 -12
  62. data/ext/libmongocrypt/libmongocrypt/cmake/ImportBSON.cmake +8 -6
  63. data/ext/libmongocrypt/libmongocrypt/cmake/IntelDFP.cmake +2 -1
  64. data/ext/libmongocrypt/libmongocrypt/cmake/Platform.cmake +50 -0
  65. data/ext/libmongocrypt/libmongocrypt/cmake/mongocrypt-config.cmake +21 -0
  66. data/ext/libmongocrypt/libmongocrypt/debian/gbp.conf +2 -2
  67. data/ext/libmongocrypt/libmongocrypt/etc/c6-vault.repo +39 -0
  68. data/ext/libmongocrypt/libmongocrypt/etc/fle2_aead_generate_tests.py +15 -24
  69. data/ext/libmongocrypt/libmongocrypt/etc/fle2_crypto.py +66 -54
  70. data/ext/libmongocrypt/libmongocrypt/etc/fle2_generate_tests.py +14 -23
  71. data/ext/libmongocrypt/libmongocrypt/etc/fle2v2_aead_generate_tests.py +32 -0
  72. data/ext/libmongocrypt/libmongocrypt/etc/format-all.sh +12 -0
  73. data/ext/libmongocrypt/libmongocrypt/etc/format.sh +16 -0
  74. data/ext/libmongocrypt/libmongocrypt/etc/install-package.sh +48 -0
  75. data/ext/libmongocrypt/libmongocrypt/etc/mongo-inteldfp-libmongocrypt-pr-625.patch +13 -0
  76. data/ext/libmongocrypt/libmongocrypt/src/crypto/cng.c +381 -436
  77. data/ext/libmongocrypt/libmongocrypt/src/crypto/commoncrypto.c +162 -227
  78. data/ext/libmongocrypt/libmongocrypt/src/crypto/libcrypto.c +180 -248
  79. data/ext/libmongocrypt/libmongocrypt/src/crypto/none.c +33 -55
  80. data/ext/libmongocrypt/libmongocrypt/src/csfle-markup.cpp +175 -205
  81. data/ext/libmongocrypt/libmongocrypt/src/mc-array-private.h +10 -21
  82. data/ext/libmongocrypt/libmongocrypt/src/mc-array.c +44 -56
  83. data/ext/libmongocrypt/libmongocrypt/src/mc-check-conversions-private.h +4 -8
  84. data/ext/libmongocrypt/libmongocrypt/src/mc-dec128.h +351 -463
  85. data/ext/libmongocrypt/libmongocrypt/src/mc-dec128.test.cpp +59 -66
  86. data/ext/libmongocrypt/libmongocrypt/src/mc-efc-private.h +7 -11
  87. data/ext/libmongocrypt/libmongocrypt/src/mc-efc.c +80 -92
  88. data/ext/libmongocrypt/libmongocrypt/src/mc-fle-blob-subtype-private.h +18 -10
  89. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h +59 -70
  90. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder.c +384 -439
  91. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-private-v2.h +41 -0
  92. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-private.h +11 -18
  93. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-v2.c +135 -0
  94. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload.c +109 -126
  95. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-private-v2.h +88 -0
  96. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-private.h +24 -27
  97. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-v2.c +137 -0
  98. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload.c +106 -125
  99. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-private-v2.h +117 -0
  100. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-private.h +28 -36
  101. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-v2.c +294 -0
  102. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload.c +237 -278
  103. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-private-v2.h +133 -0
  104. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-private.h +67 -56
  105. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-v2.c +437 -0
  106. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev.c +476 -325
  107. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-common-private.h +69 -0
  108. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-common.c +182 -0
  109. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-private.h +23 -31
  110. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-v2-private.h +85 -0
  111. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-v2.c +142 -0
  112. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev.c +104 -231
  113. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-range-operator-private.h +8 -7
  114. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-rfds-private.h +55 -56
  115. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-rfds.c +517 -580
  116. data/ext/libmongocrypt/libmongocrypt/src/mc-optional-private.h +36 -66
  117. data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation-private.h +57 -76
  118. data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation.c +158 -189
  119. data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding-private.h +36 -42
  120. data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding.c +515 -558
  121. data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-generator.template.h +155 -191
  122. data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-private.h +43 -53
  123. data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover.c +170 -240
  124. data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts-private.h +29 -34
  125. data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts.c +289 -338
  126. data/ext/libmongocrypt/libmongocrypt/src/mc-reader-private.h +36 -71
  127. data/ext/libmongocrypt/libmongocrypt/src/mc-reader.c +111 -164
  128. data/ext/libmongocrypt/libmongocrypt/src/mc-tokens-private.h +55 -49
  129. data/ext/libmongocrypt/libmongocrypt/src/mc-tokens.c +109 -125
  130. data/ext/libmongocrypt/libmongocrypt/src/mc-writer-private.h +66 -0
  131. data/ext/libmongocrypt/libmongocrypt/src/mc-writer.c +141 -0
  132. data/ext/libmongocrypt/libmongocrypt/src/mlib/check.hpp +37 -55
  133. data/ext/libmongocrypt/libmongocrypt/src/mlib/endian.h +11 -11
  134. data/ext/libmongocrypt/libmongocrypt/src/mlib/error.h +27 -32
  135. data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.h +444 -499
  136. data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.test.cpp +251 -334
  137. data/ext/libmongocrypt/libmongocrypt/src/mlib/macros.h +4 -5
  138. data/ext/libmongocrypt/libmongocrypt/src/mlib/path.h +196 -231
  139. data/ext/libmongocrypt/libmongocrypt/src/mlib/path.test.c +56 -79
  140. data/ext/libmongocrypt/libmongocrypt/src/mlib/str.h +411 -530
  141. data/ext/libmongocrypt/libmongocrypt/src/mlib/str.test.c +116 -131
  142. data/ext/libmongocrypt/libmongocrypt/src/mlib/thread.h +17 -26
  143. data/ext/libmongocrypt/libmongocrypt/src/mlib/user-check.h +2 -2
  144. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-binary-private.h +3 -6
  145. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-binary.c +31 -48
  146. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-buffer-private.h +55 -131
  147. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-buffer.c +444 -565
  148. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-collinfo-private.h +1 -2
  149. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-collinfo.c +28 -45
  150. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-key-private.h +11 -17
  151. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-key.c +103 -132
  152. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-oauth-private.h +8 -14
  153. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-oauth.c +78 -90
  154. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-private.h +26 -45
  155. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache.c +220 -273
  156. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ciphertext-private.h +13 -25
  157. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ciphertext.c +147 -166
  158. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-compat.h +2 -2
  159. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-crypto-private.h +110 -204
  160. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-crypto.c +1137 -1565
  161. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-datakey.c +425 -472
  162. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-decrypt.c +817 -694
  163. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-encrypt.c +2394 -2697
  164. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-private.h +166 -186
  165. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-rewrap-many-datakey.c +308 -351
  166. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx.c +921 -1138
  167. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-dll-private.h +16 -24
  168. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-endian-private.h +44 -58
  169. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-endpoint-private.h +21 -25
  170. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-endpoint.c +167 -181
  171. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kek-private.h +37 -43
  172. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kek.c +215 -253
  173. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-broker-private.h +73 -108
  174. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-broker.c +889 -1034
  175. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-private.h +27 -44
  176. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key.c +349 -402
  177. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kms-ctx-private.h +92 -120
  178. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-kms-ctx.c +1397 -1612
  179. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-log-private.h +35 -67
  180. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-log.c +49 -83
  181. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking-private.h +30 -36
  182. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking.c +1821 -1470
  183. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-mutex-private.h +7 -12
  184. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts-private.h +80 -108
  185. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts.c +354 -424
  186. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-private.h +101 -117
  187. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-status-private.h +3 -8
  188. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-status.c +92 -119
  189. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-traverse-util-private.h +19 -29
  190. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-traverse-util.c +136 -176
  191. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-util-private.h +11 -21
  192. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-util.c +96 -135
  193. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.c +1092 -1320
  194. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.h +130 -295
  195. data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_dll.c +66 -78
  196. data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_mutex.c +20 -28
  197. data/ext/libmongocrypt/libmongocrypt/src/os_win/os_dll.c +60 -73
  198. data/ext/libmongocrypt/libmongocrypt/src/os_win/os_mutex.c +8 -16
  199. data/ext/libmongocrypt/libmongocrypt/test/crypt_shared-stub.cpp +57 -87
  200. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/empty/encrypted-payload-v2.json +60 -0
  201. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-delete/success/encrypted-payload-v2.json +67 -0
  202. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explain/with-csfle/encrypted-payload.json +2 -2
  203. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/find-indexed-contentionFactor1-v2.json +8 -0
  204. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/find-indexed-v2.json +8 -0
  205. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-contentionFactor1-v2.json +8 -0
  206. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-same-user-and-index-key-v2.json +8 -0
  207. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-explicit/insert-indexed-v2.json +8 -0
  208. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality-v2/cmd.json +6 -0
  209. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality-v2/encrypted-field-map.json +22 -0
  210. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality-v2/encrypted-payload.json +40 -0
  211. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-equality-v2/mongocryptd-reply.json +19 -0
  212. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/cmd.json +10 -0
  213. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/encrypted-field-map.json +27 -0
  214. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/encrypted-payload.json +41 -0
  215. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/mongocryptd-reply.json +49 -0
  216. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/cmd.json +6 -0
  217. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/encrypted-field-map.json +30 -0
  218. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/encrypted-payload.json +50 -0
  219. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/mongocryptd-reply.json +58 -0
  220. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/cmd.json +6 -0
  221. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/encrypted-field-map.json +27 -0
  222. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/encrypted-payload.json +41 -0
  223. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/mongocryptd-reply.json +49 -0
  224. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/cmd.json +8 -0
  225. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/encrypted-field-map.json +30 -0
  226. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/encrypted-payload.json +44 -0
  227. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/mongocryptd-reply.json +52 -0
  228. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/cmd.json +8 -0
  229. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/encrypted-field-map.json +27 -0
  230. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/encrypted-payload.json +41 -0
  231. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/mongocryptd-reply.json +49 -0
  232. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/cmd.json +8 -0
  233. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/encrypted-field-map.json +27 -0
  234. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/encrypted-payload.json +41 -0
  235. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/mongocryptd-reply.json +49 -0
  236. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/cmd.json +8 -0
  237. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/encrypted-field-map.json +27 -0
  238. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/encrypted-payload.json +41 -0
  239. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/mongocryptd-reply.json +49 -0
  240. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double/encrypted-payload-v2.json +26 -0
  241. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double-precision/encrypted-payload-v2.json +26 -0
  242. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32/encrypted-payload-v2.json +26 -0
  243. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/encrypted-payload-v2.json +26 -0
  244. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-openinterval/encrypted-payload-v2.json +16 -0
  245. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert/cmd.json +1 -1
  246. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date/RNG_DATA.h +65 -65
  247. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/cmd.json +13 -0
  248. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/encrypted-field-map.json +27 -0
  249. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/encrypted-payload.json +44 -0
  250. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/mongocryptd-reply.json +52 -0
  251. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128/RNG_DATA.h +132 -132
  252. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision/RNG_DATA.h +71 -71
  253. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/cmd.json +9 -0
  254. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/encrypted-field-map.json +30 -0
  255. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/encrypted-payload.json +53 -0
  256. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/mongocryptd-reply.json +61 -0
  257. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/cmd.json +9 -0
  258. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/encrypted-field-map.json +27 -0
  259. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/encrypted-payload.json +44 -0
  260. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/mongocryptd-reply.json +52 -0
  261. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double/RNG_DATA.h +68 -68
  262. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision/RNG_DATA.h +19 -19
  263. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/cmd.json +11 -0
  264. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/encrypted-field-map.json +30 -0
  265. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/encrypted-payload.json +47 -0
  266. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/mongocryptd-reply.json +55 -0
  267. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/cmd.json +11 -0
  268. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/encrypted-field-map.json +27 -0
  269. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/encrypted-payload.json +44 -0
  270. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/mongocryptd-reply.json +52 -0
  271. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32/RNG_DATA.h +25 -25
  272. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/cmd.json +11 -0
  273. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/encrypted-field-map.json +27 -0
  274. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/encrypted-payload.json +44 -0
  275. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/mongocryptd-reply.json +52 -0
  276. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64/RNG_DATA.h +65 -65
  277. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/cmd.json +11 -0
  278. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/encrypted-field-map.json +27 -0
  279. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/encrypted-payload.json +44 -0
  280. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/mongocryptd-reply.json +52 -0
  281. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/RNG_DATA.h +68 -68
  282. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/encrypted-payload-v2.json +8 -0
  283. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/RNG_DATA.h +19 -19
  284. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/encrypted-payload-v2.json +8 -0
  285. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32/RNG_DATA.h +25 -25
  286. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32/encrypted-payload-v2.json +8 -0
  287. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/encrypted-payload-v2.json +8 -0
  288. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/RNG_DATA.h +15 -15
  289. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/encrypted-payload-v2.json +8 -0
  290. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed-v2/cmd.json +9 -0
  291. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed-v2/encrypted-field-map.json +18 -0
  292. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed-v2/encrypted-payload.json +14 -0
  293. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-unindexed-v2/mongocryptd-reply.json +41 -0
  294. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2/cmd.json +9 -0
  295. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2/encrypted-field-map.json +22 -0
  296. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2/encrypted-payload.json +39 -0
  297. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-v2/mongocryptd-reply.json +49 -0
  298. data/ext/libmongocrypt/libmongocrypt/test/data/iev-v2/FLECrudTest-insertOneRangeV2.json +10 -0
  299. data/ext/libmongocrypt/libmongocrypt/test/data/iev-v2/FLECrudTest-insertOneV2.json +10 -0
  300. data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/README.md +17 -0
  301. data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/aes-ctr.json +29 -0
  302. data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2-fixed.json +10 -0
  303. data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2-generated.json +38 -0
  304. data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2aead-decrypt.json +35 -0
  305. data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2aead-fixed.json +29 -0
  306. data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2aead-generated.json +122 -0
  307. data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2v2-aead-fixed.json +29 -0
  308. data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/fle2v2-aead-generated.json +122 -0
  309. data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/mcgrew.json +12 -0
  310. data/ext/libmongocrypt/libmongocrypt/test/data/roundtrip/nist.json +20 -0
  311. data/ext/libmongocrypt/libmongocrypt/test/data/tokens/README.md +27 -0
  312. data/ext/libmongocrypt/libmongocrypt/test/data/tokens/mc.json +21 -0
  313. data/ext/libmongocrypt/libmongocrypt/test/data/tokens/server.json +21 -0
  314. data/ext/libmongocrypt/libmongocrypt/test/example-no-bson.c +4 -4
  315. data/ext/libmongocrypt/libmongocrypt/test/example-state-machine.c +278 -323
  316. data/ext/libmongocrypt/libmongocrypt/test/fuzz_kms.c +8 -7
  317. data/ext/libmongocrypt/libmongocrypt/test/test-dll.cpp +6 -7
  318. data/ext/libmongocrypt/libmongocrypt/test/test-gcp-auth.c +221 -283
  319. data/ext/libmongocrypt/libmongocrypt/test/test-mc-efc.c +58 -73
  320. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-equality-payload-v2.c +78 -0
  321. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-range-payload-v2.c +89 -0
  322. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iev-v2.c +248 -0
  323. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iev.c +467 -414
  324. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup-v2.c +172 -0
  325. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup.c +141 -159
  326. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-uev-v2.c +338 -0
  327. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-uev.c +238 -176
  328. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-rfds.c +373 -474
  329. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-edge-generation.c +346 -388
  330. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-encoding.c +708 -825
  331. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-mincover.c +417 -481
  332. data/ext/libmongocrypt/libmongocrypt/test/test-mc-rangeopts.c +110 -144
  333. data/ext/libmongocrypt/libmongocrypt/test/test-mc-reader.c +124 -207
  334. data/ext/libmongocrypt/libmongocrypt/test/test-mc-tokens.c +223 -213
  335. data/ext/libmongocrypt/libmongocrypt/test/test-mc-writer.c +176 -0
  336. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.c +634 -807
  337. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.h +1 -2
  338. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert.h +168 -189
  339. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-buffer.c +187 -211
  340. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cache-oauth.c +34 -36
  341. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cache.c +210 -233
  342. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ciphertext.c +185 -220
  343. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-compact.c +331 -445
  344. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-hooks.c +670 -814
  345. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-std-hooks.c +102 -135
  346. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-std-hooks.h +54 -71
  347. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto.c +394 -846
  348. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-csfle-lib.c +159 -183
  349. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-decrypt.c +867 -1045
  350. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-encrypt.c +4349 -4713
  351. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-rewrap-many-datakey.c +750 -964
  352. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-setopt.c +991 -1178
  353. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-datakey.c +342 -419
  354. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-dll.c +23 -30
  355. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-endpoint.c +98 -111
  356. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kek.c +49 -52
  357. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key-broker.c +770 -920
  358. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key-cache.c +354 -407
  359. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key.c +197 -245
  360. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kms-ctx.c +286 -370
  361. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kms-responses.c +147 -166
  362. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-local-kms.c +50 -61
  363. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-log.c +85 -100
  364. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-marking.c +656 -692
  365. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-status.c +46 -58
  366. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-traverse-util.c +377 -451
  367. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-util.c +48 -67
  368. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-util.h +4 -10
  369. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.c +827 -918
  370. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.h +111 -172
  371. data/ext/libmongocrypt/libmongocrypt/test/util/csfle.c +508 -559
  372. data/ext/libmongocrypt/libmongocrypt/test/util/util.c +735 -881
  373. data/ext/libmongocrypt/libmongocrypt/test/util/util.h +33 -55
  374. data/lib/libmongocrypt_helper/version.rb +2 -2
  375. data/lib/libmongocrypt_helper.rb +2 -2
  376. data.tar.gz.sig +0 -0
  377. metadata +154 -26
  378. metadata.gz.sig +0 -0
  379. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit/int32/encrypted-payload.json +0 -26
  380. data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/fle2-find-range-explicit/int32/key-document.json +0 -0
  381. data/ext/libmongocrypt/libmongocrypt/bindings/node/lib/credentialsProvider.js +0 -33
  382. data/ext/libmongocrypt/libmongocrypt/bindings/node/test/credentialsProvider.test.js +0 -163
  383. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/fle2-find-range-explicit/int32/encrypted-payload.json +0 -26
  384. data/ext/libmongocrypt/libmongocrypt/test/data/aes-ctr.cstructs +0 -359
  385. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-aead.cstructs +0 -109
  386. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/encrypted-payload.json +0 -26
  387. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/rangeopts.json +0 -5
  388. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-nominmax/value-to-encrypt.json +0 -20
  389. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/RNG_DATA.h +0 -70
  390. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/encrypted-payload.json +0 -8
  391. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/rangeopts.json +0 -5
  392. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32-nominmax/value-to-encrypt.json +0 -5
  393. data/ext/libmongocrypt/libmongocrypt/test/data/fle2.cstructs +0 -33
  394. /data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/{fle2-find-range-explicit → fle2-find-range-explicit-v2}/int32/key-filter.json +0 -0
  395. /data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/{fle2-find-range-explicit → fle2-find-range-explicit-v2}/int32/rangeopts.json +0 -0
  396. /data/ext/libmongocrypt/libmongocrypt/bindings/java/mongocrypt/src/test/resources/{fle2-find-range-explicit → fle2-find-range-explicit-v2}/int32/value-to-encrypt.json +0 -0
  397. /data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/{fle2-find-range-explicit → fle2-find-range-explicit-v2}/int32/rangeopts.json +0 -0
  398. /data/ext/libmongocrypt/libmongocrypt/bindings/python/test/data/{fle2-find-range-explicit → fle2-find-range-explicit-v2}/int32/value-to-encrypt.json +0 -0
@@ -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,27 @@
1
+ {
2
+ "db.test": {
3
+ "escCollection": "fle2.test.esc",
4
+ "ecocCollection": "fle2.test.ecoc",
5
+ "fields": [
6
+ {
7
+ "keyId": {
8
+ "$binary": {
9
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
10
+ "subType": "04"
11
+ }
12
+ },
13
+ "path": "encrypted",
14
+ "bsonType": "double",
15
+ "queries": {
16
+ "queryType": "rangePreview",
17
+ "contention": {
18
+ "$numberInt": "0"
19
+ },
20
+ "sparsity": {
21
+ "$numberInt": "1"
22
+ }
23
+ }
24
+ }
25
+ ]
26
+ }
27
+ }
@@ -0,0 +1,44 @@
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
+ "ecocCollection": "fle2.test.ecoc",
20
+ "fields": [
21
+ {
22
+ "keyId": {
23
+ "$binary": {
24
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
25
+ "subType": "04"
26
+ }
27
+ },
28
+ "path": "encrypted",
29
+ "bsonType": "double",
30
+ "queries": {
31
+ "queryType": "rangePreview",
32
+ "contention": {
33
+ "$numberInt": "0"
34
+ },
35
+ "sparsity": {
36
+ "$numberInt": "1"
37
+ }
38
+ }
39
+ }
40
+ ]
41
+ }
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "ok": {
3
+ "$numberInt": "1"
4
+ },
5
+ "result": {
6
+ "insert": "test",
7
+ "documents": [
8
+ {
9
+ "plainText": "sample",
10
+ "encrypted": {
11
+ "$binary": {
12
+ "base64": "A4kAAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAKgAAAAF2AHe+nxov3V5AAW1pbgAAAAAAAAAQAAFtYXgA////////738AEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA",
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
+ "ecocCollection": "fle2.test.ecoc",
26
+ "fields": [
27
+ {
28
+ "keyId": {
29
+ "$binary": {
30
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
31
+ "subType": "04"
32
+ }
33
+ },
34
+ "path": "encrypted",
35
+ "bsonType": "long",
36
+ "queries": {
37
+ "queryType": "rangePreview",
38
+ "contention": {
39
+ "$numberInt": "0"
40
+ },
41
+ "sparsity": {
42
+ "$numberInt": "1"
43
+ }
44
+ }
45
+ }
46
+ ]
47
+ }
48
+ }
49
+ }
50
+ },
51
+ "hasEncryptedPlaceholders": true
52
+ }
@@ -1,27 +1,27 @@
1
1
  // Defines the random data for IVs to obtain a deterministic
2
2
  // FLE2InsertUpdatePayload.
3
- #define RNG_DATA \
4
- "\x9d\xf2\x97\xd9\x64\xab\xde\x8f\x12\xdb\x36\x9a\x83\xc8\x0c\x22" \
5
- "\xd1\xb7\x83\xef\x0a\xf6\x7b\x37\xcb\x37\x5d\xa9\x2d\xd1\x2a\xca" \
6
- "\xf4\xc6\xf9\x10\x5b\x31\xc3\x68\xd7\x1c\x58\x38\xf1\x6a\x9a\x89" \
7
- "\xe0\xfa\x49\x8f\x54\x98\x93\xcb\x87\xc5\xbd\xad\x8f\x96\x39\xc1" \
8
- "\x87\xf8\x95\xa3\x6d\x4c\x0c\x5e\x9a\xe3\x76\x81\x50\xe7\x6f\xa1" \
9
- "\xc7\xde\x90\xac\xf7\xa9\x33\x20\x12\x47\x3d\x99\x65\xb3\xa1\x2b" \
10
- "\x7e\x4a\xe7\xbc\x28\xd6\xfe\x85\xdc\xf5\x4f\x76\xe9\x86\xe9\xc3" \
11
- "\xbf\x1f\x48\x33\xa6\x9c\xa8\x3f\x16\x61\x12\x48\x6c\xbf\x9b\xc2" \
12
- "\xea\xeb\x1a\xa7\xc7\xf8\x1b\xbc\xa5\x30\x83\xa2\xec\x64\x43\xda" \
13
- "\x86\xab\x0f\x27\x42\xa5\x21\x68\xfc\xda\xa5\xcd\xa3\x02\xe8\x4f" \
14
- "\x5c\x4c\x80\xa4\x82\x81\x6b\xb8\xbf\x8e\x2a\xb9\x21\x23\xb0\x01" \
15
- "\x66\x7c\x39\xfc\xa9\xb7\x61\x04\xb2\x61\x8f\x5f\xeb\x6f\xd2\xf2" \
16
- "\xcb\x05\x54\x02\x5b\xdb\x35\x8b\x7f\x3b\x65\x18\x00\x6a\x66\x2b" \
17
- "\xf8\x8c\x8c\x54\x41\x19\xf9\x33\xe3\x37\x68\x40\x7c\xcb\xc8\x12" \
18
- "\x63\xf8\x60\xc3\x62\xe7\x71\x3d\x20\x8a\x46\xfa\x5d\xd8\x90\xf8" \
19
- "\xe9\xa6\x14\x2a\xd2\xad\xc9\xe5\x50\xd0\x7d\xf3\x22\x01\xd0\x4c" \
20
- "\xda\x00\xf5\xd0\x97\x2a\xec\xb3\xf9\xac\x81\x73\xc2\x8d\x36\x1c" \
21
- "\x14\xb3\x2e\xa1\xea\xeb\x13\x85\x01\xb7\x3f\xde\xed\x30\x14\xa8" \
22
- "\x9c\x4c\x4d\xcd\xe5\x31\xb1\xf1\xb9\x0e\x45\x1f\xc8\x6b\x4c\xb8" \
23
- "\x79\x25\x44\x91\xf3\x5b\xdc\x63\xac\x91\x93\x2c\xbc\x74\xa7\x5d" \
24
- "\xcb\x46\x47\x79\xd5\x69\x1f\x66\x52\xf8\x39\x49\x33\xa7\xa6\x16" \
25
- "\xde\x19\x7b\x47\x52\x07\x18\xe7\xc3\xe2\x3d\x88\x4f\xcf\x77\x0d" \
26
- "\x56\xd5\x9e\x0a\x1f\xa1\xac\x7e\x83\x99\x65\xaf\x9b\x76\x31\xa4" \
27
- "\x19\xa3\xc0\x26\x2f\x98\x61\x5c\x8c\x83\x54\x2c\xbd\x47\x31\xa3"
3
+ #define RNG_DATA \
4
+ "\x9d\xf2\x97\xd9\x64\xab\xde\x8f\x12\xdb\x36\x9a\x83\xc8\x0c\x22" \
5
+ "\xd1\xb7\x83\xef\x0a\xf6\x7b\x37\xcb\x37\x5d\xa9\x2d\xd1\x2a\xca" \
6
+ "\xf4\xc6\xf9\x10\x5b\x31\xc3\x68\xd7\x1c\x58\x38\xf1\x6a\x9a\x89" \
7
+ "\xe0\xfa\x49\x8f\x54\x98\x93\xcb\x87\xc5\xbd\xad\x8f\x96\x39\xc1" \
8
+ "\x87\xf8\x95\xa3\x6d\x4c\x0c\x5e\x9a\xe3\x76\x81\x50\xe7\x6f\xa1" \
9
+ "\xc7\xde\x90\xac\xf7\xa9\x33\x20\x12\x47\x3d\x99\x65\xb3\xa1\x2b" \
10
+ "\x7e\x4a\xe7\xbc\x28\xd6\xfe\x85\xdc\xf5\x4f\x76\xe9\x86\xe9\xc3" \
11
+ "\xbf\x1f\x48\x33\xa6\x9c\xa8\x3f\x16\x61\x12\x48\x6c\xbf\x9b\xc2" \
12
+ "\xea\xeb\x1a\xa7\xc7\xf8\x1b\xbc\xa5\x30\x83\xa2\xec\x64\x43\xda" \
13
+ "\x86\xab\x0f\x27\x42\xa5\x21\x68\xfc\xda\xa5\xcd\xa3\x02\xe8\x4f" \
14
+ "\x5c\x4c\x80\xa4\x82\x81\x6b\xb8\xbf\x8e\x2a\xb9\x21\x23\xb0\x01" \
15
+ "\x66\x7c\x39\xfc\xa9\xb7\x61\x04\xb2\x61\x8f\x5f\xeb\x6f\xd2\xf2" \
16
+ "\xcb\x05\x54\x02\x5b\xdb\x35\x8b\x7f\x3b\x65\x18\x00\x6a\x66\x2b" \
17
+ "\xf8\x8c\x8c\x54\x41\x19\xf9\x33\xe3\x37\x68\x40\x7c\xcb\xc8\x12" \
18
+ "\x63\xf8\x60\xc3\x62\xe7\x71\x3d\x20\x8a\x46\xfa\x5d\xd8\x90\xf8" \
19
+ "\xe9\xa6\x14\x2a\xd2\xad\xc9\xe5\x50\xd0\x7d\xf3\x22\x01\xd0\x4c" \
20
+ "\xda\x00\xf5\xd0\x97\x2a\xec\xb3\xf9\xac\x81\x73\xc2\x8d\x36\x1c" \
21
+ "\x14\xb3\x2e\xa1\xea\xeb\x13\x85\x01\xb7\x3f\xde\xed\x30\x14\xa8" \
22
+ "\x9c\x4c\x4d\xcd\xe5\x31\xb1\xf1\xb9\x0e\x45\x1f\xc8\x6b\x4c\xb8" \
23
+ "\x79\x25\x44\x91\xf3\x5b\xdc\x63\xac\x91\x93\x2c\xbc\x74\xa7\x5d" \
24
+ "\xcb\x46\x47\x79\xd5\x69\x1f\x66\x52\xf8\x39\x49\x33\xa7\xa6\x16" \
25
+ "\xde\x19\x7b\x47\x52\x07\x18\xe7\xc3\xe2\x3d\x88\x4f\xcf\x77\x0d" \
26
+ "\x56\xd5\x9e\x0a\x1f\xa1\xac\x7e\x83\x99\x65\xaf\x9b\x76\x31\xa4" \
27
+ "\x19\xa3\xc0\x26\x2f\x98\x61\x5c\x8c\x83\x54\x2c\xbd\x47\x31\xa3"
@@ -0,0 +1,11 @@
1
+ {
2
+ "insert": "test",
3
+ "documents": [
4
+ {
5
+ "plainText": "sample",
6
+ "encrypted": {
7
+ "$numberInt": "123456"
8
+ }
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "db.test": {
3
+ "escCollection": "fle2.test.esc",
4
+ "ecocCollection": "fle2.test.ecoc",
5
+ "fields": [
6
+ {
7
+ "keyId": {
8
+ "$binary": {
9
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
10
+ "subType": "04"
11
+ }
12
+ },
13
+ "path": "encrypted",
14
+ "bsonType": "int",
15
+ "queries": {
16
+ "queryType": "rangePreview",
17
+ "contention": {
18
+ "$numberInt": "0"
19
+ },
20
+ "sparsity": {
21
+ "$numberInt": "1"
22
+ }
23
+ }
24
+ }
25
+ ]
26
+ }
27
+ }
@@ -0,0 +1,44 @@
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
+ "ecocCollection": "fle2.test.ecoc",
20
+ "fields": [
21
+ {
22
+ "keyId": {
23
+ "$binary": {
24
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
25
+ "subType": "04"
26
+ }
27
+ },
28
+ "path": "encrypted",
29
+ "bsonType": "int",
30
+ "queries": {
31
+ "queryType": "rangePreview",
32
+ "contention": {
33
+ "$numberInt": "0"
34
+ },
35
+ "sparsity": {
36
+ "$numberInt": "1"
37
+ }
38
+ }
39
+ }
40
+ ]
41
+ }
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "ok": {
3
+ "$numberInt": "1"
4
+ },
5
+ "result": {
6
+ "insert": "test",
7
+ "documents": [
8
+ {
9
+ "plainText": "sample",
10
+ "encrypted": {
11
+ "$binary": {
12
+ "base64": "A30AAAAQdAABAAAAEGEAAwAAAAVraQAQAAAABBI0VngSNJh2EjQSNFZ4kBIFa3UAEAAAAASrze+rEjSYdhI0EjRWeJASA3YAHgAAABB2AEDiAQAQbWluAAAAAAAQbWF4AIfWEgAAEmNtAAAAAAAAAAAAEnMAAQAAAAAAAAAA",
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
+ "ecocCollection": "fle2.test.ecoc",
26
+ "fields": [
27
+ {
28
+ "keyId": {
29
+ "$binary": {
30
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
31
+ "subType": "04"
32
+ }
33
+ },
34
+ "path": "encrypted",
35
+ "bsonType": "int",
36
+ "queries": {
37
+ "queryType": "rangePreview",
38
+ "contention": {
39
+ "$numberInt": "0"
40
+ },
41
+ "sparsity": {
42
+ "$numberInt": "1"
43
+ }
44
+ }
45
+ }
46
+ ]
47
+ }
48
+ }
49
+ }
50
+ },
51
+ "hasEncryptedPlaceholders": true
52
+ }
@@ -1,67 +1,67 @@
1
1
  // Defines the random data for IVs to obtain a deterministic
2
2
  // FLE2InsertUpdatePayload.
3
- #define RNG_DATA \
4
- "\x50\x4a\x70\x7c\xc2\x7e\xf1\xd8\x65\xd2\x5c\x3d\x08\x17\xc3\xcf" \
5
- "\x42\x49\x8b\x63\xde\x0f\xaf\x47\xd9\x43\x7c\xb3\xc2\x68\x14\xb8" \
6
- "\xd1\xf8\x67\xfa\xd8\xe2\x38\x3e\x74\x3a\x7a\xed\xbe\xea\x5a\x8a" \
7
- "\xc5\xb0\x91\x96\x35\xb5\xa0\x90\x31\x29\xae\x2f\xa0\x8e\x7c\x80" \
8
- "\x0d\xa7\x53\x7c\xbf\x46\x25\xdd\xc0\x42\x51\xc7\x07\xc5\xa0\x4d" \
9
- "\xc1\x7d\x5c\x03\x46\xc3\xb9\xa5\x03\x59\xa2\x1b\x8b\x0b\x46\x93" \
10
- "\x27\xf0\x5e\xf2\xf3\x3e\x89\xcf\x28\xb8\x25\x3a\xa5\x23\x8c\xa2" \
11
- "\x69\xd6\x6c\xb4\xaf\x50\x32\x6e\x82\x33\x47\xf7\x1f\xd5\x86\x13" \
12
- "\x48\x4f\xef\xb6\x76\x2a\x07\xa7\x9c\x82\x26\xf6\x1d\x29\x9d\xfe" \
13
- "\xde\x21\x88\x61\x2f\x0e\x42\x19\x69\x46\xe6\xbe\xef\x14\x1e\x05" \
14
- "\x0f\xb5\xfe\xe1\xab\x3f\x7f\x8d\x36\x38\x6e\xea\xb7\xed\x4c\x33" \
15
- "\x35\x81\x15\x77\x99\x97\xc7\x51\xf5\x34\xbb\x16\x0b\xa4\xba\x30" \
16
- "\xe9\x40\x71\xb2\x55\xad\xd6\xbb\x6d\x8a\x1f\x2c\x27\xa5\xbb\xb0" \
17
- "\xfb\x6a\x42\x97\xb5\x4b\x9a\x63\x1d\x84\xa8\x24\x15\x62\xf1\xb2" \
18
- "\x1c\x9f\x2b\xa6\x53\x04\x45\x5e\xd5\x9a\xc7\x0c\x28\x83\x17\x42" \
19
- "\x4a\x94\x82\xbc\x8c\x19\xe7\xf2\xa4\xba\xdf\xb6\xfb\x2a\x90\x97" \
20
- "\xb8\xba\xa4\x79\xa9\x48\x2b\x65\xcf\x4f\xa9\x14\xc0\x51\x66\x88" \
21
- "\x3c\x86\x08\xed\xf3\x8f\xfa\xbf\x60\x81\xf4\xde\x89\xc3\x39\xce" \
22
- "\xd8\x05\x8a\x18\x9f\x46\xe2\xa9\x5b\x6c\xac\x6f\x61\x5f\xf2\x28" \
23
- "\xde\xcc\xa7\x27\x4a\xea\x7f\xd4\xc4\x15\xa5\x33\x94\xe8\x08\x42" \
24
- "\x9b\x23\xa1\xf6\x9b\xd0\x14\x05\xe1\xf7\x63\x6a\x21\x76\xd4\x18" \
25
- "\x2b\xe3\xa1\xbe\x17\xd6\xb8\x26\x61\xf6\xec\xe1\x22\x6e\xdb\x94" \
26
- "\xfd\x5c\x68\x13\x17\x8a\xd1\x86\x68\x1c\x8e\xaf\xea\x1b\xc7\xf6" \
27
- "\x0a\xa2\x7d\x25\xf5\x4e\x50\xb3\x38\xe6\xb7\x20\xcc\xcc\x5f\x4b" \
28
- "\x37\xe6\x4e\x3b\x70\x75\x7f\xe7\x32\x27\xc3\x25\x09\xa2\x54\xb8" \
29
- "\x3b\x79\x7d\x93\xd2\x98\x6d\x03\xfb\x35\xe0\xed\xb1\x28\x75\x93" \
30
- "\x49\xa3\x69\x26\xb1\x06\xcc\xd9\x2b\x4a\xa8\x6a\x81\x3f\xae\xf0" \
31
- "\x89\x1a\x07\x74\x73\x28\x00\x79\x82\xa4\x13\x55\xcc\x3d\xab\x28" \
32
- "\xc5\xb6\xdc\xf8\xa2\xf9\x59\x66\xd6\x95\xe0\xc5\x45\x25\x60\x9d" \
33
- "\xd0\x73\xb2\xc0\x41\x2d\xd8\xc9\xbb\xdb\xd0\xf3\x78\x9a\x8a\xf5" \
34
- "\x20\x7b\x91\x4f\xc8\x60\x61\x5e\x5d\x1b\xaa\x16\x6f\xa1\x42\x82" \
35
- "\x5c\x3f\xd0\x1b\x41\xf7\xdd\x8e\xac\xcf\xd0\x27\x50\xce\xbc\x6e" \
36
- "\xcd\x2b\x9f\xed\x82\xc7\xfc\xfa\xaa\x37\x06\xaa\x8d\x19\xdc\x20" \
37
- "\x71\xf4\x75\x64\x3d\x28\xfc\x7e\xa9\x89\xe9\x41\x01\x94\x17\xf1" \
38
- "\x60\x5d\x40\x5e\x2e\x95\x9c\x13\x85\x86\x78\x73\x57\x9b\xfa\xad" \
39
- "\xd8\xd4\x48\x03\x63\xa0\xc3\x27\xa7\x1d\x22\x46\x3c\xed\xbb\xa7" \
40
- "\x45\x2c\x17\xdd\xbe\x19\xb7\xf1\xdb\x5c\x46\xad\x37\x1c\xbb\xff" \
41
- "\x00\xb0\x47\xef\x06\xc9\x17\x05\x88\xb4\x64\x83\x33\x0b\x8d\xdc" \
42
- "\x53\xa8\xfe\x09\x9f\x04\x11\x75\x46\x62\xe5\xe1\xbb\x1f\xb9\xa2" \
43
- "\xf4\x1f\x07\x2b\xd4\xdf\x1f\xe6\x95\x0c\x34\x71\x46\x8c\xf5\xf1" \
44
- "\x95\xc8\x73\x04\x78\xb7\x80\x04\xf2\x50\xcb\xb5\xdf\xf0\x64\x4e" \
45
- "\x44\x84\xcc\x38\x39\x12\x71\xcb\x87\x1d\xfc\x59\x6c\x47\x1c\xed" \
46
- "\xf6\x29\xcf\x31\xa5\x4d\x04\x8d\xac\xb5\xcf\xdf\x00\x89\x7c\x38" \
47
- "\x3b\xe3\x5d\xba\xf3\x32\x3d\x64\xac\xf6\x16\x7d\xbe\xaf\x09\x27" \
48
- "\x10\x01\x23\x54\x48\x46\x55\xd7\xac\x40\xca\x0b\x3e\x6c\x99\x59" \
49
- "\xa3\xda\x79\x1d\x0c\x84\x39\x56\x83\x88\xa7\xe5\x35\x12\x53\xb2" \
50
- "\x1b\x1c\x3a\xed\xac\xb2\xf4\xce\xf8\xea\xca\x5a\x77\x2d\x7a\x90" \
51
- "\xf1\xe5\x68\xb2\xea\xb9\x0c\xf1\xbf\x40\x8f\xdc\xb2\xc9\x27\xf0" \
52
- "\xb0\xcd\x67\xab\x60\x0c\x7c\x1b\xc2\x7d\x3a\x96\x67\x17\xb2\x06" \
53
- "\x6f\x04\xd1\x88\xda\xdd\xab\xcc\xc8\x66\xdd\x60\x88\x00\x4b\x10" \
54
- "\x66\x9b\x67\x47\xc9\x87\x47\x1b\x04\x57\x62\x7f\xdb\x0e\x41\x8e" \
55
- "\xf2\xfa\xe1\x22\xe3\x29\x05\x6d\x16\xc6\x42\xac\xe3\x0f\xac\xb6" \
56
- "\x00\xc9\xcb\x35\xd5\xe8\x5a\x6f\xe6\x0b\x11\xba\x6a\x34\xb4\xd3" \
57
- "\x1f\xf2\x38\x3f\xa4\x4f\xa9\x24\xc6\xf2\x6c\x86\xb3\xa4\x33\xbc" \
58
- "\x5a\x61\x99\xf6\x51\x89\xc5\x68\x18\x87\xa2\xc6\xb6\x7f\xd2\xb7" \
59
- "\x6d\x20\x93\xa9\x2a\xa1\x24\x56\x68\xa8\x96\xf1\xcf\x60\x38\xc1" \
60
- "\xd5\xb7\x32\x41\x5e\xae\x6d\xc9\xbb\x4d\x4f\xcc\xa2\xe4\xaa\x94" \
61
- "\x04\x2c\x76\xe3\x1f\x0a\x0f\x3b\x2f\x0c\xa8\x47\x0f\xf1\x70\x2b" \
62
- "\x94\xca\xf5\xcb\x42\x0a\xf6\x94\xb6\xb2\x74\xeb\x1e\xeb\xc8\xdc" \
63
- "\xe4\x0e\xf4\x25\x32\xa8\x44\xea\xe0\x2d\xa5\x4b\x1b\xbc\xa0\x7f" \
64
- "\x23\x7d\x77\xc9\xc3\xd3\x3c\x91\x41\x82\x6e\x18\xc2\xd8\xaf\x10" \
65
- "\x79\x94\xe3\x1d\x95\x06\x71\x5d\x89\x91\x2f\xe2\x5a\xb9\x69\x5a" \
66
- "\xed\xf6\x40\x6b\xf4\xd2\xe8\xf5\x86\x78\xf5\x28\xfc\x74\x3e\x1e" \
67
- "\x31\xf0\xfe\xf5\x07\x37\x99\xfa\x60\x92\x94\x24\xf0\xfd\x86\xe5"
3
+ #define RNG_DATA \
4
+ "\x50\x4a\x70\x7c\xc2\x7e\xf1\xd8\x65\xd2\x5c\x3d\x08\x17\xc3\xcf" \
5
+ "\x42\x49\x8b\x63\xde\x0f\xaf\x47\xd9\x43\x7c\xb3\xc2\x68\x14\xb8" \
6
+ "\xd1\xf8\x67\xfa\xd8\xe2\x38\x3e\x74\x3a\x7a\xed\xbe\xea\x5a\x8a" \
7
+ "\xc5\xb0\x91\x96\x35\xb5\xa0\x90\x31\x29\xae\x2f\xa0\x8e\x7c\x80" \
8
+ "\x0d\xa7\x53\x7c\xbf\x46\x25\xdd\xc0\x42\x51\xc7\x07\xc5\xa0\x4d" \
9
+ "\xc1\x7d\x5c\x03\x46\xc3\xb9\xa5\x03\x59\xa2\x1b\x8b\x0b\x46\x93" \
10
+ "\x27\xf0\x5e\xf2\xf3\x3e\x89\xcf\x28\xb8\x25\x3a\xa5\x23\x8c\xa2" \
11
+ "\x69\xd6\x6c\xb4\xaf\x50\x32\x6e\x82\x33\x47\xf7\x1f\xd5\x86\x13" \
12
+ "\x48\x4f\xef\xb6\x76\x2a\x07\xa7\x9c\x82\x26\xf6\x1d\x29\x9d\xfe" \
13
+ "\xde\x21\x88\x61\x2f\x0e\x42\x19\x69\x46\xe6\xbe\xef\x14\x1e\x05" \
14
+ "\x0f\xb5\xfe\xe1\xab\x3f\x7f\x8d\x36\x38\x6e\xea\xb7\xed\x4c\x33" \
15
+ "\x35\x81\x15\x77\x99\x97\xc7\x51\xf5\x34\xbb\x16\x0b\xa4\xba\x30" \
16
+ "\xe9\x40\x71\xb2\x55\xad\xd6\xbb\x6d\x8a\x1f\x2c\x27\xa5\xbb\xb0" \
17
+ "\xfb\x6a\x42\x97\xb5\x4b\x9a\x63\x1d\x84\xa8\x24\x15\x62\xf1\xb2" \
18
+ "\x1c\x9f\x2b\xa6\x53\x04\x45\x5e\xd5\x9a\xc7\x0c\x28\x83\x17\x42" \
19
+ "\x4a\x94\x82\xbc\x8c\x19\xe7\xf2\xa4\xba\xdf\xb6\xfb\x2a\x90\x97" \
20
+ "\xb8\xba\xa4\x79\xa9\x48\x2b\x65\xcf\x4f\xa9\x14\xc0\x51\x66\x88" \
21
+ "\x3c\x86\x08\xed\xf3\x8f\xfa\xbf\x60\x81\xf4\xde\x89\xc3\x39\xce" \
22
+ "\xd8\x05\x8a\x18\x9f\x46\xe2\xa9\x5b\x6c\xac\x6f\x61\x5f\xf2\x28" \
23
+ "\xde\xcc\xa7\x27\x4a\xea\x7f\xd4\xc4\x15\xa5\x33\x94\xe8\x08\x42" \
24
+ "\x9b\x23\xa1\xf6\x9b\xd0\x14\x05\xe1\xf7\x63\x6a\x21\x76\xd4\x18" \
25
+ "\x2b\xe3\xa1\xbe\x17\xd6\xb8\x26\x61\xf6\xec\xe1\x22\x6e\xdb\x94" \
26
+ "\xfd\x5c\x68\x13\x17\x8a\xd1\x86\x68\x1c\x8e\xaf\xea\x1b\xc7\xf6" \
27
+ "\x0a\xa2\x7d\x25\xf5\x4e\x50\xb3\x38\xe6\xb7\x20\xcc\xcc\x5f\x4b" \
28
+ "\x37\xe6\x4e\x3b\x70\x75\x7f\xe7\x32\x27\xc3\x25\x09\xa2\x54\xb8" \
29
+ "\x3b\x79\x7d\x93\xd2\x98\x6d\x03\xfb\x35\xe0\xed\xb1\x28\x75\x93" \
30
+ "\x49\xa3\x69\x26\xb1\x06\xcc\xd9\x2b\x4a\xa8\x6a\x81\x3f\xae\xf0" \
31
+ "\x89\x1a\x07\x74\x73\x28\x00\x79\x82\xa4\x13\x55\xcc\x3d\xab\x28" \
32
+ "\xc5\xb6\xdc\xf8\xa2\xf9\x59\x66\xd6\x95\xe0\xc5\x45\x25\x60\x9d" \
33
+ "\xd0\x73\xb2\xc0\x41\x2d\xd8\xc9\xbb\xdb\xd0\xf3\x78\x9a\x8a\xf5" \
34
+ "\x20\x7b\x91\x4f\xc8\x60\x61\x5e\x5d\x1b\xaa\x16\x6f\xa1\x42\x82" \
35
+ "\x5c\x3f\xd0\x1b\x41\xf7\xdd\x8e\xac\xcf\xd0\x27\x50\xce\xbc\x6e" \
36
+ "\xcd\x2b\x9f\xed\x82\xc7\xfc\xfa\xaa\x37\x06\xaa\x8d\x19\xdc\x20" \
37
+ "\x71\xf4\x75\x64\x3d\x28\xfc\x7e\xa9\x89\xe9\x41\x01\x94\x17\xf1" \
38
+ "\x60\x5d\x40\x5e\x2e\x95\x9c\x13\x85\x86\x78\x73\x57\x9b\xfa\xad" \
39
+ "\xd8\xd4\x48\x03\x63\xa0\xc3\x27\xa7\x1d\x22\x46\x3c\xed\xbb\xa7" \
40
+ "\x45\x2c\x17\xdd\xbe\x19\xb7\xf1\xdb\x5c\x46\xad\x37\x1c\xbb\xff" \
41
+ "\x00\xb0\x47\xef\x06\xc9\x17\x05\x88\xb4\x64\x83\x33\x0b\x8d\xdc" \
42
+ "\x53\xa8\xfe\x09\x9f\x04\x11\x75\x46\x62\xe5\xe1\xbb\x1f\xb9\xa2" \
43
+ "\xf4\x1f\x07\x2b\xd4\xdf\x1f\xe6\x95\x0c\x34\x71\x46\x8c\xf5\xf1" \
44
+ "\x95\xc8\x73\x04\x78\xb7\x80\x04\xf2\x50\xcb\xb5\xdf\xf0\x64\x4e" \
45
+ "\x44\x84\xcc\x38\x39\x12\x71\xcb\x87\x1d\xfc\x59\x6c\x47\x1c\xed" \
46
+ "\xf6\x29\xcf\x31\xa5\x4d\x04\x8d\xac\xb5\xcf\xdf\x00\x89\x7c\x38" \
47
+ "\x3b\xe3\x5d\xba\xf3\x32\x3d\x64\xac\xf6\x16\x7d\xbe\xaf\x09\x27" \
48
+ "\x10\x01\x23\x54\x48\x46\x55\xd7\xac\x40\xca\x0b\x3e\x6c\x99\x59" \
49
+ "\xa3\xda\x79\x1d\x0c\x84\x39\x56\x83\x88\xa7\xe5\x35\x12\x53\xb2" \
50
+ "\x1b\x1c\x3a\xed\xac\xb2\xf4\xce\xf8\xea\xca\x5a\x77\x2d\x7a\x90" \
51
+ "\xf1\xe5\x68\xb2\xea\xb9\x0c\xf1\xbf\x40\x8f\xdc\xb2\xc9\x27\xf0" \
52
+ "\xb0\xcd\x67\xab\x60\x0c\x7c\x1b\xc2\x7d\x3a\x96\x67\x17\xb2\x06" \
53
+ "\x6f\x04\xd1\x88\xda\xdd\xab\xcc\xc8\x66\xdd\x60\x88\x00\x4b\x10" \
54
+ "\x66\x9b\x67\x47\xc9\x87\x47\x1b\x04\x57\x62\x7f\xdb\x0e\x41\x8e" \
55
+ "\xf2\xfa\xe1\x22\xe3\x29\x05\x6d\x16\xc6\x42\xac\xe3\x0f\xac\xb6" \
56
+ "\x00\xc9\xcb\x35\xd5\xe8\x5a\x6f\xe6\x0b\x11\xba\x6a\x34\xb4\xd3" \
57
+ "\x1f\xf2\x38\x3f\xa4\x4f\xa9\x24\xc6\xf2\x6c\x86\xb3\xa4\x33\xbc" \
58
+ "\x5a\x61\x99\xf6\x51\x89\xc5\x68\x18\x87\xa2\xc6\xb6\x7f\xd2\xb7" \
59
+ "\x6d\x20\x93\xa9\x2a\xa1\x24\x56\x68\xa8\x96\xf1\xcf\x60\x38\xc1" \
60
+ "\xd5\xb7\x32\x41\x5e\xae\x6d\xc9\xbb\x4d\x4f\xcc\xa2\xe4\xaa\x94" \
61
+ "\x04\x2c\x76\xe3\x1f\x0a\x0f\x3b\x2f\x0c\xa8\x47\x0f\xf1\x70\x2b" \
62
+ "\x94\xca\xf5\xcb\x42\x0a\xf6\x94\xb6\xb2\x74\xeb\x1e\xeb\xc8\xdc" \
63
+ "\xe4\x0e\xf4\x25\x32\xa8\x44\xea\xe0\x2d\xa5\x4b\x1b\xbc\xa0\x7f" \
64
+ "\x23\x7d\x77\xc9\xc3\xd3\x3c\x91\x41\x82\x6e\x18\xc2\xd8\xaf\x10" \
65
+ "\x79\x94\xe3\x1d\x95\x06\x71\x5d\x89\x91\x2f\xe2\x5a\xb9\x69\x5a" \
66
+ "\xed\xf6\x40\x6b\xf4\xd2\xe8\xf5\x86\x78\xf5\x28\xfc\x74\x3e\x1e" \
67
+ "\x31\xf0\xfe\xf5\x07\x37\x99\xfa\x60\x92\x94\x24\xf0\xfd\x86\xe5"
@@ -0,0 +1,11 @@
1
+ {
2
+ "insert": "test",
3
+ "documents": [
4
+ {
5
+ "plainText": "sample",
6
+ "encrypted": {
7
+ "$numberLong": "12345678901234567"
8
+ }
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "db.test": {
3
+ "escCollection": "fle2.test.esc",
4
+ "ecocCollection": "fle2.test.ecoc",
5
+ "fields": [
6
+ {
7
+ "keyId": {
8
+ "$binary": {
9
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
10
+ "subType": "04"
11
+ }
12
+ },
13
+ "path": "encrypted",
14
+ "bsonType": "long",
15
+ "queries": {
16
+ "queryType": "rangePreview",
17
+ "contention": {
18
+ "$numberInt": "0"
19
+ },
20
+ "sparsity": {
21
+ "$numberInt": "1"
22
+ }
23
+ }
24
+ }
25
+ ]
26
+ }
27
+ }