├── .github ├── CODEOWNERS ├── dependabot.yml └── workflows │ └── ci.yml ├── .gitignore ├── LICENSE ├── README.md ├── make └── proto.mk └── protocol ├── Makefile ├── address └── address.go ├── crypto └── aes │ ├── aes.go │ └── aes_test.go ├── curve ├── curve25519 │ ├── curve25519.go │ ├── curve25519_test.go │ └── util.go ├── djb_private.go ├── djb_public.go ├── doc.go ├── keytype.go ├── pair.go ├── pair_test.go ├── private.go ├── public.go └── public_test.go ├── direction └── direction.go ├── distribution └── id.go ├── fingerprint ├── displayable.go ├── encode.go ├── fingerprint.go ├── fingerprint_test.go ├── scannable.go └── scannable_test.go ├── generated └── v1 │ ├── fingerprint.pb.go │ ├── sealed_sender.pb.go │ ├── storage.pb.go │ └── wire.pb.go ├── go.mod ├── go.sum ├── identity ├── keys.go ├── keys_test.go ├── store.go └── store_inmem.go ├── internal ├── pointer │ └── pointer.go └── tools │ └── tools.go ├── message ├── ciphertext.go ├── ciphertexttype_string.go ├── mac.go ├── plaintext.go ├── prekey.go ├── prekey_test.go ├── senderkey.go ├── senderkey_test.go ├── signal.go └── signal_test.go ├── perrors └── errors.go ├── prekey ├── bundle.go ├── prekey.go ├── signed.go ├── store.go └── store_inmem.go ├── proto └── v1 │ ├── fingerprint.proto │ ├── sealed_sender.proto │ ├── storage.proto │ └── wire.proto ├── protocol ├── store.go └── store_inmem.go ├── ratchet ├── keys.go ├── keys_test.go ├── params.go └── ratchet.go ├── senderkey └── keys.go ├── session ├── cipher.go ├── group_cipher.go ├── group_record.go ├── group_record_test.go ├── group_session.go ├── group_state.go ├── record.go ├── session.go ├── state.go ├── store.go └── store_inmem.go └── tests ├── group_session_test.go ├── ratchet_test.go ├── session_test.go └── util_test.go /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | @RTann 2 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/README.md -------------------------------------------------------------------------------- /make/proto.mk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/make/proto.mk -------------------------------------------------------------------------------- /protocol/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/Makefile -------------------------------------------------------------------------------- /protocol/address/address.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/address/address.go -------------------------------------------------------------------------------- /protocol/crypto/aes/aes.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/crypto/aes/aes.go -------------------------------------------------------------------------------- /protocol/crypto/aes/aes_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/crypto/aes/aes_test.go -------------------------------------------------------------------------------- /protocol/curve/curve25519/curve25519.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/curve/curve25519/curve25519.go -------------------------------------------------------------------------------- /protocol/curve/curve25519/curve25519_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/curve/curve25519/curve25519_test.go -------------------------------------------------------------------------------- /protocol/curve/curve25519/util.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/curve/curve25519/util.go -------------------------------------------------------------------------------- /protocol/curve/djb_private.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/curve/djb_private.go -------------------------------------------------------------------------------- /protocol/curve/djb_public.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/curve/djb_public.go -------------------------------------------------------------------------------- /protocol/curve/doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/curve/doc.go -------------------------------------------------------------------------------- /protocol/curve/keytype.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/curve/keytype.go -------------------------------------------------------------------------------- /protocol/curve/pair.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/curve/pair.go -------------------------------------------------------------------------------- /protocol/curve/pair_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/curve/pair_test.go -------------------------------------------------------------------------------- /protocol/curve/private.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/curve/private.go -------------------------------------------------------------------------------- /protocol/curve/public.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/curve/public.go -------------------------------------------------------------------------------- /protocol/curve/public_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/curve/public_test.go -------------------------------------------------------------------------------- /protocol/direction/direction.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/direction/direction.go -------------------------------------------------------------------------------- /protocol/distribution/id.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/distribution/id.go -------------------------------------------------------------------------------- /protocol/fingerprint/displayable.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/fingerprint/displayable.go -------------------------------------------------------------------------------- /protocol/fingerprint/encode.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/fingerprint/encode.go -------------------------------------------------------------------------------- /protocol/fingerprint/fingerprint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/fingerprint/fingerprint.go -------------------------------------------------------------------------------- /protocol/fingerprint/fingerprint_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/fingerprint/fingerprint_test.go -------------------------------------------------------------------------------- /protocol/fingerprint/scannable.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/fingerprint/scannable.go -------------------------------------------------------------------------------- /protocol/fingerprint/scannable_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/fingerprint/scannable_test.go -------------------------------------------------------------------------------- /protocol/generated/v1/fingerprint.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/generated/v1/fingerprint.pb.go -------------------------------------------------------------------------------- /protocol/generated/v1/sealed_sender.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/generated/v1/sealed_sender.pb.go -------------------------------------------------------------------------------- /protocol/generated/v1/storage.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/generated/v1/storage.pb.go -------------------------------------------------------------------------------- /protocol/generated/v1/wire.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/generated/v1/wire.pb.go -------------------------------------------------------------------------------- /protocol/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/go.mod -------------------------------------------------------------------------------- /protocol/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/go.sum -------------------------------------------------------------------------------- /protocol/identity/keys.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/identity/keys.go -------------------------------------------------------------------------------- /protocol/identity/keys_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/identity/keys_test.go -------------------------------------------------------------------------------- /protocol/identity/store.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/identity/store.go -------------------------------------------------------------------------------- /protocol/identity/store_inmem.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/identity/store_inmem.go -------------------------------------------------------------------------------- /protocol/internal/pointer/pointer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/internal/pointer/pointer.go -------------------------------------------------------------------------------- /protocol/internal/tools/tools.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/internal/tools/tools.go -------------------------------------------------------------------------------- /protocol/message/ciphertext.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/message/ciphertext.go -------------------------------------------------------------------------------- /protocol/message/ciphertexttype_string.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/message/ciphertexttype_string.go -------------------------------------------------------------------------------- /protocol/message/mac.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/message/mac.go -------------------------------------------------------------------------------- /protocol/message/plaintext.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/message/plaintext.go -------------------------------------------------------------------------------- /protocol/message/prekey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/message/prekey.go -------------------------------------------------------------------------------- /protocol/message/prekey_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/message/prekey_test.go -------------------------------------------------------------------------------- /protocol/message/senderkey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/message/senderkey.go -------------------------------------------------------------------------------- /protocol/message/senderkey_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/message/senderkey_test.go -------------------------------------------------------------------------------- /protocol/message/signal.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/message/signal.go -------------------------------------------------------------------------------- /protocol/message/signal_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/message/signal_test.go -------------------------------------------------------------------------------- /protocol/perrors/errors.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/perrors/errors.go -------------------------------------------------------------------------------- /protocol/prekey/bundle.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/prekey/bundle.go -------------------------------------------------------------------------------- /protocol/prekey/prekey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/prekey/prekey.go -------------------------------------------------------------------------------- /protocol/prekey/signed.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/prekey/signed.go -------------------------------------------------------------------------------- /protocol/prekey/store.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/prekey/store.go -------------------------------------------------------------------------------- /protocol/prekey/store_inmem.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/prekey/store_inmem.go -------------------------------------------------------------------------------- /protocol/proto/v1/fingerprint.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/proto/v1/fingerprint.proto -------------------------------------------------------------------------------- /protocol/proto/v1/sealed_sender.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/proto/v1/sealed_sender.proto -------------------------------------------------------------------------------- /protocol/proto/v1/storage.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/proto/v1/storage.proto -------------------------------------------------------------------------------- /protocol/proto/v1/wire.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/proto/v1/wire.proto -------------------------------------------------------------------------------- /protocol/protocol/store.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/protocol/store.go -------------------------------------------------------------------------------- /protocol/protocol/store_inmem.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/protocol/store_inmem.go -------------------------------------------------------------------------------- /protocol/ratchet/keys.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/ratchet/keys.go -------------------------------------------------------------------------------- /protocol/ratchet/keys_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/ratchet/keys_test.go -------------------------------------------------------------------------------- /protocol/ratchet/params.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/ratchet/params.go -------------------------------------------------------------------------------- /protocol/ratchet/ratchet.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/ratchet/ratchet.go -------------------------------------------------------------------------------- /protocol/senderkey/keys.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/senderkey/keys.go -------------------------------------------------------------------------------- /protocol/session/cipher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/session/cipher.go -------------------------------------------------------------------------------- /protocol/session/group_cipher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/session/group_cipher.go -------------------------------------------------------------------------------- /protocol/session/group_record.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/session/group_record.go -------------------------------------------------------------------------------- /protocol/session/group_record_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/session/group_record_test.go -------------------------------------------------------------------------------- /protocol/session/group_session.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/session/group_session.go -------------------------------------------------------------------------------- /protocol/session/group_state.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/session/group_state.go -------------------------------------------------------------------------------- /protocol/session/record.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/session/record.go -------------------------------------------------------------------------------- /protocol/session/session.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/session/session.go -------------------------------------------------------------------------------- /protocol/session/state.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/session/state.go -------------------------------------------------------------------------------- /protocol/session/store.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/session/store.go -------------------------------------------------------------------------------- /protocol/session/store_inmem.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/session/store_inmem.go -------------------------------------------------------------------------------- /protocol/tests/group_session_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/tests/group_session_test.go -------------------------------------------------------------------------------- /protocol/tests/ratchet_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/tests/ratchet_test.go -------------------------------------------------------------------------------- /protocol/tests/session_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/tests/session_test.go -------------------------------------------------------------------------------- /protocol/tests/util_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTann/libsignal-go/HEAD/protocol/tests/util_test.go --------------------------------------------------------------------------------