Skip to main content

Crate libsignal_dezire

Crate libsignal_dezire 

Source
Expand description

§Signal Protocol Rust Library

This library provides a pure Rust implementation of the Signal Protocol, designed for secure end-to-end encryption. It includes support for the Double Ratchet algorithm, X3DH key agreement, and VXEdDSA signatures.

§Feaures

  • Pure Rust: Core logic is memory-safe and platform-independent.
  • FFI & JNI: Built-in support for integrating with Android (via JNI) and iOS (via C FFI).
  • Zeroization: Sensitive keys are automatically zeroized on drop.

§Security

This library implements the official Signal specifications. While it includes measures like constant-time operations and memory zeroization, users should ensure they manage keys securely on their persistent storage.

§Modules

  • ratchet - The Double Ratchet algorithm (session management, encryption/decryption).
  • x3dh - The Extended Triple Diffie-Hellman (X3DH) key agreement protocol.
  • vxeddsa - Implementation of the VXEdDSA signing scheme.
  • ffi - C and JNI bindings for Android/iOS integration.
  • utils - Utility functions for curve operations and key conversions.
  • hashes - Cryptographic hash function abstractions.

§Specifications

This library implements the following Signal specifications:

Modules§

ratchet
Double Ratchet Algorithm
utils
Provides utility functions for cryptographic operations on Curve25519, focusing on key generation and conversions between Montgomery (X25519) and Edwards (Ed25519) curve forms.
vxeddsa
VXEdDSA Signature Scheme
x3dh
X3DH Key Agreement Protocol