libmongocrypt-helper 1.13.2.0.1001 → 1.14.0.0.1001

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. checksums.yaml +4 -4
  2. data/ext/libmongocrypt/libmongocrypt/CHANGELOG.md +8 -0
  3. data/ext/libmongocrypt/libmongocrypt/CMakeLists.txt +5 -1
  4. data/ext/libmongocrypt/libmongocrypt/CODEOWNERS +4 -1
  5. data/ext/libmongocrypt/libmongocrypt/Earthfile +18 -17
  6. data/ext/libmongocrypt/libmongocrypt/README.md +8 -8
  7. data/ext/libmongocrypt/libmongocrypt/bindings/python/CHANGELOG.rst +7 -0
  8. data/ext/libmongocrypt/libmongocrypt/bindings/python/CONTRIBUTING.md +34 -0
  9. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/asynchronous/state_machine.py +6 -2
  10. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/binding.py +18 -2
  11. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/mongocrypt.py +9 -1
  12. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/options.py +14 -0
  13. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/synchronous/state_machine.py +6 -2
  14. data/ext/libmongocrypt/libmongocrypt/bindings/python/pymongocrypt/version.py +1 -1
  15. data/ext/libmongocrypt/libmongocrypt/bindings/python/sbom.json +8 -8
  16. data/ext/libmongocrypt/libmongocrypt/bindings/python/scripts/libmongocrypt-version.txt +1 -0
  17. data/ext/libmongocrypt/libmongocrypt/bindings/python/{release.sh → scripts/release.sh} +9 -3
  18. data/ext/libmongocrypt/libmongocrypt/bindings/python/{synchro.py → scripts/synchro.py} +16 -9
  19. data/ext/libmongocrypt/libmongocrypt/bindings/python/scripts/synchro.sh +8 -0
  20. data/ext/libmongocrypt/libmongocrypt/bindings/python/scripts/update-version.sh +27 -0
  21. data/ext/libmongocrypt/libmongocrypt/bindings/python/scripts/update_binding.py +78 -0
  22. data/ext/libmongocrypt/libmongocrypt/bindings/python/test/test_mongocrypt.py +15 -0
  23. data/ext/libmongocrypt/libmongocrypt/doc/releasing.md +25 -18
  24. data/ext/libmongocrypt/libmongocrypt/etc/calc_release_version.py +39 -13
  25. data/ext/libmongocrypt/libmongocrypt/etc/calc_release_version_selftest.sh +1 -1
  26. data/ext/libmongocrypt/libmongocrypt/etc/cyclonedx.sbom.json +2 -2
  27. data/ext/libmongocrypt/libmongocrypt/kms-message/CMakeLists.txt +1 -1
  28. data/ext/libmongocrypt/libmongocrypt/kms-message/src/hexlify.c +5 -0
  29. data/ext/libmongocrypt/libmongocrypt/kms-message/src/hexlify.h +1 -1
  30. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_azure_request.c +1 -1
  31. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_gcp_request.c +1 -1
  32. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_reader_writer.c +4 -2
  33. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_kmip_request.c +1 -2
  34. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_message_private.h +5 -1
  35. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request.c +1 -1
  36. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request_opt.c +1 -1
  37. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request_str.c +2 -8
  38. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_request_str.h +9 -0
  39. data/ext/libmongocrypt/libmongocrypt/kms-message/src/kms_response_parser.c +0 -1
  40. data/ext/libmongocrypt/libmongocrypt/kms-message/src/sort.c +7 -3
  41. data/ext/libmongocrypt/libmongocrypt/kms-message/src/sort.h +2 -0
  42. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kmip_reader_writer.c +8 -1
  43. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_assert.h +5 -4
  44. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_azure_online.c +1 -1
  45. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_gcp_online.c +1 -1
  46. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_kmip_request.c +4 -0
  47. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_kmip_response.c +3 -0
  48. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_kmip_response_parser.c +4 -0
  49. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_online_util.c +1 -1
  50. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_online_util.h +1 -1
  51. data/ext/libmongocrypt/libmongocrypt/kms-message/test/test_kms_request.c +39 -39
  52. data/ext/libmongocrypt/libmongocrypt/src/crypto/libcrypto.c +235 -65
  53. data/ext/libmongocrypt/libmongocrypt/src/crypto/none.c +1 -1
  54. data/ext/libmongocrypt/libmongocrypt/src/csfle-markup.cpp +4 -2
  55. data/ext/libmongocrypt/libmongocrypt/src/mc-dec128.h +2 -2
  56. data/ext/libmongocrypt/libmongocrypt/src/mc-dec128.test.cpp +2 -2
  57. data/ext/libmongocrypt/libmongocrypt/src/mc-efc-private.h +1 -4
  58. data/ext/libmongocrypt/libmongocrypt/src/mc-efc.c +9 -11
  59. data/ext/libmongocrypt/libmongocrypt/src/mc-fle-blob-subtype-private.h +1 -0
  60. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder-private.h +10 -8
  61. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-encryption-placeholder.c +167 -176
  62. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload-v2.c +6 -17
  63. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-equality-payload.c +6 -17
  64. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-private-v2.h +1 -1
  65. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload-v2.c +25 -26
  66. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-range-payload.c +2 -1
  67. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-text-payload-private.h +122 -0
  68. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-find-text-payload.c +477 -0
  69. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-private-v2.h +1 -3
  70. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload-v2.c +28 -43
  71. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-insert-update-payload.c +6 -17
  72. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev-v2.c +6 -5
  73. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-iev.c +13 -10
  74. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-payload-uev-common.c +3 -2
  75. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-rfds.c +7 -6
  76. data/ext/libmongocrypt/libmongocrypt/src/mc-fle2-tag-and-encrypted-metadata-block.c +4 -3
  77. data/ext/libmongocrypt/libmongocrypt/src/mc-optional-private.h +1 -1
  78. data/ext/libmongocrypt/libmongocrypt/src/mc-parse-utils-private.h +27 -0
  79. data/ext/libmongocrypt/libmongocrypt/src/mc-parse-utils.c +48 -0
  80. data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation-private.h +5 -5
  81. data/ext/libmongocrypt/libmongocrypt/src/mc-range-edge-generation.c +15 -20
  82. data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding-private.h +4 -6
  83. data/ext/libmongocrypt/libmongocrypt/src/mc-range-encoding.c +9 -18
  84. data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-generator.template.h +4 -5
  85. data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover-private.h +5 -9
  86. data/ext/libmongocrypt/libmongocrypt/src/mc-range-mincover.c +14 -19
  87. data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts-private.h +2 -4
  88. data/ext/libmongocrypt/libmongocrypt/src/mc-rangeopts.c +109 -119
  89. data/ext/libmongocrypt/libmongocrypt/src/mc-reader-private.h +2 -2
  90. data/ext/libmongocrypt/libmongocrypt/src/mc-reader.c +4 -2
  91. data/ext/libmongocrypt/libmongocrypt/src/mc-schema-broker-private.h +0 -3
  92. data/ext/libmongocrypt/libmongocrypt/src/mc-schema-broker.c +4 -14
  93. data/ext/libmongocrypt/libmongocrypt/src/mc-str-encode-string-sets-private.h +1 -1
  94. data/ext/libmongocrypt/libmongocrypt/src/mc-str-encode-string-sets.c +3 -3
  95. data/ext/libmongocrypt/libmongocrypt/src/mc-text-search-str-encode-private.h +8 -1
  96. data/ext/libmongocrypt/libmongocrypt/src/mc-text-search-str-encode.c +78 -2
  97. data/ext/libmongocrypt/libmongocrypt/src/mc-tokens-private.h +34 -16
  98. data/ext/libmongocrypt/libmongocrypt/src/mc-tokens.c +66 -74
  99. data/ext/libmongocrypt/libmongocrypt/src/mc-writer-private.h +1 -1
  100. data/ext/libmongocrypt/libmongocrypt/src/mc-writer.c +4 -2
  101. data/ext/libmongocrypt/libmongocrypt/src/mlib/error.h +1 -1
  102. data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.h +12 -1
  103. data/ext/libmongocrypt/libmongocrypt/src/mlib/int128.test.cpp +5 -0
  104. data/ext/libmongocrypt/libmongocrypt/src/mlib/path.h +5 -5
  105. data/ext/libmongocrypt/libmongocrypt/src/mlib/path.test.c +2 -5
  106. data/ext/libmongocrypt/libmongocrypt/src/mlib/str.h +65 -58
  107. data/ext/libmongocrypt/libmongocrypt/src/mlib/str.test.c +3 -3
  108. data/ext/libmongocrypt/libmongocrypt/src/mlib/thread.h +1 -1
  109. data/ext/libmongocrypt/libmongocrypt/src/mlib/user-check.h +1 -1
  110. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-collinfo-private.h +1 -1
  111. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-cache-collinfo.c +4 -0
  112. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ciphertext-private.h +1 -1
  113. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-crypto-private.h +4 -4
  114. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-crypto.c +29 -25
  115. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-datakey.c +3 -2
  116. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-decrypt.c +6 -3
  117. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-encrypt.c +48 -58
  118. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx-rewrap-many-datakey.c +12 -0
  119. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-ctx.c +5 -13
  120. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-dll-private.h +19 -2
  121. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-key-broker.c +9 -9
  122. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking-private.h +3 -4
  123. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-marking.c +285 -89
  124. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts-private.h +0 -2
  125. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-opts.c +0 -1
  126. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-private.h +1 -1
  127. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt-util.c +4 -1
  128. data/ext/libmongocrypt/libmongocrypt/src/mongocrypt.c +47 -31
  129. data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_dll.c +2 -0
  130. data/ext/libmongocrypt/libmongocrypt/src/os_posix/os_mutex.c +1 -1
  131. data/ext/libmongocrypt/libmongocrypt/src/os_win/os_dll.c +3 -1
  132. data/ext/libmongocrypt/libmongocrypt/src/os_win/os_mutex.c +1 -1
  133. data/ext/libmongocrypt/libmongocrypt/src/unicode/case-fold-map.c +1 -1
  134. data/ext/libmongocrypt/libmongocrypt/src/unicode/diacritic-fold-map.c +1 -1
  135. data/ext/libmongocrypt/libmongocrypt/src/unicode/fold.c +1 -1
  136. data/ext/libmongocrypt/libmongocrypt/test/crypt_shared-stub.cpp +0 -14
  137. data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/encrypted-field-config-map.json +6 -1
  138. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2InsertUpdatePayloadV2-RangeV2.json +8 -0
  139. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/encrypted-field-map.json +1 -1
  140. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/encrypted-payload.json +6 -4
  141. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/date-v2/mongocryptd-reply.json +1 -1
  142. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/encrypted-field-map.json +1 -1
  143. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/encrypted-payload.json +6 -4
  144. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-precision-v2/mongocryptd-reply.json +2 -2
  145. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/encrypted-field-map.json +1 -1
  146. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/encrypted-payload.json +6 -4
  147. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/decimal128-v2/mongocryptd-reply.json +1 -1
  148. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-precision-v2/encrypted-payload.json +14 -6
  149. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/encrypted-field-map.json +1 -1
  150. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/encrypted-payload.json +6 -4
  151. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/double-v2/mongocryptd-reply.json +1 -1
  152. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/encrypted-field-map.json +1 -1
  153. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/encrypted-payload.json +6 -4
  154. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int32-v2/mongocryptd-reply.json +1 -1
  155. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/encrypted-field-map.json +1 -1
  156. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/encrypted-payload.json +6 -4
  157. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range/int64-v2/mongocryptd-reply.json +1 -1
  158. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double/encrypted-payload-v2.json +1 -1
  159. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/double-precision/encrypted-payload-v2.json +1 -1
  160. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32/encrypted-payload-v2.json +1 -1
  161. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-find-range-explicit/int32-openinterval/encrypted-payload-v2.json +1 -1
  162. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/encrypted-field-map.json +1 -1
  163. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/encrypted-payload.json +6 -4
  164. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/date-v2/mongocryptd-reply.json +1 -1
  165. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/encrypted-field-map.json +1 -1
  166. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/encrypted-payload.json +6 -4
  167. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-precision-v2/mongocryptd-reply.json +1 -1
  168. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/encrypted-field-map.json +1 -1
  169. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/encrypted-payload.json +6 -4
  170. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/decimal128-v2/mongocryptd-reply.json +1 -1
  171. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-precision-v2/encrypted-payload.json +14 -6
  172. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/encrypted-field-map.json +1 -1
  173. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/encrypted-payload.json +6 -4
  174. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/double-v2/mongocryptd-reply.json +1 -1
  175. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/encrypted-field-map.json +1 -1
  176. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/encrypted-payload.json +3 -3
  177. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int32-v2/mongocryptd-reply.json +1 -1
  178. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/encrypted-field-map.json +1 -1
  179. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/encrypted-payload.json +6 -4
  180. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range/int64-v2/mongocryptd-reply.json +1 -1
  181. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double/encrypted-payload-v2.json +1 -1
  182. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/double-precision/encrypted-payload-v2.json +1 -1
  183. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/int32/encrypted-payload-v2.json +1 -1
  184. data/ext/libmongocrypt/libmongocrypt/test/data/fle2-insert-range-explicit/sparsity-2/encrypted-payload-v2.json +1 -1
  185. data/ext/libmongocrypt/libmongocrypt/test/data/tokens/mc.json +8 -0
  186. data/ext/libmongocrypt/libmongocrypt/test/data/tokens/server.json +8 -0
  187. data/ext/libmongocrypt/libmongocrypt/test/example-state-machine.c +5 -5
  188. data/ext/libmongocrypt/libmongocrypt/test/test-dll.cpp +11 -5
  189. data/ext/libmongocrypt/libmongocrypt/test/test-gcp-auth.c +2 -2
  190. data/ext/libmongocrypt/libmongocrypt/test/test-mc-efc.c +9 -11
  191. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-encryption-placeholder.c +18 -29
  192. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-equality-payload-v2.c +1 -1
  193. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-range-payload-v2.c +2 -18
  194. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-find-text-payload.c +320 -0
  195. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup-v2.c +2 -17
  196. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-payload-iup.c +1 -1
  197. data/ext/libmongocrypt/libmongocrypt/test/test-mc-fle2-rfds.c +8 -5
  198. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-edge-generation.c +6 -10
  199. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-encoding.c +29 -33
  200. data/ext/libmongocrypt/libmongocrypt/test/test-mc-range-mincover.c +12 -20
  201. data/ext/libmongocrypt/libmongocrypt/test/test-mc-rangeopts.c +5 -20
  202. data/ext/libmongocrypt/libmongocrypt/test/test-mc-reader.c +5 -5
  203. data/ext/libmongocrypt/libmongocrypt/test/test-mc-text-search-str-encode.c +147 -18
  204. data/ext/libmongocrypt/libmongocrypt/test/test-mc-tokens.c +35 -14
  205. data/ext/libmongocrypt/libmongocrypt/test/test-mc-writer.c +10 -10
  206. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert-match-bson.c +3 -7
  207. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-assert.h +36 -24
  208. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-buffer.c +4 -4
  209. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cache.c +2 -2
  210. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ciphertext.c +13 -13
  211. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-cleanup.c +49 -55
  212. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-compact.c +64 -67
  213. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-hooks.c +18 -18
  214. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto-std-hooks.c +4 -0
  215. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-crypto.c +4 -3
  216. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-csfle-lib.c +13 -3
  217. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-decrypt.c +31 -13
  218. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-encrypt.c +35 -52
  219. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-rewrap-many-datakey.c +28 -1
  220. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-ctx-setopt.c +50 -91
  221. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-datakey.c +1 -1
  222. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-dll.c +7 -4
  223. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-endpoint.c +1 -1
  224. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kek.c +1 -1
  225. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-key-cache.c +3 -5
  226. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-kms-ctx.c +2 -2
  227. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-local-kms.c +1 -1
  228. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-log.c +2 -2
  229. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-marking.c +527 -225
  230. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt-status.c +1 -1
  231. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.c +45 -56
  232. data/ext/libmongocrypt/libmongocrypt/test/test-mongocrypt.h +12 -3
  233. data/ext/libmongocrypt/libmongocrypt/test/test-named-kms-providers.c +11 -11
  234. data/ext/libmongocrypt/libmongocrypt/test/test-unicode-fold.c +6 -2
  235. data/ext/libmongocrypt/libmongocrypt/test/util/HELP.autogen +1 -1
  236. data/ext/libmongocrypt/libmongocrypt/test/util/csfle.c +1 -1
  237. data/ext/libmongocrypt/libmongocrypt/test/util/util.c +5 -5
  238. data/ext/libmongocrypt/libmongocrypt/test/util/util.h +7 -6
  239. data/lib/libmongocrypt_helper/version.rb +2 -2
  240. metadata +17 -13
  241. data/ext/libmongocrypt/libmongocrypt/bindings/python/libmongocrypt-version.txt +0 -1
  242. data/ext/libmongocrypt/libmongocrypt/bindings/python/strip_header.py +0 -50
  243. data/ext/libmongocrypt/libmongocrypt/bindings/python/update-sbom.sh +0 -14
  244. data/ext/libmongocrypt/libmongocrypt/test/data/cleanup/success/encrypted-payload.json +0 -29
  245. data/ext/libmongocrypt/libmongocrypt/test/data/compact/success/encrypted-payload.json +0 -29
  246. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2EqualityIndexedValueV2.json +0 -8
  247. data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/FLE2RangeIndexedValueV2.json +0 -8
  248. /data/ext/libmongocrypt/libmongocrypt/bindings/python/{build-manylinux-wheel.sh → scripts/build-manylinux-wheel.sh} +0 -0
  249. /data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/{FLE2InsertUpdatePayload-with-edges.json → FLE2InsertUpdatePayload-RangeV1.json} +0 -0
  250. /data/ext/libmongocrypt/libmongocrypt/test/data/explicit-decrypt/{FLE2InsertUpdatePayload-with-edges-V2.json → FLE2InsertUpdatePayloadV2-RangeV1.json} +0 -0
