SignalProtocol (libsignal_protocol v0.1.1)
View SourceSignal Protocol implementation for Elixir.
This module provides a high-level interface to the Signal Protocol, implementing end-to-end encryption for secure messaging.
Summary
Functions
Returns a specification to start this module under a supervisor.
Creates a new session with the given local and remote identity keys.
Decrypts a message using the given session.
Encrypts a message using the given session.
Generates a new identity key pair.
Generates a new pre-key with the given ID.
Generates a new signed pre-key with the given ID, signed by the identity key.
Processes a pre-key bundle to establish a session.
Starts a new Signal Protocol session manager.
Functions
Returns a specification to start this module under a supervisor.
See Supervisor
.
Creates a new session with the given local and remote identity keys.
Returns {:ok, session}
on success, where session
is an opaque reference
to the session state.
Decrypts a message using the given session.
Returns {:ok, plaintext}
on success.
Encrypts a message using the given session.
Returns {:ok, ciphertext}
on success.
Generates a new identity key pair.
Returns {:ok, {public_key, signature}}
on success.
Generates a new pre-key with the given ID.
Returns {:ok, {key_id, public_key}}
on success.
Generates a new signed pre-key with the given ID, signed by the identity key.
Returns {:ok, {key_id, public_key, signature}}
on success.
Processes a pre-key bundle to establish a session.
Returns :ok
on success.
Starts a new Signal Protocol session manager.
Options
:name
- The name to register the process under (optional)