matrix-rust-sdk icon indicating copy to clipboard operation
matrix-rust-sdk copied to clipboard

[meta] Element Web's requirements for `crypto-js`

Open Hywan opened this issue 3 years ago • 0 comments

This is not a secret that Element Web will use matrix-sdk-crypto-js in a near future. This meta issue provides a list of additional features we want to see in matrix-sdk-crypto-js that are required for Element Web. This list is inspired by Element Web R: Internal Plan, and by various wishes I've heard here and there.

Each new feature respects the Rust team' standards: It is highly tested, well-documented, reviewed, and will improve the underlying layers if needed.

Foundational

  • [x] Build pipeline for producing a NPM-compatible Wasm package:
    • [x] #966
    • [x] #981

Basic encryption/decryption

  • [x] Storage implementation
    • [x] #971
  • [x] Bindings for the minimal interface to support basic encryption/decryption
    • [x] #955
    • [x] #958
    • [x] #1040
  • [ ] Fix bugs from community testing session

Table-stakes Functionality

  • [x] Cross-signing bindings (Key Verification with Emojis, QR code, or manually, identity and bootstrapping)
    • [x] #788
  • [x] Cross-signing shields/verification status
    • [x] OlmMachine.cross_signing_status is implemented, not sure if it validates this item
    • [x] #1039
  • [x] Key backup bindings
    • [x] #1058
    • [x] #1059
  • [x] Room key forwarding/key sharing
    • [x] #675
    • [x] #723
  • [ ] Historical room key sharing
    • Not implemented in matrix_sdk_crypto yet.
  • [ ] Custom to-device message bindings (for MSC3401 VoIP)
  • [ ] Bindings to reset/replace key backup & cross-signing (and/or SSSS)
    • Not implemented in matrix_sdk_crypto yet.
  • [ ] Fix bugs from community testing session

Ship It

  • [ ] Test and address performance concerns if any
  • [ ] Fix bugs from community testing session

Hywan avatar Sep 08 '22 08:09 Hywan