@@ -5,14 +5,16 @@
5
5
  "plainText": "sample",
6
6
  "encrypted": {
7
7
  "$binary": {
8
- "base64": "CysuAAAFZAAgAAAAADPNHyGdziCQ9zaQaZjZ+ZoP1K+fjxZLiXuA9j54KiiZBXMAIAAAAAChNxQ2a6y9FVSqz5Y15owrjv4dN4Jzleg6WSnFKQq3GgVwADAAAAAAUEpwfMJ+8dhl0lw9CBfDz/jgGL0SCmaYUQV9l3+fNR7ua/Pt1yVSqPR6M0+T5sq2BXUAEAAAAAQSNFZ4EjSYdhI0EjRWeJASEHQAEgAAAAV2AFAAAAAAq83vqxI0mHYSNBI0VniQEkJJi2PeD69H2UN8s8JoFLiHxN9yFLofSmIANmoNyGgFB+abkQQEsXkSuDfGf7S4e3Dj/S539njeEVVs1AAMd2sFZQAgAAAAAOuac/eRLYakKX6B0vZ1r3QodOQFfjqJD+xlGiPu4/PsBWwAIAAAAAB8N0gQuWEB0fOMJagoBkhEjcD11muE7VVuff4i6GgINRJrAAAAAAAAAAAABGcAySwAAAMwALUAAAAFZAAgAAAAAEXyPll8pDgONFsvw5VnzyCe0TNwEePYnQZeRFNW0fTqBXMAIAAAAADNAYCK38aHlQp6Vb784Eip1hnuvLCHL+EKg/cqOkSFfQVsACAAAAAA6QK+s92A82PEceXdQwfnu4Ru+VN+cHdIixK/EuNIQDcFcAAwAAAAANH4Z/rY4jg+dDp67b7qWooFsafIp2scssNxNQ8f2whS7wGs7980AltMyaCYK+dltQADMQC1AAAABWQAIAAAAAD3SaL8hpF71u2BBV5LWGtNK2vzL9R5fHsvCZvwkQ64QQVzACAAAAAAIfOOmtLQW/1bhcN7t3wcGsU8XDNU+Ij7cR5sc2oCj8wFbAAgAAAAANAduMH6J3Aw0lQgoXgF38oxbSe57qHNLvt0h2bPY+/TBXAAMAAAAADFsJGWNbWgkDEpri+gjnyA7PdRdEl/cC97Ja+J4J6RYyhyyeMUfxLXeQoTOqjmmssAAzIAtQAAAAVkACAAAAAAgKjFyf0to2WQz0CThhMOSD3GZxb1zVbqwqK4zD9dvzkFcwAgAAAAABvLBwRuj7zQwVQ0aB3sEJ6ddgm8X7DBedKPxp1WrhSNBWwAIAAAAADXLtOFHx7zuX+RYrMYlOG0itP6L7gjr3SD28l56+GTdwVwADAAAAAADadTfL9GJd3AQlHHB8WgTRTc08jj5NIrUkIHwrIjbDdoITmKuUeo1go3YOtCkT5iAAMzALUAAAAFZAAgAAAAABa91Qu2KZFQjidDvZdxtbiJgcgk5T81y3pdlHtXY0xcBXMAIAAAAAB+3EKOsVfcR0d87sZwagcu2biF+eZ6Fb7+fhIR2BSaCwVsACAAAAAARwealJh30VkdUvqpNoPSBdU6HuZqhWfrsGKkxSrZYX0FcAAwAAAAAMF9XANGw7mlA1miG4sLRpNmYVB5KKuYdkfx/hFGSnKfGSRJTzfyNELtvM2BAJK0aAADNAC1AAAABWQAIAAAAABS+Gh2HP/JqcLgHAcXD3EoZy6le+JhXsej9M79huqmTQVzACAAAAAAC7ZbXoh9DvoT/wkFefSgsjxOABZW23Vwq0GJMlLtW6MFbAAgAAAAAP41Kdnpj6XQ3/D6IO7/EpHRStFFeMXKm9ABRnMeW8xxBXAAMAAAAAAn8F7y8z6Jzyi4JTqlI4yiSWDaWejzjNNw9AuiKsTEF0RaBqMsDu0Jsa55EncIPA4AAzUAtQAAAAVkACAAAAAAHaJxlVl/PbBGutD/bEBlT59WT//18IMxCXRS+rBe4xIFcwAgAAAAALwzXOpJWE+paqUfhOVy2fvLO/rjW+w2jF5fgEi2cps3BWwAIAAAAAAdWR7td8s9KkhnyXNcgSIaygRclVLxCBAw9QADJqiFSgVwADAAAAAAadZstK9QMm6CM0f3H9WGE6QnGEKAx+lls6+UXtej4AIa/02RsuG7SR7PIj9G4oBwAAM2ALUAAAAFZAAgAAAAAFsaSmU5mrGDyWAPo7b2fozb13980Af9ZeJ6cGlJA8zfBXMAIAAAAABsMc8hj4mZ0q2H4SN88xYGojLg5FIsCeEq7R1JGKidNgVsACAAAAAAgA4L88coTMltXSafyholegtvrE/J5j3HUgGjLgSEPBoFcAAwAAAAAEhP77Z2KgennIIm9h0pnf4T1mJprnJs8bhwOQsF6YBcjDIgxpk87hXCNEPPhkCubAADNwC1AAAABWQAIAAAAAAZFMw5U1Be/9By71obQ37rR6t7kk/B5PDvzH2/C4BXzQVzACAAAAAA9dbcH27aTlhVKkBV0uj+02l6GwIbuOkk2mmFnj2DiRgFbAAgAAAAAGLaTnfAXe5P29Mx/H7MZX5gf0sGNJnDqmLJ+CSCLg0MBXAAMAAAAADeIYhhLw5CGWlG5r7vFB4FJZV+BcjhoWirrNZRkTPCR/9fZ9huGcGXjyN84iU8dfAAAzgAtQAAAAVkACAAAAAAbfXWI0mudr9ZVWBKFn22/utVf5u6g726PURHBbaJQGQFcwAgAAAAAIlshJPXAu11tfCNCUi/LUbvrpx3juQCTxU0UPa7Y5raBWwAIAAAAAC2y2AT3AUAIH+THXhbHeSIOiHwC3SYGtcfu/+AR+Pw9AVwADAAAAAAD7X+4as/f402OG7qt+1MM0Sj+5rsSk37sQ+kIS45t5mkQV7ggduqFaWbjzrSpJ+lAAM5ALUAAAAFZAAgAAAAAEFbfifWfoQQJPbj3FY0j5Pwc8C8GKCcgbV38eQoC0ZOBXMAIAAAAACEd/cIK165wcGRLu4jGgOiSpQE25tBGEgTQyIk0RnPRQVsACAAAAAA+MFEd8XfZSpbXKqqPC2L3TEFswkaG5Ff6aSgf8p+XVIFcAAwAAAAADWBFXeZl8dR9TS7FgukujC6MwOjZW554XghEczgT0jFC/bLhhgf351+7RLdRbgGMQADMTAAtQAAAAVkACAAAAAAP9hKeKgDdZKYZyXprsEWSXKFrJ0rfyAl47uveh7NTxEFcwAgAAAAAIAekFeJHIu84m4qytNGNoVOP/X8KwjZSvO0XH4CPpBCBWwAIAAAAACPr5mHzz3nGbaKC8UMW+3VdsP/L1NiYWJepUbrs6TTmwVwADAAAAAA6UBxslWt1rttih8sJ6W7sL9PffWxdebNTmJlnjyKPyk9rP9EvLVoY6sMCkQQtI+gAAMxMQC1AAAABWQAIAAAAADnTpBUFRxgc3xHLb0Sf9UcqUOEkmsoRdR0aemJVqb1XwVzACAAAAAAmmOW5yKapWhgy0qVRUuwVRN8f8oNf3+54BYXXMiP5OUFbAAgAAAAAPZTIOzh0qBfd9XlT+AV7Gh5Zp0MfQo0oRHH1uQ16X60BXAAMAAAAAD7akKXtUuaYx2EqCQVYvGyjiL0ZvqKtIWGjE5+Cy2xcIgKHTfac7tvDziNfym77XAAAzEyALUAAAAFZAAgAAAAADgg5b2y484HVyuVrl1fnGWK2qb+270E8ydZv0VR3eVbBXMAIAAAAADVMb1i1CtHOA4V+4MMCvI2Uy4D/OrQfXsogD3zgMILmQVsACAAAAAALrwRIyhNh9GhaIYbOkzDbMykDl1WkBXGmHyDIM1GK/0FcAAwAAAAAByfK6ZTBEVe1ZrHDCiDF0LTm+ftLMybx2D3YLWuikj5JrbzK5+HD8FnYt6NfDEUegADMTMAtQAAAAVkACAAAAAAXSu1liGMYPOC03VPGy0XfDOADlbMLf2L4EfadcqC4UcFcwAgAAAAAP/RBu4lJ9IrB1R4doznnA01dHQFCmw8CqO/P32ysnDuBWwAIAAAAAAX8rO3IOy2IfWCM/uAAm+JQTYSC4ew2qSl0MDSNqgaswVwADAAAAAASpSCvIwZ5/Kkut+2+yqQl7zixGMcc3WpR9HEHnWAs5zZfvEuTAb+eCN/v5CI0fyCAAMxNAC1AAAABWQAIAAAAABzpYpvMh4jJjlVheZc0JMDaZOswv37LjN0dMix5xuYdQVzACAAAAAAzNEJkWKhp5g4uDSQA9l+7C1D7JGBGVpkvYjfFDdfwhwFbAAgAAAAAMII47e1INbMs7Q1LPjwVCqbJMHq/u1W5noiabzLz/kGBXAAMAAAAAC4uqR5qUgrZc9PqRTAUWaIc+zzb7nSFUgBDT0GCgJzIcxB/eTgtJ5SSBBmnI/YZWgAAzE1ALUAAAAFZAAgAAAAAFE9mRD+m/BTUpBJPZarP6/8Zb3uoCnfe+cy4LfmOozdBXMAIAAAAACRD+DfM3lKT/XG9hw5qdmzeSr+lYfylkmXo6sAbVS5kQVsACAAAAAAXzLrlvbbSQIsWBCh8/CnrhknzkJvpuWoxORpNRxCpHgFcAAwAAAAADyGCO3zj/q/YIH03onDOc5f4aXW81oI6xZ8dMx3/wZJe99t3Fax+BBxFJ5Ek6ntgAADMTYAtQAAAAVkACAAAAAA0vywd2PeEs9e1Nq/2O6PzS3V7OtM8sNp7kqzfTV/wDwFcwAgAAAAAHDXJR9M+eB4895iSZCSoPbCYVSBdnB1zKMYjtyrOXZdBWwAIAAAAAAhr0/Mi1O6oo/GM1KN1Kr3o977j/vRbA6DACqJR16IrQVwADAAAAAA2AWKGJ9G4qlbbKxvYV/yKPbs6VqKqZ0ksKyErVGyHUa/RO8Azxxn/b2zgaLnk7naAAMxNwC1AAAABWQAIAAAAAD3dSWQjVy34qeVTH+slXDTwAox//PFObUTNSiyNTgRawVzACAAAAAAe67010kUkq7T3n2N3mWHVb7wPffyOVxVxysdArsC9VQFbAAgAAAAABSZBPKfkADVhDbjUksAdp3BhzjvEQZyueaOlpFrVI7rBXAAMAAAAADezKcnSup/1MQVpTOU6AhCSVXa8KAwWQGWpTY2OEEDMZGvt0fI6qwe0io07pSlapgAAzE4ALUAAAAFZAAgAAAAAL8Ng42Fi9FTE/bru7joZQcCw4uSjR/CYXH+13wd6RRHBXMAIAAAAABQAcR95QQ9ZU2vHyNzUvwi91m8dTAdKDiH9l1Zk2am7gVsACAAAAAAi4NI1v/Fghxezak/wf8bTx5jsbcbiUIIGrA3MiJI/AUFcAAwAAAAAJsjofab0BQF4fdjaiF21BiIeZ0Dya8IXUK7EYLk51ip7/3191YiHsdSowMCrxb8sAADMTkAtQAAAAVkACAAAAAAxd7DA3Veme7xR5WXmYIAPU8SdcXbB7YVD5J3Ix5xxK0FcwAgAAAAAPLXccfLkR1MAoIsK+7HTYXbdMHP44XxazxHuk55dR1kBWwAIAAAAADXy/6UBzuZzlSPrJd9kVuy+Eh13FkYmxGW/cAgBzCFMgVwADAAAAAAK+OhvhfWuCZh9uzhIm7blAsjHRIUFQf1gaRE9mNcBgIQH6k2pKU5JW8cM4dKYFnMAAMyMAC1AAAABWQAIAAAAABF17l5IecJ0a0n9JO2XhgT6JxoFEfXS7pDjCoUjwSjkQVzACAAAAAA+sNP7DT02ySfQoaz8EHj34QBSzJ4owMS0dBxz3MOhZ4FbAAgAAAAAFs9fFjwBxeUtGyRbVz2n08HXD0jdYpJ5gPf9IR6A+ptBXAAMAAAAAD9XGgTF4rRhmgcjq/qG8f2mfdofPQ/CseT6LmJCGjmWPric+CkRFSIzIxacJKgfaYAAzIxALUAAAAFZAAgAAAAAB4KmGboziFnDaex6djVkYEh4cj1DHYC5tcfk199NqCLBXMAIAAAAABwgcgP7ReeJ3YE34w+IMOVt1z+tnVaHXgr1BX7EqxfdwVsACAAAAAAIyJvOwlbS9u4LsCklXbej3AZztlE/7EldgoMletCZAsFcAAwAAAAAAqifSX1TlCzOOa3IMzMX0s3B3eCx/Wnw9llnytWxFkvJY8HYPHKZ+Px6I0n8SdLegADMjIAtQAAAAVkACAAAAAAFSFPRLxXEku5RVTi5UwSJxIWeM9NH7sffEO2MgT7PxMFcwAgAAAAAJKe2DvqNRrg4RnJyFgyu5pKJBYsqWev7ECH3ObZdUqTBWwAIAAAAACLPXAiSDMNMs5dt5jxkussAw7Aau+jzHTyKVGpm9feRAVwADAAAAAAN+ZOO3B1f+cyJ8MlCaJUuOGRL3fNK1YKFzlY5SDmuZCcEvLX+y9EEr9jhtfybhRGAAMyMwC1AAAABWQAIAAAAACupeGRsOanm1acLuQH/TibsFWgqWMyi5my5WZ+9KhcbQVzACAAAAAAxpJ2gKBhU9riDiDM2yPJXJ5uVgCGWHd6nbx5tHBBgz0FbAAgAAAAABnyStURfEyF8ANA0pzXLOSaG/33b0aBeQztbKkgDdFgBXAAMAAAAAA7eX2T0phtA/s14O2xKHWT1yTIlhGMDClun+FCX/sM+W3KZgdXfddataPiD9b85IcAAzI0ALUAAAAFZAAgAAAAACcyl8Ljubh6E55NLx/cZfSoRBjucdEuKuPTHbk2opzbBXMAIAAAAABJBo2O/6s1or4O3M86grzxqit/+RUG21xzpMM2vgn1ogVsACAAAAAA2RTrSU7NvaDOUx+2V9KanUfIXReVSCWN7uzhEJHbdmsFcAAwAAAAAEmjaSaxBszZK0qoaoE/rvAInKQhP4Z+EbB3xoG1lxzfqNLlVWuVB4VyliMm/WwdIAADMjUAtQAAAAVkACAAAAAAb8QjojJd0Bki3kM3cQ7cBBAnav08tPrIZmJlNGwpl54FcwAgAAAAAIU24IxYzq8Q32jd/xqjA0/aNBdlPzbBo1BTl4zDFGAdBWwAIAAAAACImgopELKXLfWmkA7U0DpLQ5nRz4KhCjO57b48GoVrIAVwADAAAAAAiRoHdHMoAHmCpBNVzD2rKFwG9TzqnGAQlyl4BmCz1kdQU31/X5DcdmbgP93fokbaAAMyNgC1AAAABWQAIAAAAADB2o5lOduZmXGIU9NnSxv8kZmYOoWiLiK5AOmG6Vli/QVzACAAAAAAC5sLdsnTrPTiZWsuZhoftAySyNP84o3BJtm2WHNEdZgFbAAgAAAAAOQMfes0yxBuO2U6xjpWkF3bMJkgVijJ5zXS6F2ZPzlRBXAAMAAAAADFttz4ovlZZtaV4MVFJWCdfc2g9ScGoMKLwH6P3XK0LcfrSJQtRd5Ud/Z8eeX7E3wAAzI3ALUAAAAFZAAgAAAAAAYzatjEEIt6OhKqS3C78KwmCcwCPq85FOMCrp2YeycABXMAIAAAAABmWgMeVWQOb3HxR1VfcrJWyjSHfAYoJ96/uYt11z551AVsACAAAAAAitVkS3Kfx6YZBE/WzAX1uziiTDnQaV/qpadzTumPs8oFcAAwAAAAANBzssBBLdjJu9vQ83iaivU4sOwKm6qkADntcFcGKbL4iV64iriVjkd4UBqpea/PmgADMjgAtQAAAAVkACAAAAAArGFgoB5qNhgkBVLkLp8NjA06KncXjQc/KW/BvNiAlr8FcwAgAAAAAKTpVSutA656wEyzp/bvfmmK8DicN1pcyZM6geLTDdMvBWwAIAAAAABgg1jKpuk8oSBlBUwmGZSHRGeSo2XUEGO/5J57urupSQVwADAAAAAAIHuRT8hgYV5dG6oWb6FCgp57HkHO3E9W7dcAkxV9KTOCS0u3ER5OcRWrZ8XpHuAFAAMyOQC1AAAABWQAIAAAAAD+a4LqFa4Wra2bPcJpvQNkmLoBnO68jOpzX4eQ0nNLQAVzACAAAAAAX55A6dL7t14uF0adzXTCCL1cmMUe9lhzTVROqH2wDj8FbAAgAAAAAMaSbDsyJeoGYyd3gX/GIM1kN4Dm69TBRGRGGLnlgkjbBXAAMAAAAABcP9AbQffdjqzP0CdQzrxusdmyEjWqLblwWrrmDI7LWnHKi8ZcX4ERD9N8j6IJ4d0AAzMwALUAAAAFZAAgAAAAAN1MCDM8F014VKsW2s90Qk9Jg5A2xmony68LjzXqFu3lBXMAIAAAAACIL+0Og7qxe9ZCvnxIvOBbY7AhfIkyVcEgsHuTzA/huAVsACAAAAAAOMI0BIOVZhfiSh9428ux8t4mITMyoDiPj0RVfwVSLo4FcAAwAAAAAM0rn+2Cx/z6qjcGqo0Z3CAO4RAe7LZU8oMkaMbc1iNvQskppNKPvZxJK498wSU+TgADMzEAtQAAAAVkACAAAAAAj7Gz28oBekVHrXhODW+dPTnOV6pWgX7Vy0OiFwksBn0FcwAgAAAAAIAVQolaam940UUYFWid7fSPy159uo5/F51qFsL3tY5+BWwAIAAAAACFp/RNR9Hv8o0+4Xq/F4Zl8/6HqYN83J6pcqCSNHSSCgVwADAAAAAAcfR1ZD0o/H6pielBAZQX8UU0XMamppCLrgVp89ZJu4WCQHx5+pLcXl/vphhSuks3AAMzMgC1AAAABWQAIAAAAAC2BJxbZ1v/LblA/FAuE2i+ZMu3UVhUioqQdio++WbOJgVzACAAAAAArPaDrVhymBE2FfdE5bsn2dfRT1puK3+sLPR5xBmBMQoFbAAgAAAAANponm33ulKpfHQZcauGQmLZ4NMM00rQO6pmEQGs8VcDBXAAMAAAAABgXUBeLpWcE4WGeHNXm/qtGM9YEfCirKCKyPzyF1hab7vVX5QVvJwaei+jbZQFcIcAAzMzALUAAAAFZAAgAAAAAEf9Hud/YkhORg59o3z1CkBo2RakU0BvFEwB2yfeO7h1BXMAIAAAAABm9PevtotOhU/eBoX0EcSa26JISmB7o2L5MY0ChQvSmQVsACAAAAAAeGlFLP8wAkfNIY4PgL8JcihyCGsFbTto+YuqEsaP68EFcAAwAAAAANjUSANjoMMnpx0iRjztu6e+xx6uTcnAYhemoMjs3ODRlr3FO/m1hhMA4VoCjILAnQADMzQAtQAAAAVkACAAAAAAnY27AgDtPdMVgv8qCnYKJ32SRMYBXgbkuhUIBlm8sSsFcwAgAAAAACwk9NPLdrceIZzt/qkCCylCmB+bRzVEnYPLXH/bHWaoBWwAIAAAAABPwCGW6QruLiDaCfaunFVZHv3m77FnCmyRNaqqexSZPAVwADAAAAAARSwX3b4Zt/HbXEatNxy7/1P6pU5guh22m3V8hgehZu1CHh4gr/8LVw7TMHE2RZJnAAMzNQC1AAAABWQAIAAAAAAtI9u0v7PBNqfR4dRQ1HQbYFk364n55Dc/un2sYO/Q8AVzACAAAAAA+C5AskYppHFVdv4oQZP4OsXKpPacs0xsH2zi/vaB6RoFbAAgAAAAAM0GJ99jViZ1hvuPzB44OC7muCOvQ6m2I+Jn8+6gz8ryBXAAMAAAAAAAsEfvBskXBYi0ZIMzC43caIiZLarE85Fnjrz2z/I9nYHp8n9BFvqTaawrufzRSngAAzM2ALUAAAAFZAAgAAAAAMsmBJmzXH0OasnJY4GNjZnZe+4+LDhWpkOQYK991wkKBXMAIAAAAAC/xS3JA30DJNSoGN160vekdGMB1yLo8sf73SGI7IrhBAVsACAAAAAAaVAv+liHcKc7vGWoDXOGDc3xwjaZ8PHg0t/Ve6x0c2QFcAAwAAAAAFOo/gmfBBF1RmLl4bsfuaJ0IRecjoCE+VF8zSrWJYyMMnRrKbiUZ4TFjnuqOISa0gADMzcAtQAAAAVkACAAAAAAJS86Kef/SNZTX6X9+Ybcw/A2I8B5vN4cG00wPTT9BfYFcwAgAAAAAPRMFN0Biy+c17uVzLCvaW6KIbVouujN6Ty0pdODLbmEBWwAIAAAAAAyENzMjXsssTC8J2mCK5EtIZSmwP4QFNCRQzKWwYum4gVwADAAAAAA9B8HK9TfH+aVDDRxRoz18RnaA4SdFYqaeAAGNGI9Yn7IP0O6xZf/Rsze/S2GXqlcAAMzOAC1AAAABWQAIAAAAACajPvYYpm19yN9tE3q4kLBTKefBRHpjko2KKJGXC+v+AVzACAAAAAAMfDoh9hQb4aZOnepQkGqQeB7CGrt2Tt9KX2PyadY7lcFbAAgAAAAAE1vL87RbrRANLCW7fNrKQYUwVQ9kQYlUwf7LjsZpSxcBXAAMAAAAACVyHMEeLeABPJQy7Xf8GROPB50wnjGgVKD7XW/tSt44y0rCMxY88XmAGNShaUbPNgAAzM5ALUAAAAFZAAgAAAAAJGkm6HcmfCWPLuK3eyNm/KgyC2rX5OQfQB6HxZs+J6IBXMAIAAAAABeWAZm/l+kzurtbmCou/83ZrwLHkg63KgtUcCj7CUcFAVsACAAAAAAfvU34aF1W7CId3ufOrzm9xBd5tLXITop/DfNQSF3nNcFcAAwAAAAAESEzDg5EnHLhx38WWxHHO1j20IK3ntxN+iHO6RIY/IJpM4pUeNJaiTrAVzM9t37pwADNDAAtQAAAAVkACAAAAAAswPqBD/NbjD185wN3O6lfKQgOfJQ0dDU/4hKslXys8wFcwAgAAAAAEMy5v7Y28qDx/uv4Y8MfE3eL+tLR1kKFjsW9KJCT2b4BWwAIAAAAABarpSGQVChA5I5WDyHYwLsQNj/+D+RrJMK8HA1OWPidgVwADAAAAAA9inPMaVNBI2stc/fAIl8OPLkMxHsQwuGt5prJcmzWMWGtmuLA/HScK3QXw5bGcj0AAM0MQC1AAAABWQAIAAAAACV4RD4O6SwNow2/kuPKHUcPfkrTMHHwdb5ykZy7mJS1QVzACAAAAAAmm5VzzTNscO9wo2t/i5aC1WqGPpHni+PAbcYSy2aDAEFbAAgAAAAADb7zFcql5cNOBjOKNBvweGAzKx4P19i2wexGXLCXh93BXAAMAAAAAA741268zI9ZKz2Fn2+rwknMCrXy1/kshqxoopSLIwuhH7TzS677QBg1pPFECeNXr8AAzQyALUAAAAFZAAgAAAAAMy211ko2hnDz+fD05cziMhJV0DaTMJoFTL+y5ScPWLCBXMAIAAAAAB8sRQxRmMKukLHdcDWrWcPTa6aZXxqMgsy7B9Nn7MvIAVsACAAAAAAxjBVo1dBS66qB2pMZpAetCfGK37J66TEJMfjy9hMsJAFcAAwAAAAABABI1RIRlXXrEDKCz5smVlVraVRlo7bqAWPGhrtPsJE/CQoLqqTxh5OaDLUyN3k6gADNDMAtQAAAAVkACAAAAAAzZMoxADA/B9zDysGxio/x7dOD6MvuL1317vokL0A0ToFcwAgAAAAAISTTtsdCrjnf49uk6re1Z6OGMKHbdrw4im9oNKKtwJJBWwAIAAAAAAUdzJSeq4L9GX3Noo0m4xowz8C/43/BNwyM97ZNXIbLwVwADAAAAAAo9p5HQyEOVaDiKflNRJTslFwM4UdCQGvhwVdZjUtUsR8NIKM64TTjOYbkesxUuWLAAM0NAC1AAAABWQAIAAAAAD0P5YrYfTGO93Gx7KBthTBF80W6JgWl8qqji8y81J/3wVzACAAAAAAn3ZjoE1gg56PxBTSrn253VFbcA4Ji1cJ/Gga9OouHLQFbAAgAAAAAAJ2ajVGqAIjMgGrQqAhNqvS4JV9PlYTGwQITdPl/Ku8BXAAMAAAAAAbHDrtrLL0zvjqylp3LXqQLhhZs1B79NL0b6sWaKdHn0aSlMd6rAkGI4wqfe6pwVoAAzQ1ALUAAAAFZAAgAAAAAI4AsugAAmblmYkZOY1mzjhuQFunm054/BbwsVBnWaoqBXMAIAAAAACy7dUUBUkeyDIBKu+GlAv47zdsQxyw1ppOCsTTjiBTewVsACAAAAAA+PreY3+RamB/QOsBQlI2mNnyl+ZT5qMRcKrtHZ6X+OkFcAAwAAAAAPHlaLLquQzxv0CP3LLJJ/CYQynra3ljNoqZFzxM3o6SOLf7VLquybbsgOGglJlYEwADNDYAtQAAAAVkACAAAAAAskverSAw98QA2UN5XW5QH+DqRbfuGDwuq+Lzg9xTv1YFcwAgAAAAAKBFKJS119LSS7KzMmGOKw53LzXEff0B8JStda2RIODsBWwAIAAAAACksxvKCATNQV3pzuMO8zcQ8k3G0oxUPkL3ImvJaMHXvAVwADAAAAAAsM1nq2AMfBvCfTqWZxeyBvSsZ5uITPtrHv8Nbq0DNktJCMfjnlvDOUVkPClRlhKPAAM0NwC1AAAABWQAIAAAAAAVi20GzI/brbE1bgiynbh1rQsleEeZEILkhSHCOjymMQVzACAAAAAArYmIGgfXl32cNKbht69CRKcnzODwImnQfePOgGp2QLsFbAAgAAAAADRf3eUUW9ViXkf/pVInJ198Umc8kwYLQL4FwKlBwkDHBXAAMAAAAABvBNGI2t2rzMhm3WCIAEsQFFLs0jw6qh4MqlWjmbD5jgAD7drGs4u5f8NtYPZxS+wAAzQ4ALUAAAAFZAAgAAAAAHIivoGIPeT0lisW4MGZ7K2qgxPO2IVx0I3JGardTqyxBXMAIAAAAAClPUzleEh1ZXUQT8A0RQtVTzu9BzySfXSXQgaCi62xDwVsACAAAAAAkwc0sMpaw4Sz/PeqVO2RZNcpCLIo+X569R7NNK09lsAFcAAwAAAAAGabZ0fJh0cbBFdif9sOQY4iysdhXuqOIOrzDNGvVMiRsxFT4wUJRG5vs0YfqNoUnwADNDkAtQAAAAVkACAAAAAAxFu8/4Q60xGXKwPP+CiLZTTUY8Zo4OWvgtB4d8mhdlYFcwAgAAAAABj162GrKiX1thO8rfB3nFv4Nr9ypNQBZd0pMWsAJzWYBWwAIAAAAABeJYAG0BCxT7XBMuqQ2nOreUn/WwrnVrREx3+Ax0E/sAVwADAAAAAA8vrhIuMpBW0WxkKs4w+stkAOj0Uj9o8gObTROA1aVQD4PxkmNKlujtrVuG9Uc9FkAAM1MAC1AAAABWQAIAAAAAB1UsLJPSe71Y6FnDh90JOJUyTBF1PDxfLKyG23Ri6/RwVzACAAAAAASTqVFk3Y6IqgrRGn1g8TqFhX/BgN+1DkzMGO+aoRHCMFbAAgAAAAAIxOdL5/7+YaOHqbp7GFiOBeUgDYLdnA5TsE0FfTail4BXAAMAAAAAAAycs11ehab+YLEbpqNLTTVoMsifk0jOLmpdSbNmXBqioUvw5H+JJiwY9T6RQpv24AAzUxALUAAAAFZAAgAAAAAI9xJetLNnxLcKqJEjsm5QfS49aI89Jl6I5B5MDZMUmIBXMAIAAAAABw5wRM7Guqy/TQ4yXam9MIOu1dPJRPXxRDFzfCHWYAYgVsACAAAAAAEC76Am5d6fh/XtwXMQtNTWQ4ivPlozM57WtcM+nltEkFcAAwAAAAAB/yOD+kT6kkxvJshrOkM7zHyZYWs14k4XYkrnPpQv3jnK0W6PaPcGD3083DJ7MoSgADNTIAtQAAAAVkACAAAAAAtU7vrNXbibaR4G+3+R0MlemNgGl1z+Qwc9z553QAspUFcwAgAAAAAEwg+BN4u9Uru7okD9lMxnO1ldGTymMb5QvfA/7vE8QDBWwAIAAAAACeSTsRz1TshWXWfELZIsbD7t5/stCYzOjY6QVu5VXYrQVwADAAAAAAWmGZ9lGJxWgYh6LGtn/St2GsTUjtD9IDu1V5RCC+tfVoLjbBzIBUU6IvA1gDFpeJAAM1MwC1AAAABWQAIAAAAABk/oAKerGN3euVTRweKtixhxNxjtqVYnaNPXTMA/zBUgVzACAAAAAAbKpxACdR6i9VMVy2HUkRUfFUFltJcHB8hlpyxU6l8xwFbAAgAAAAAAQHSf3WP5kdrz9vI3WKLooFLLYrXEhXulRXqM/pAkK2BXAAMAAAAABtIJOpKqEkVmiolvHPYDjBzm72CE/WLwL3wIZUSH3OL83U8s9CdNDl2CHT9Gh5b2sAAzU0ALUAAAAFZAAgAAAAAPj67d8z/dq3u0GnJihTib554lrrNj9jm1uOboHO6p6XBXMAIAAAAABguquqhQs2T28CRWREIvVzNZqR/p1Ho2s2AWF+RRLWPQVsACAAAAAARPSLj53Dn2m0LLxQuqBkq1DFjI+VAE29C//KkQe9YRYFcAAwAAAAANW3MkFerm3Ju01PzKLkqpTynapCJM2gqgyZOf6G1tNraLHV1z7Lkfv8a9KZiycd0gADNTUAtQAAAAVkACAAAAAAbE2frryTLOMyoiTUhpdw78I4mzQMHnsAt7T9EgucMMkFcwAgAAAAAG4Xcq5OsVFDA9TlGlimDznblLqQg9mV21ZfqC8me1UtBWwAIAAAAAAkorTJz+A3zBIlbBzw491wHumwxfNxXZnw6xkIoDHcfgVwADAAAAAABCx24x8KDzsvDKhHD/FwK+/zkxV6o47vqkTFEhGqnXHR+9j1M570VflEeiHViI6LAAM1NgC1AAAABWQAIAAAAACjTueWwH/ET9RamAgbmwRKT2hiN7IKSMugpbXENZ62yAVzACAAAAAAMppd7TAqyAdm+Yna1T/9vRQWHJXpy9Vua6ejl2wC2XcFbAAgAAAAAGtC9edagBA7/ryn5K3zXNk2N9yN+2k1ZW7TYkfcugzMBXAAMAAAAACUyvXLQgr2lLaydOse68jc8h4khQPWdTvO4TInPBmT0VICTIeTVXt4d5W5AEHb6/gAAzU3ALUAAAAFZAAgAAAAAKn2zX7RQALcIyqO84mddwz2qbcmBbE+8tHrmDytXV+bBXMAIAAAAAA3SHNLo/Yia5gmyj53R9rf4OFo8Tgs7lbfvs/IJ1be+wVsACAAAAAA89y/cQOVK0QR8rYtJpwBwQOFwppacoHCEQZ/Wtk2cqMFcAAwAAAAAOQO9CUyqETq4C2lSxu8oH8dk1iO41Wm2h7pInkNErpcvkNM3PnqGyWM28yHNpEZ8wADNTgAtQAAAAVkACAAAAAAukNUztf7hI/JpPwhlyCxCi0Zgqhx9+gQfZ9ruy8bfb0FcwAgAAAAACc1kQPYQtWykZX7s9OdzbkpJmezwu1P/uV2PfDWX7UHBWwAIAAAAADRpWDCGIPT6gEGUEp4Ah79ubWww6gelb2GJSsPLrhvhQVwADAAAAAAI313ycPTPJFBgm4YwtivEAcK/blnbS8UjmQeY8/DGNpTR35q4h9joSnRRMFXBcIXAAM1OQC1AAAABWQAIAAAAADes0j8DL5m0zkzp2Ue3rABY6B0Rkr7HkrcfLV1wYkszgVzACAAAAAAhyiI8pZzN3dqiN1eJIm0CVSjVwTYL32cstDYPI7jNxsFbAAgAAAAAA8zMrJjY0lxhCfclQm01WM9CaQRXPZ+A4nU0tTY/ehABXAAMAAAAAB5lOMdlQZxXYmRL+JauWla5C8yE7kT7vrqZNrAj5qWtpfLdjhbNpG4D4fh1/YIM0MAAzYwALUAAAAFZAAgAAAAAFWDzl1u0FM3v30NdMDG8PS6LrMrymIBCUqKb+bQBJ2fBXMAIAAAAABPLcIqxxef0KRTGJZ2UJlfvJg0ohFUaMA4vChV3LEtTQVsACAAAAAAe+JRhMdyLLw19p98AALOAZyl0Y2Z3x8/kF5OWYSIjKsFcAAwAAAAAO32QGv00uj1hnj1KPx0Ph6hzCP4/lwBy5DAUSSiAiNhqWAZbSQc7rvEg7X1FbNmIgADNjEAtQAAAAVkACAAAAAAGuskt9Gd7WLElPk1Fs4J5CWaDtJrliUUsZWRY3zDxM0FcwAgAAAAAGSvUtH+wAwCjBQ3+5WyyT4213kfDjzxqb+BI7a1gxbkBWwAIAAAAAAJmsTgFOMrwWIQjWHA2L1/pIaDsPkUlAmmINVo/HIgewVwADAAAAAAMfD+9Qc3mfpgkpQk8P2G5cjmMvIyr9PFdUbkQqQiqy0Vp1sNwWPewXgsRqvCvXMeAAAA",
9
- "subType": "6"
8
+ "base64": "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",
9
+ "subType": "06"
10
10
  }
11
11
  }
