├── .github ├── ISSUE_TEMPLATE │ └── bug_report.md └── workflows │ ├── ci.yaml │ └── pages.yaml ├── .gitignore ├── .gitmodules ├── Cargo.toml ├── LICENSE.md ├── README.md ├── libsignal-protocol-sys ├── Cargo.toml ├── bindings.rs ├── build.rs ├── lib.rs ├── tests │ └── smoke_test.rs └── wrapper.h ├── libsignal-protocol ├── Cargo.toml ├── examples │ ├── generate_keys.rs │ └── sessions.rs ├── src │ ├── address.rs │ ├── buffer.rs │ ├── context.rs │ ├── crypto │ │ ├── mod.rs │ │ ├── native.rs │ │ └── openssl.rs │ ├── errors.rs │ ├── hkdf.rs │ ├── keys │ │ ├── identity_key_pair.rs │ │ ├── key_pair.rs │ │ ├── mod.rs │ │ ├── pre_key.rs │ │ ├── pre_key_list.rs │ │ ├── private.rs │ │ ├── public.rs │ │ └── signed_pre_key.rs │ ├── lib.rs │ ├── macros.rs │ ├── messages │ │ ├── ciphertext_message.rs │ │ ├── mod.rs │ │ ├── pre_key_signal_message.rs │ │ └── signal_message.rs │ ├── pre_key_bundle.rs │ ├── raw_ptr.rs │ ├── session_builder.rs │ ├── session_cipher.rs │ ├── session_record.rs │ ├── session_state.rs │ ├── store_context.rs │ └── stores │ │ ├── identity_key_store.rs │ │ ├── in_memory_identity_key_store.rs │ │ ├── in_memory_pre_key_stores.rs │ │ ├── in_memory_session_store.rs │ │ ├── mod.rs │ │ ├── pre_key_store.rs │ │ ├── session_store.rs │ │ └── signed_pre_key_store.rs └── tests │ ├── helpers │ └── mod.rs │ └── libsignal-protocol-c-tests.rs ├── rust-toolchain ├── rustfmt.toml └── scripts ├── generate_bindings.sh └── valgrind.py /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.github/workflows/pages.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/.github/workflows/pages.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | 3 | Cargo.lock 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/.gitmodules -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/README.md -------------------------------------------------------------------------------- /libsignal-protocol-sys/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol-sys/Cargo.toml -------------------------------------------------------------------------------- /libsignal-protocol-sys/bindings.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol-sys/bindings.rs -------------------------------------------------------------------------------- /libsignal-protocol-sys/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol-sys/build.rs -------------------------------------------------------------------------------- /libsignal-protocol-sys/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol-sys/lib.rs -------------------------------------------------------------------------------- /libsignal-protocol-sys/tests/smoke_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol-sys/tests/smoke_test.rs -------------------------------------------------------------------------------- /libsignal-protocol-sys/wrapper.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol-sys/wrapper.h -------------------------------------------------------------------------------- /libsignal-protocol/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/Cargo.toml -------------------------------------------------------------------------------- /libsignal-protocol/examples/generate_keys.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/examples/generate_keys.rs -------------------------------------------------------------------------------- /libsignal-protocol/examples/sessions.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/examples/sessions.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/address.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/address.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/buffer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/buffer.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/context.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/crypto/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/crypto/mod.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/crypto/native.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/crypto/native.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/crypto/openssl.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/crypto/openssl.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/errors.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/hkdf.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/hkdf.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/keys/identity_key_pair.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/keys/identity_key_pair.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/keys/key_pair.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/keys/key_pair.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/keys/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/keys/mod.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/keys/pre_key.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/keys/pre_key.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/keys/pre_key_list.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/keys/pre_key_list.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/keys/private.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/keys/private.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/keys/public.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/keys/public.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/keys/signed_pre_key.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/keys/signed_pre_key.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/lib.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/macros.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/macros.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/messages/ciphertext_message.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/messages/ciphertext_message.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/messages/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/messages/mod.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/messages/pre_key_signal_message.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/messages/pre_key_signal_message.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/messages/signal_message.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/messages/signal_message.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/pre_key_bundle.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/pre_key_bundle.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/raw_ptr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/raw_ptr.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/session_builder.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/session_builder.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/session_cipher.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/session_cipher.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/session_record.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/session_record.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/session_state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/session_state.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/store_context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/store_context.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/stores/identity_key_store.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/stores/identity_key_store.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/stores/in_memory_identity_key_store.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/stores/in_memory_identity_key_store.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/stores/in_memory_pre_key_stores.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/stores/in_memory_pre_key_stores.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/stores/in_memory_session_store.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/stores/in_memory_session_store.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/stores/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/stores/mod.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/stores/pre_key_store.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/stores/pre_key_store.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/stores/session_store.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/stores/session_store.rs -------------------------------------------------------------------------------- /libsignal-protocol/src/stores/signed_pre_key_store.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/src/stores/signed_pre_key_store.rs -------------------------------------------------------------------------------- /libsignal-protocol/tests/helpers/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/tests/helpers/mod.rs -------------------------------------------------------------------------------- /libsignal-protocol/tests/libsignal-protocol-c-tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/libsignal-protocol/tests/libsignal-protocol-c-tests.rs -------------------------------------------------------------------------------- /rust-toolchain: -------------------------------------------------------------------------------- 1 | stable 2 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/rustfmt.toml -------------------------------------------------------------------------------- /scripts/generate_bindings.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/scripts/generate_bindings.sh -------------------------------------------------------------------------------- /scripts/valgrind.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whisperfish/libsignal-protocol-rs/HEAD/scripts/valgrind.py --------------------------------------------------------------------------------