libsignal_protocol/
lib.rs1#![warn(clippy::unwrap_used)]
18#![deny(unsafe_code)]
19
20mod consts;
26mod crypto;
27mod curve;
28pub mod error;
29mod fingerprint;
30mod group_cipher;
31mod identity_key;
32pub mod incremental_mac;
33pub mod kem;
34mod proto;
35mod protocol;
36mod ratchet;
37mod sealed_sender;
38mod sender_keys;
39mod session;
40mod session_cipher;
41mod state;
42mod storage;
43mod timestamp;
44mod utils;
45
46pub use curve::{KeyPair, PrivateKey, PublicKey};
47use error::Result;
48pub use error::SignalProtocolError;
49pub use fingerprint::{DisplayableFingerprint, Fingerprint, ScannableFingerprint};
50pub use group_cipher::{
51 create_sender_key_distribution_message, group_decrypt, group_encrypt,
52 process_sender_key_distribution_message,
53};
54pub use identity_key::{IdentityKey, IdentityKeyPair};
55pub use libsignal_core::{
56 Aci, DeviceId, Pni, ProtocolAddress, ServiceId, ServiceIdFixedWidthBinaryBytes, ServiceIdKind,
57};
58pub use protocol::{
59 extract_decryption_error_message_from_serialized_content, CiphertextMessage,
60 CiphertextMessageType, DecryptionErrorMessage, KyberPayload, PlaintextContent,
61 PreKeySignalMessage, SenderKeyDistributionMessage, SenderKeyMessage, SignalMessage,
62};
63pub use ratchet::{
64 initialize_alice_session_record, initialize_bob_session_record, AliceSignalProtocolParameters,
65 BobSignalProtocolParameters,
66};
67pub use sealed_sender::{
68 sealed_sender_decrypt, sealed_sender_decrypt_to_usmc, sealed_sender_encrypt,
69 sealed_sender_encrypt_from_usmc, sealed_sender_multi_recipient_encrypt, ContentHint,
70 SealedSenderDecryptionResult, SealedSenderV2SentMessage, SealedSenderV2SentMessageRecipient,
71 SenderCertificate, ServerCertificate, UnidentifiedSenderMessageContent,
72};
73pub use sender_keys::SenderKeyRecord;
74pub use session::{process_prekey, process_prekey_bundle};
75pub use session_cipher::{
76 message_decrypt, message_decrypt_prekey, message_decrypt_signal, message_encrypt,
77};
78pub use state::{
79 GenericSignedPreKey, KyberPreKeyId, KyberPreKeyRecord, PreKeyBundle, PreKeyBundleContent,
80 PreKeyId, PreKeyRecord, SessionRecord, SignedPreKeyId, SignedPreKeyRecord,
81};
82pub use storage::{
83 Direction, IdentityKeyStore, InMemIdentityKeyStore, InMemKyberPreKeyStore, InMemPreKeyStore,
84 InMemSenderKeyStore, InMemSessionStore, InMemSignalProtocolStore, InMemSignedPreKeyStore,
85 KyberPreKeyStore, PreKeyStore, ProtocolStore, SenderKeyStore, SessionStore, SignedPreKeyStore,
86};
87pub use timestamp::Timestamp;