DRIVERS-2297:
Please see https://github.com/mongodb/specifications/pull/1195 and https://github.com/mongodb/specifications/pull/1214 for the specification changes.
Please update the tests to this commit, which includes test fixes:
https://github.com/mongodb/specifications/commit/c3784d44555752bb058993e7b0bb51cab5b3b1d5
Please see the Go driver implementation for reference.
Bindings changes
Upgrade libmongocrypt dependency to 1.5.0. Drivers can use 1.5.0-alpha0 to test. Binaries are available from this upload-all task.
Update the bindings to libmongocrypt to add the new functions: mongocrypt_setopt_encrypted_field_config_map and mongocrypt_setopt_bypass_query_analysis.
Drivers that implement crypto callbacks (C#, Java, Node.js, Python, Ruby) need to wrap the new crypto callback: mongocrypt_setopt_aes_256_ctr.
Drivers languages that do not support CTR mode may alternatively wrap mongocrypt_setopt_aes_256_ecb. From this survey, this may only be C#.
Driver changes
Add the new driver API options: AutoEncryptionOpts.encryptedFieldsMap and AutoEncryptionOpts.bypassQueryAnalysis.
Pass AutoEncryptionOpts.encryptedFieldsMap to libmongocrypt with mongocrypt_setopt_encrypted_field_config_map.
If AutoEncryptionOpts.bypassQueryAnalysis is true, call the libmongocrypt function mongocrypt_setopt_bypass_query_analysis.
Test changes
Add encrypted_fields to the CSFLE specification test format.
Sync the added CSFLE specification tests.