Skip to content

Conversation

@xsanm
Copy link
Collaborator

@xsanm xsanm commented Dec 2, 2025

Summary:
ENG-11531.

Olm had two methods:

  • create_inbound (only pre-key message)
  • create_inbound_from (pre-key message and identity key)

Vodozemac supports only one version, with an identity key, so we need to deprecate create_inbound.

The only tricky part is handling of INITIAL_NOTIFICATIONS_ENCRYPTED_MESSAGE, but looking at the code, it should always happen after handling SIGNED_IDENTITY_KEYS_BLOB, so it should work.

Test Plan: Flow, tested later in the stack

Reviewers: ashoat

Summary:
[ENG-11531](https://linear.app/comm/issue/ENG-11531/migrate-the-full-crypto-api-to-vodozemac).

Olm had two methods:
- create_inbound (only pre-key message)
- create_inbound_from (pre-key message and identity key)

Vodozemac support only one version, with identity key so we need to deprecate `create_inbound`.

The only tricky part is handling of `INITIAL_NOTIFICATIONS_ENCRYPTED_MESSAGE`, but looking at code it should always happen after handling `SIGNED_IDENTITY_KEYS_BLOB`, so it should work.

Test Plan: Flow, tested later in the stack

Reviewers: ashoat

Subscribers: tomek

Differential Revision: https://phab.comm.dev/D15546
@xsanm xsanm requested a review from Ashoat December 2, 2025 15:54
@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

…#324)

* [lib][web][keyserver] add Vodozemac library and `.wasm` file handling

Summary:
[ENG-11531](https://linear.app/comm/issue/ENG-11531/migrate-the-full-crypto-api-to-vodozemac).

Using the same pattern as have for existing `.wasm` files (Olm, SQLite and Backup Client).

Currently linking my local library, so CI will fail. This should be updated to NPM package after CommE2E/vodozemac#3 is merged and published.

This diff shouldn't be landed without following one with API migration, because it replaces initializing Olm with Vodozemac, so Olm is not working anymore.

Depends on D15546

Test Plan: Run web and keyserver, vodozemac should be available, usage tested in next diff

Reviewers: ashoat

Subscribers: tomek

Differential Revision: https://phab.comm.dev/D15547

* [lib][web][keyserver] replace Olm with Vodozemac's Olm (#325)

* [lib][web][keyserver] replace Olm with Vodozemac's Olm

Summary:
[ENG-11531](https://linear.app/comm/issue/ENG-11531/migrate-the-full-crypto-api-to-vodozemac).

There is one thing with naming which is not obvious, this is using Olm name - Olm is still part of Vodozemac crate, so I think this is still correct, but I am okay with updating this too.

I tried to make API as similar as it is possible, so there are files when changing import is everything we have to do.

I redefined `EncryptResult` in `lib/`. Importing it from Olm was bad idea because it was used on native too, which causes Olm/Vodozemac wasm to be bundled into native, which worked with Olm but not with Vodozemac.

Depends on D15547

Test Plan: Test encrypt/decrypt and creating session with Olm and Vodozemac.

Reviewers: ashoat

Subscribers: tomek

Differential Revision: https://phab.comm.dev/D15548

* [native] implement CXX bindings to Vodozemac (#326)

Summary:
[ENG-11531](https://linear.app/comm/issue/ENG-11531/migrate-the-full-crypto-api-to-vodozemac).

Making vodozemac available on native.

Branch needs to be updated after PRs are merged

Test Plan: Tested in next diff

Reviewers: ashoat

Subscribers: tomek

Differential Revision: https://phab.comm.dev/D15549
Summary:
[ENG-11531](https://linear.app/comm/issue/ENG-11531/migrate-the-full-crypto-api-to-vodozemac).

Making vodozemac available on native.

Depends on D15549

Test Plan: Test encrypt/decrypt and creating session with Olm and Vodozemac.

Reviewers: ashoat

Subscribers: tomek

Differential Revision: https://phab.comm.dev/D15550
@xsanm xsanm merged commit ab289a4 into master Dec 4, 2025
@xsanm xsanm deleted the vodozemac-work-part-1 branch December 4, 2025 12:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants