matrix-org / matrix-org/matrix-rust-sdk-crypto-nodejs

NodeJS bindings: Support for MSC3983

Open
#29 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
11
Forks
23
Avg merge
22h 12m
Merged PRs (30d)
1

Description

(relative priority: low, as of writing)

MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/3983
bot-sdk(NodeJS) implementation: https://github.com/turt2live/matrix-bot-sdk/pull/307

I think to make MSC3983 work over the bindings, we'd need a way (function? flag?) to tell the OlmMachine that it shouldn't bother doing /key/upload for anything other than the fallback keys. Then, a function to route the /keys/claim query into the OlmMachine to have it do stuff.

Note that the implementation effort here is effectively to treat all OTKs as "uploaded" then manually track which ones are used in claim responses, followed by which ones are actually used in toDevice messages. The last bit (toDevice messages) is already present.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading MSC3983 and the linked matrix-bot-sdk implementation, then compare their requirements with the current OlmMachine binding surface. Identify how key upload and key-claim handling should be exposed through the NodeJS bindings, including the existing to-device tracking. Done means the binding supports the MSC3983 flow and its behavior is covered by appropriate tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
nodejs, rust
Domain
api, cryptography
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.