Skip to main content

libsignal_dezire/
lib.rs

1//! # Signal Protocol Rust Library
2//!
3//! This library provides a pure Rust implementation of the Signal Protocol, designed for
4//! secure end-to-end encryption. It includes support for the Double Ratchet algorithm,
5//! X3DH key agreement, and VXEdDSA signatures.
6//!
7//! ## Feaures
8//!
9//! * **Pure Rust**: Core logic is memory-safe and platform-independent.
10//! * **FFI & JNI**: Built-in support for integrating with Android (via JNI) and iOS (via C FFI).
11//! * **Zeroization**: Sensitive keys are automatically zeroized on drop.
12//!
13//! ## Security
14//!
15//! This library implements the official Signal specifications. While it includes measures
16//! like constant-time operations and memory zeroization, users should ensure they
17//! manage keys securely on their persistent storage.
18//!
19//! ## Modules
20//!
21//! * `ratchet` - The Double Ratchet algorithm (session management, encryption/decryption).
22//! * `x3dh` - The Extended Triple Diffie-Hellman (X3DH) key agreement protocol.
23//! * `vxeddsa` - Implementation of the VXEdDSA signing scheme.
24//! * `ffi` - C and JNI bindings for Android/iOS integration.
25//! * `utils` - Utility functions for curve operations and key conversions.
26//! * `hashes` - Cryptographic hash function abstractions.
27//!
28//! ## Specifications
29//!
30//! This library implements the following Signal specifications:
31//! * [X3DH Key Agreement Protocol](https://signal.org/docs/specifications/x3dh/)
32//! * [Double Ratchet Algorithm](https://signal.org/docs/specifications/doubleratchet/)
33//! * [XEdDSA and VXEdDSA Signature Schemes](https://signal.org/docs/specifications/xeddsa/)
34
35#[cfg(feature = "ffi")]
36pub mod ffi;
37pub(crate) mod hashes;
38pub mod ratchet;
39pub mod utils;
40pub mod vxeddsa;
41pub mod x3dh;