12
12
  }
13
13
  ],
14
14
  "encryptionInformation": {
15
- "type": 1,
15
+ "type": {
16
+ "$numberInt": "1"
17
+ },
16
18
  "schema": {
17
19
  "db.test": {
18
20
  "escCollection": "fle2.test.esc",
@@ -28,7 +30,7 @@
28
30
  "path": "encrypted",
29
31
  "bsonType": "long",
30
32
  "queries": {
31
- "queryType": "rangePreview",
33
+ "queryType": "range",
32
34
  "contention": {
33
35
  "$numberInt": "0"
34
36
  },
@@ -34,7 +34,7 @@
34
34
  "path": "encrypted",
35
35
  "bsonType": "long",
36
36
  "queries": {
37
- "queryType": "rangePreview",
37
+ "queryType": "range",
38
38
  "contention": {
39
39
  "$numberInt": "0"
40
40
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "v": {
3
3
  "$binary": {
4
- "base64": "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",
4
+ "base64": "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",
5
5
  "subType": "06"
6
6
  }
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "v": {
3
3
  "$binary": {
4
- "base64": "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",
4
+ "base64": "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",
5
5
  "subType": "06"
6
6
  }
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "v": {
3
3
  "$binary": {
4
- "base64": "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",
4
+ "base64": "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",
5
5
  "subType": "06"
6
6
  }
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "v": {
3
3
  "$binary": {
4
- "base64": "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",
4
+ "base64": "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",
5
5
  "subType": "06"
6
6
  }
7
7
  }
@@ -36,10 +36,18 @@
36
36
  "ServerTextSubstringToken": "dc79b64dab53c09dcbcc2c203e1ed5d88e0fed75b1e3a3a3f192ead85d762e6a",
37
37
  "ServerTextSuffixToken": "a69ea838e79f9c11e2d6bd54e665bf0eee4864d5e517a7c9e9fb763e1a187cbe",
38
38
  "ServerTextPrefixToken": "b89b65fc9274678e1fe107ff8ae485f6ba46400870f87ba08c710bd605792cfc",
39
+ "EDCTextExactDerivedFromDataToken": "a76c2da86efb5118f572180c0899a4701e574e7ca27ef972f31406cec61d96ca",
40
+ "EDCTextSubstringDerivedFromDataToken": "b30c36483986fdc61a11d84a94579e20afcb07baf042688b534d6beb957d1305",
41
+ "EDCTextSuffixDerivedFromDataToken": "d93b492c3c6b46971504bfdda134a4a887e0ccef9ce2bc450c51ce9a63c13125",
42
+ "EDCTextPrefixDerivedFromDataToken": "a452a61a74f5dbf3c321b2a9e24a9d0554e0ce192f355aa11c5489bc76e925a0",
39
43
  "EDCTextExactDerivedFromDataTokenAndContentionFactorToken": "5f073c558114c2ff39a56e837d64f64c68328b14ebe2f6f142304e966cb618c4",
40
44
  "EDCTextSubstringDerivedFromDataTokenAndContentionFactorToken": "ac333c5086216d14bcbe9996dc7c9c815625aeef47e6c08d83b348dd6bb62834",
41
45
  "EDCTextSuffixDerivedFromDataTokenAndContentionFactorToken": "bd9a705c59a292635101523014ae997f2f56b8ba2ab4df3573c8f2524f5a9e50",
42
46
  "EDCTextPrefixDerivedFromDataTokenAndContentionFactorToken": "06c4e44724305bb706e404c1caae6fff604c2b0c6809c3bcf79658ff3c93b951",
47
+ "ESCTextExactDerivedFromDataToken": "e198e94d4c07083a48bce1cb24202c7215cceee3b43b9d7c6b7114045eb2336c",
48
+ "ESCTextSubstringDerivedFromDataToken": "f3501ae0e842a204553e0b930563a69d6b260a54855bccd3c38cdf3fc5aa5de9",
49
+ "ESCTextSuffixDerivedFromDataToken": "c9b245e4f0bf009484cccac911bb82ea0eee9da782fc57325f62e60cc7cffb79",
50
+ "ESCTextPrefixDerivedFromDataToken": "7ed9d36faf86cc5e11c1ea7da839ff019e0f87949c16dfefcdafcb684aa2022b",
43
51
  "ESCTextExactDerivedFromDataTokenAndContentionFactorToken": "680b35d73a3f778792b8a03df267aa945cb9718ed4e6925c9da069d354032b7a",
44
52
  "ESCTextSubstringDerivedFromDataTokenAndContentionFactorToken": "380c456ea3c2b9d80324556931764ea22c5e097b2702e658dfe81254b1ec9688",
45
53
  "ESCTextSuffixDerivedFromDataTokenAndContentionFactorToken": "db3418028ec9079fe27643071d575e9f6e0607bdfee185d1380a68921ce58ff6",
@@ -36,10 +36,18 @@
36
36
  "ServerTextSubstringToken": "183ff338509675d5377d09978e9becd31b197458e2c8cd45b670c672ceb6dc53",
37
37
  "ServerTextSuffixToken": "baf7c9392bb37607c6aa1f04163f4db8628872e7e7122e754bcd72771934ccbd",
38
38
  "ServerTextPrefixToken": "52387ea6942d9299a89f70a2a4d8a4209ea1dfe56e29f6c0e3182ca7818b5c9c",
39
+ "EDCTextExactDerivedFromDataToken": "6006d61e9e985ee8f6490aebf0bfd120bf7a94317646165584894da6ecbf0e97",
40
+ "EDCTextSubstringDerivedFromDataToken": "4dab3b274aa5d5e99ecbd7f139cd420f25305c9f082b25aa96f1c9fe6e2122e3",
41
+ "EDCTextSuffixDerivedFromDataToken": "997f4a0b518f6c872951b65dcf26676d3886c98502fe0a7cc4f9c5ea4f30e94b",
42
+ "EDCTextPrefixDerivedFromDataToken": "d3ebdd34bcacd11c5929a09d2a897eb7938abd4756cab805f46ff0f4affa7583",
39
43
  "EDCTextExactDerivedFromDataTokenAndContentionFactorToken": "3551507189d32cc7768390cdd83071deeb3055ca86c4756b16bb740024b23610",
40
44
  "EDCTextSubstringDerivedFromDataTokenAndContentionFactorToken": "4b52f6daf3b688971eb5819820c3468b3c79ba45fd3e86134351f9baf203e0d1",
41
45
  "EDCTextSuffixDerivedFromDataTokenAndContentionFactorToken": "c1f273913631a9a1b36fea884b3c8a3a141c9e21556981094ba15f262e540ac7",
42
46
  "EDCTextPrefixDerivedFromDataTokenAndContentionFactorToken": "a8d68ebdb0e2d31754f693c56071b0b1d225e6ec5568aff875bd4f7c48c24f66",
47
+ "ESCTextExactDerivedFromDataToken": "6d3311b3de0e32dbfe55a565327ad4b99d670474ddef52aa200fc79d76b8c7c4",
48
+ "ESCTextSubstringDerivedFromDataToken": "0e9d0f7c42658dd6894d3cbe34ffa0d39be00ba72a21ac79bc3712b25783d247",
49
+ "ESCTextSuffixDerivedFromDataToken": "a95860b4a08b39b002e5aee557268786be4e6d5a8552090dc397fbdb34374313",
50
+ "ESCTextPrefixDerivedFromDataToken": "8df7341dd42c1cee8411657afaea424bfa818a539bf0668e1c355fc2a555e11a",
43
51
  "ESCTextExactDerivedFromDataTokenAndContentionFactorToken": "4cd82a4883ab0a6224a24937066f94827f5107e8bb2f0fa841e10aff8d49e8e4",
44
52
  "ESCTextSubstringDerivedFromDataTokenAndContentionFactorToken": "94f116183f14442e335902756e5b730683cd998c683b90d04dc9e8f48684bdb2",
45
53
  "ESCTextSuffixDerivedFromDataTokenAndContentionFactorToken": "13390024c674c2d131771cf95af9787c8c7ef76b5d63078b3dc482cb4075a634",
@@ -133,9 +133,10 @@ static void _print_binary_as_text(mongocrypt_binary_t *binary) {
133
133
  #define CHECK(stmt) \
134
134
  if (!stmt) { \
135
135
  continue; \
136
- }
136
+ } else \
137
+ ((void)0)
137
138
 
138
- void _run_state_machine(mongocrypt_ctx_t *ctx, bson_t *result) {
139
+ static void _run_state_machine(mongocrypt_ctx_t *ctx, bson_t *result) {
139
140
  mongocrypt_binary_t *input, *output = NULL;
140
141
  bson_t tmp;
141
142
  mongocrypt_kms_ctx_t *kms;
@@ -227,11 +228,10 @@ void _run_state_machine(mongocrypt_ctx_t *ctx, bson_t *result) {
227
228
  mongocrypt_ctx_status(ctx, status);
228
229
  printf("\ngot error: %s\n", mongocrypt_status_message(status, NULL));
229
230
  abort();
230
- break;
231
231
  case MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS:
232
232
  // We don't handle KMS credentials
233
233
  // fallthrough
234
- default: BSON_ASSERT(0); break;
234
+ default: BSON_ASSERT(0);
235
235
  }
236
236
  }
237
237
 
@@ -247,7 +247,7 @@ static mongocrypt_binary_t *_iter_to_binary(bson_iter_t *iter) {
247
247
  return mongocrypt_binary_new_from_data(data, len);
248
248
  }
249
249
 
250
- int main() {
250
+ int main(void) {
251
251
  bson_iter_t iter;
252
252
  bson_t result;
253
253
  bson_t key_doc;
@@ -8,14 +8,20 @@
8
8
 
9
9
  static std::string global_str;
10
10
 
11
- extern "C"
12
- #if _MSC_VER
13
- __declspec(dllexport)
11
+ #if defined(_MSC_VER)
12
+ #define SAY_HELLO_EXPORT __declspec(dllexport)
14
13
  #else
15
- __attribute__ ((visibility ("default")))
14
+ #define SAY_HELLO_EXPORT __attribute__((visibility("default")))
16
15
  #endif
17
- int say_hello() {
16
+
17
+ extern "C" {
18
+
19
+ SAY_HELLO_EXPORT int say_hello(); // -Wmissing-prototypes: for testing only.
20
+
21
+ int say_hello() {
18
22
  global_str = "Hello, DLL!";
19
23
  std::cout << global_str << "\n";
20
24
  return 42;
21
25
  }
26
+
27
+ } // extern "C"
@@ -32,7 +32,7 @@ static void _test_createdatakey_with_credentials(_mongocrypt_tester_t *tester) {
32
32
 
33
33
  crypt = _mongocrypt_tester_mongocrypt(TESTER_MONGOCRYPT_DEFAULT);
34
34
  ctx = mongocrypt_ctx_new(crypt);
35
- ASSERT_OK(mongocrypt_ctx_setopt_key_encryption_key(ctx, TEST_BSON(kek)), ctx);
35
+ ASSERT_OK(mongocrypt_ctx_setopt_key_encryption_key(ctx, TEST_BSON_STR(kek)), ctx);
36
36
  ASSERT_OK(mongocrypt_ctx_datakey_init(ctx), ctx);
37
37
 
38
38
  ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_KMS);
@@ -159,7 +159,7 @@ static void _test_createdatakey_with_accesstoken(_mongocrypt_tester_t *tester) {
159
159
  mongocrypt_setopt_use_need_kms_credentials_state(crypt);
160
160
  ASSERT_OK(_mongocrypt_init_for_test(crypt), crypt);
161
161
  ctx = mongocrypt_ctx_new(crypt);
162
- ASSERT_OK(mongocrypt_ctx_setopt_key_encryption_key(ctx, TEST_BSON(kek)), ctx);
162
+ ASSERT_OK(mongocrypt_ctx_setopt_key_encryption_key(ctx, TEST_BSON_STR(kek)), ctx);
163
163
  ASSERT_OK(mongocrypt_ctx_datakey_init(ctx), ctx);
164
164
 
165
165
  ASSERT_STATE_EQUAL(mongocrypt_ctx_state(ctx), MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS);
@@ -34,11 +34,9 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
34
34
  _mongocrypt_buffer_copy_from_hex(&expect_keyId1, "12345678123498761234123456789012");
35
35
  _mongocrypt_buffer_copy_from_hex(&expect_keyId2, "abcdefab123498761234123456789012");
36
36
 
37
- const bool use_range_v2 = false;
38
-
39
37
  {
40
38
  _load_test_file(tester, "./test/data/efc/efc-oneField.json", &efc_bson);
41
- ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status, use_range_v2), status);
39
+ ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status), status);
42
40
  ASSERT_CMPUINT8(efc.str_encode_version, ==, 0);
43
41
  ptr = efc.fields;
44
42
  ASSERT(ptr);
@@ -50,7 +48,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
50
48
 
51
49
  {
52
50
  _load_test_file(tester, "./test/data/efc/efc-oneField-goodVersionSet.json", &efc_bson);
53
- ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status, use_range_v2), status);
51
+ ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status), status);
54
52
  ASSERT_CMPUINT8(efc.str_encode_version, ==, 1);
55
53
  ptr = efc.fields;
56
54
  ASSERT(ptr);
@@ -62,7 +60,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
62
60
 
63
61
  {
64
62
  _load_test_file(tester, "./test/data/efc/efc-extraField.json", &efc_bson);
65
- ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status, use_range_v2), status);
63
+ ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status), status);
66
64
  ASSERT_CMPUINT8(efc.str_encode_version, ==, 0);
67
65
  ptr = efc.fields;
68
66
  ASSERT(ptr);
@@ -74,7 +72,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
74
72
 
75
73
  {
76
74
  _load_test_file(tester, "./test/data/efc/efc-twoFields.json", &efc_bson);
77
- ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status, use_range_v2), status);
75
+ ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status), status);
78
76
  ASSERT_CMPUINT8(efc.str_encode_version, ==, 0);
79
77
  ptr = efc.fields;
80
78
  ASSERT(ptr);
@@ -90,7 +88,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
90
88
 
91
89
  {
92
90
  _load_test_file(tester, "./test/data/efc/efc-missingKeyId.json", &efc_bson);
93
- ASSERT_FAILS_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status, use_range_v2),
91
+ ASSERT_FAILS_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status),
94
92
  status,
95
93
  "unable to find 'keyId' in 'field' document");
