core-crypto
core-crypto copied to clipboard
feat: implement new keypackage api [WPB-19574]
What's new in this PR
- [ ] ~~add the Keypackage type~~ just straight using the OpenMLS one
- [ ] ~~add the KeypackageRef type~~ just straight using the OpenMLS one
- [x] add a Keypackage.ref() method that returns a KeypackageRef
- [x] add the following methods:
- [x] client.generateKeypackages
- [x] client.getKeypackages
- [x] client.removeKeypackage
- [x] client.removeKeypackagesFor
- [x] add comprehensive tests for the new API to all bindings
- [x] ts
- [x] kotlin
- [x] swift
- [x] update client.removeCredential to remove all key packages related to the credential
- [x] remove old API related to key packages, and in particular:
- [x] clientKeypackages
- [x] deleteStaleKeypackages
- [x] clientValidKeypackagesCount
PR Submission Checklist for internal contributors
- The PR Title
- [x] conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
- [x] contains a reference JIRA issue number like
SQPIT-764 - [x] answers the question: If merged, this PR will: ... ³
- https://sparkbox.com/foundry/semantic_commit_messages
- https://github.com/wireapp/.github#usage
- E.g.
feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.
How to handle the migration:
- migrate signature scheme to ciphersuite
- where unambiguous, it's easy
- where ambiguous, duplicate the entries
- ensure we have both "find by signature scheme" and "find by ciphersuite" on credential ref
- and find by ciphersuite exists at the FFI layer
Bencher Report
| Branch | prgn/feat/19574-new-keypackage-api |
| Testbed | ubuntu-latest |
⚠️ WARNING: No Threshold found!
Without a Threshold, no Alerts will ever be generated.
Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the--ci-only-thresholdsflag.
Click to view all benchmark results
Bencher Report
| Branch | prgn/feat/19574-new-keypackage-api |
| Testbed | ubuntu-latest |
⚠️ WARNING: No Threshold found!
Without a Threshold, no Alerts will ever be generated.
Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the--ci-only-thresholdsflag.
Click to view all benchmark results
| Benchmark | Latency | milliseconds (ms) |
|---|---|---|
| decrypt1000MessagesWeb | 📈 view plot ⚠️ NO THRESHOLD | 251.10 ms |