matrix-org/matrix-rust-sdk

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

Hywan opened this issue · 1 comments

Hywan commented

Address element-hq/element-web#21972.

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

  • Build pipeline for producing a NPM-compatible Wasm package:

Basic encryption/decryption

  • Storage implementation
  • Bindings for the minimal interface to support basic encryption/decryption
  • Fix bugs from community testing session

Table-stakes Functionality

  • Cross-signing bindings (Key Verification with Emojis, QR code, or manually, identity and bootstrapping)
  • Cross-signing shields/verification status
    • OlmMachine.cross_signing_status is implemented, not sure if it validates this item
    • #1039
  • Key backup bindings
  • Room key forwarding/key sharing
  • 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 commented

It's shipped, forgot to close this issue!