96
94
  mc_EncryptedFieldConfig_cleanup(&efc);
@@ -99,7 +97,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
99
97
 
100
98
  {
101
99
  _load_test_file(tester, "./test/data/efc/efc-oneField-badVersionSet.json", &efc_bson);
102
- ASSERT_FAILS_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status, use_range_v2),
100
+ ASSERT_FAILS_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status),
103
101
  status,
104
102
  "'strEncodeVersion' of 99 is not supported");
105
103
  mc_EncryptedFieldConfig_cleanup(&efc);
@@ -108,7 +106,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
108
106
 
109
107
  {
110
108
  _load_test_file(tester, "./test/data/efc/efc-textSearchFields.json", &efc_bson);
111
- ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status, use_range_v2), status);
109
+ ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status), status);
112
110
  ASSERT_CMPUINT8(efc.str_encode_version, ==, LATEST_STR_ENCODE_VERSION);
113
111
  ptr = efc.fields;
114
112
  ASSERT(ptr);
@@ -126,7 +124,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
126
124
 
127
125
  {
128
126
  _load_test_file(tester, "./test/data/efc/efc-textSearchFields-goodVersionSet.json", &efc_bson);
129
- ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status, use_range_v2), status);
127
+ ASSERT_OK_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status), status);
130
128
  ASSERT_CMPUINT8(efc.str_encode_version, ==, 1);
