Skip to content

Migrate to existing sframe crate - #48

Open
TobTheRock wants to merge 1 commit into
F000NKKK:masterfrom
TobTheRock:tobtherock/sframe-migration
Open

Migrate to existing sframe crate#48
TobTheRock wants to merge 1 commit into
F000NKKK:masterfrom
TobTheRock:tobtherock/sframe-migration

Conversation

@TobTheRock

Copy link
Copy Markdown

Summary

I have stumbled across your project by chance and have noticed your sframe implementation. As I was anyway looking for an opportunity to test the MLS definitions of my sframe crate, I did the exercise to replace it here.
This brings the following benefits:

  • This library is fully compliant to the latest spec (RFC 9605) and fully tested against the standard
  • Swappable crypto backend, the default (and now used) ring library proves to be more performant than rust-crypto
  • Fixes a latent bug: the old code derived keys with SHA-256 for both suites; the crate correctly pairs AES-256 with SHA-512 per the RFC
  • less dependencies, less code to maintain ;)

Feel free to drop if you prefer owning the stack with your own implementation.

Type of change

  • Bug fix
  • New feature
  • Breaking change
    • Derived keys differ from the old build, so all peers must upgrade together
  • Refactor / internal improvement
  • Documentation update
  • CI / build change

Testing

  • cargo test --workspace passes
  • New tests added for the changed behaviour
    • no new test needed
  • Tested in affected language binding(s): Rust / Python/JS (TestSFrameE2EE, real MLS + FFI, gapAudio.ts)

Checklist

  • Conventional commit message (feat:, fix:, docs:, …)
  • cargo fmt --all and cargo clippy --all-targets -- -D warnings clean
  • Public API changes are documented
  • CHANGELOG updated if this is a user-visible change

Switching the custom sframe implementation to the public sframe crate.
This library is fully compliant to the latest spec (RFC 9605). It also
allows swapping the crypto backend. Switched to ring as it more
performant than rust crypto and the AES ctr modes are not used.
The sframe-gbp public API was left untouched, but as derived keys differ
from the old build, all peers must upgrade together, so this is breaking
@TobTheRock TobTheRock changed the title Migrate to sframe existing crate Migrate to existing sframe crate Jul 19, 2026
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.

1 participant