[JAVA-4593] Support queryable auto-encryption Created: 27/Apr/22  Updated: 28/Oct/23  Resolved: 19/May/22

Status: Closed
Project: Java Driver
Component/s: Client Side Encryption
Affects Version/s: None
Fix Version/s: 4.7.0

Type: New Feature Priority: Major - P3
Reporter: PM Bot Assignee: Ross Lawley
Resolution: Fixed Votes: 0
Labels: QP-priority, spec-compliance
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Issue split
Epic Link: FLE 2.0 Support
Quarter: FY23Q2
Upstream Changes Summary:

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.


 Description   

This ticket was split from DRIVERS-2297, please see that ticket for a detailed description.



 Comments   
Comment by Githook User [ 19/May/22 ]

Author:

{'name': 'Ross Lawley', 'email': 'ross.lawley@gmail.com', 'username': 'rozza'}

Message: Add FLE 2 API to AutoEncryptionOptions

Add FLE 2 behavior for creating and dropping a collection

JAVA-4593
JAVA-4589
JAVA-4609
Branch: master
https://github.com/mongodb/mongo-java-driver/commit/11484607b8d5f3888f4335f939e02ceb58952eae

Comment by Githook User [ 18/May/22 ]

Author:

{'name': 'Ross Lawley', 'email': 'ross.lawley@gmail.com', 'username': 'rozza'}

Message: Added FLE 2 API to ClientEncryptionOptions

JAVA-4593
Branch: master
https://github.com/mongodb/libmongocrypt/commit/36b0b00312f2b3b5a96877b69c041841568f40bb

Comment by Githook User [ 18/May/22 ]

Author:

{'name': 'Ross Lawley', 'email': 'ross.lawley@gmail.com', 'username': 'rozza'}

Message: Added FLE2 AutoEncryptionOptions

Added support for:

  • mongocrypt_setopt_encrypted_field_config_map
  • mongocrypt_setopt_bypass_query_analysis
  • mongocrypt_setopt_aes_256_ctr

JAVA-4593
Branch: master
https://github.com/mongodb/libmongocrypt/commit/d62026e5af5cd966b8492bb53c018e54783fdab2

Generated at Thu Feb 08 09:02:29 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.