131
129
  ptr = efc.fields;
132
130
  ASSERT(ptr);
@@ -144,7 +142,7 @@ static void _test_efc(_mongocrypt_tester_t *tester) {
144
142
 
145
143
  {
146
144
  _load_test_file(tester, "./test/data/efc/efc-textSearchFields-badVersionSet.json", &efc_bson);
147
- ASSERT_FAILS_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status, use_range_v2),
145
+ ASSERT_FAILS_STATUS(mc_EncryptedFieldConfig_parse(&efc, &efc_bson, status),
148
146
  status,
149
147
  "'strEncodeVersion' of 99 is not supported");
150
148
  mc_EncryptedFieldConfig_cleanup(&efc);
@@ -96,8 +96,7 @@ static void _test_FLE2EncryptionPlaceholder_range_parse(_mongocrypt_tester_t *te
96
96
  {
97
97
  mc_FLE2RangeInsertSpec_t spec;
98
98
 
99
- ASSERT_OK_STATUS(mc_FLE2RangeInsertSpec_parse(&spec, &placeholder.v_iter, false /* use_range_v2 */, status),
100
- status);
99
+ ASSERT_OK_STATUS(mc_FLE2RangeInsertSpec_parse(&spec, &placeholder.v_iter, status), status);
101
100
 
102
101
  ASSERT(BSON_ITER_HOLDS_INT32(&spec.v));
103
102
  ASSERT_CMPINT32(bson_iter_int32(&spec.v), ==, 123456);
@@ -153,8 +152,7 @@ static void _test_FLE2EncryptionPlaceholder_range_parse(_mongocrypt_tester_t *te
153
152
  {
154
153
  mc_FLE2RangeFindSpec_t spec;
155
154
 
156
- ASSERT_OK_STATUS(mc_FLE2RangeFindSpec_parse(&spec, &placeholder.v_iter, false /* use_range_v2 */, status),
157
- status);
155
+ ASSERT_OK_STATUS(mc_FLE2RangeFindSpec_parse(&spec, &placeholder.v_iter, status), status);
158
156
 
159
157
  ASSERT(spec.edgesInfo.set);
160
158
 
@@ -225,8 +223,7 @@ static void _test_FLE2EncryptionPlaceholder_range_parse(_mongocrypt_tester_t *te
225
223
  {
226
224
  mc_FLE2RangeFindSpec_t spec;
227
225
 
228
- ASSERT_OK_STATUS(mc_FLE2RangeFindSpec_parse(&spec, &placeholder.v_iter, false /* use_range_v2 */, status),
229
- status);
226
+ ASSERT_OK_STATUS(mc_FLE2RangeFindSpec_parse(&spec, &placeholder.v_iter, status), status);
230
227
 
231
228
  ASSERT(spec.edgesInfo.set);
232
229
 
@@ -295,8 +292,7 @@ static void _test_FLE2EncryptionPlaceholder_range_parse(_mongocrypt_tester_t *te
295
292
  {
296
293
  mc_FLE2RangeInsertSpec_t spec;
297
294
 
298
- ASSERT_OK_STATUS(mc_FLE2RangeInsertSpec_parse(&spec, &placeholder.v_iter, false /* use_range_v2 */, status),
299
- status);
295
+ ASSERT_OK_STATUS(mc_FLE2RangeInsertSpec_parse(&spec, &placeholder.v_iter, status), status);
300
296
 
301
297
  ASSERT(BSON_ITER_HOLDS_DOUBLE(&spec.v));
302
298
  ASSERT_CMPDOUBLE(bson_iter_double(&spec.v), ==, 123.456);
@@ -321,15 +317,17 @@ static bool _parse_text_search_spec_from_placeholder(_mongocrypt_tester_t *teste
321
317
  const char *spec_json_in,
322
318
  mc_FLE2TextSearchInsertSpec_t *spec_out,
323
319
  mongocrypt_status_t *status_out) {
324
- const char *template = RAW_STRING({
325
- "t" : {"$numberInt" : "1"},
326
- "a" : {"$numberInt" : "4"},
327
- "ki" : {"$binary" : {"base64" : "EjRWeBI0mHYSNBI0VniQEg==", "subType" : "04"}},
328
- "ku" : {"$binary" : {"base64" : "q83vqxI0mHYSNBI0VniQEg==", "subType" : "04"}},
329
- "v" : % s,
330
- "cm" : {"$numberLong" : "7"}
331
- });
332
- bson_t *const as_bson = TMP_BSON(template, spec_json_in);
320
+ #define PLACEHOLDER_TEMPLATE \
321
+ RAW_STRING({ \
322
+ "t" : {"$numberInt" : "1"}, \
323
+ "a" : {"$numberInt" : "4"}, \
324
+ "ki" : {"$binary" : {"base64" : "EjRWeBI0mHYSNBI0VniQEg==", "subType" : "04"}}, \
325
+ "ku" : {"$binary" : {"base64" : "q83vqxI0mHYSNBI0VniQEg==", "subType" : "04"}}, \
326
+ "v" : MC_BSON, \
327
+ "cm" : {"$numberLong" : "7"} \
328
+ })
329
+
330
+ bson_t *const as_bson = TMP_BSONF(PLACEHOLDER_TEMPLATE, TMP_BSON_STR(spec_json_in));
333
331
 
334
332
  mc_FLE2EncryptionPlaceholder_t placeholder;
335
333
  mc_FLE2EncryptionPlaceholder_init(&placeholder);
@@ -355,6 +353,8 @@ static bool _parse_text_search_spec_from_placeholder(_mongocrypt_tester_t *teste
355
353
 
356
354
  mc_FLE2EncryptionPlaceholder_cleanup(&placeholder);
357
355
  return res;
356
+
357
+ #undef PLACEHOLDER_TEMPLATE
358
358
  }
359
359
 
360
360
  static void _test_FLE2EncryptionPlaceholder_textSearch_parse(_mongocrypt_tester_t *tester) {
@@ -390,17 +390,6 @@ static void _test_FLE2EncryptionPlaceholder_textSearch_parse(_mongocrypt_tester_
390
390
  mongocrypt_status_destroy(status);
391
391
  }
392
392
 
393
- // Test type=MONGOCRYPT_FLE2_PLACEHOLDER_TYPE_INSERT without substring, suffix, or prefix specs
394
- {
395
- const char *input = RAW_STRING({"v" : "foobar", "casef" : false, "diacf" : true});
396
- mongocrypt_status_t *status = mongocrypt_status_new();
397
- mc_FLE2TextSearchInsertSpec_t spec;
398
- ASSERT_FAILS_STATUS(_parse_text_search_spec_from_placeholder(tester, input, &spec, status),
399
- status,
400
- "Must have a substring, suffix, or prefix index specification");
401
- mongocrypt_status_destroy(status);
402
- }
403
-
404
393
  // Test type=MONGOCRYPT_FLE2_PLACEHOLDER_TYPE_INSERT with lb > ub
405
394
  #define LB_GT_UB_TEST(Type) \
406
395
  do { \
@@ -441,7 +430,7 @@ static void _test_FLE2EncryptionPlaceholder_textSearch_parse(_mongocrypt_tester_
441
430
  }
442
431
 
443
432
  static void _test_FLE2EncryptionPlaceholder_parse_errors(_mongocrypt_tester_t *tester) {
444
- bson_t *input_bson = TMP_BSON(BSON_STR({
433
+ bson_t *input_bson = TMP_BSON_STR(BSON_STR({
445
434
  "t" : {"$numberInt" : "1"},
446
435
  "a" : {"$numberInt" : "1"},
447
436
  "ki" : {"$binary" : {"base64" : "EjRWeBI0mHYSNBI0VniQEg==", "subType" : "04"}},
@@ -74,7 +74,7 @@ static void _test_FLE2FindEqualityPayloadV2_roundtrip(_mongocrypt_tester_t *test
74
74
  #undef TEST_FIND_EQ_PAYLOAD_HEX_V2
75
75
 
76
76
  static void _test_FLE2FindEqualityPayloadV2_errors(_mongocrypt_tester_t *tester) {
77
- bson_t *input_bson = TMP_BSON(BSON_STR({
77
+ bson_t *input_bson = TMP_BSON_STR(BSON_STR({
78
78
  "d" : {"$binary" : {"base64" : "AAAA", "subType" : "00"}},
79
79
  "s" : {"$binary" : {"base64" : "AAAA", "subType" : "00"}},
80
80
  "l" : {"$binary" : {"base64" : "AAAA", "subType" : "00"}},