-
Type: Task
-
Resolution: Fixed
-
Priority: Unknown
-
Affects Version/s: None
-
Component/s: None
Acceptance Criteria
In libmongocrypt
- Add the following new methods to the ClientEncryption class
- deleteKey(id: Binary): DeleteResult
- getKey(id: Binary): Optional<Document>
- getKeys(): Iterable<Document>
- addKeyAltName(id: Binary, keyAltName: String): Optional<Document>
- removeKeyAltName(id: Binary, keyAltName: String): Optional<Document>
- Implement the functionality with a single update that uses an aggregation expression (
NODE-4312)
- Implement the functionality with a single update that uses an aggregation expression (
- getKeyByAltName(keyAltName: String): Optional<Document>
In the driver
- Unskip unified csfle tests for each of the following methods:
- deleteKey(id: Binary): DeleteResult
- getKey(id: Binary): Optional<Document>
- getKeys(): Iterable<Document>
- addKeyAltName(id: Binary, keyAltName: String): Optional<Document>
- removeKeyAltName(id: Binary, keyAltName: String): Optional<Document>
- getKeyByAltName(keyAltName: String): Optional<Document>
References
- The ClientEncryption API is documented here.
- Anna has completed the work to add support for custom key material and rewrapManyDataKey here
- mongosh has implemented support for these methods in the shell. Their implementation can serve as a reference, available here]
Additional AC
- Investigate triggering our driver's tests from libmongocrypt
- If this turns out to be too much effort for this work, file a ticket