Skip to content

About

Fireplace's end-to-end encryption protocol, in Rust.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

fireplace-crypto

The end-to-end encryption protocol of Fireplace, in Rust: identity and device keys, prekeys, the handshake, and the hybrid double ratchet (X25519 + ML-KEM-768, Ed25519 + ML-DSA-65). The Fireplace app and its iOS notification extension both use it.

Work in progress. It follows Fireplace's design decisions (0002, 0003 and 0035 in the app repository) and stays byte-compatible with the app's existing messages, keys and sessions.

ml-kem and ml-dsa say they have not been independently audited. aes-gcm was audited by NCC Group. This crate does not claim an audit. The comparison with libcrux is in docs/dependencies.md.

The crates.io package is fireplace-crypto. Rust code imports fireplace_crypto, and that is also the C library name.

The C ABI is include/fireplace_crypto.h. Callers free every returned buffer with fp_free, which wipes the buffer first. fp_set_test_rng is compiled only with the test-rng feature. That feature is off by default, so a normal build does not contain the symbol.

Licence: AGPL-3.0.

About

Fireplace's end-to-end encryption protocol, in Rust.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages