├── .gitignore ├── CREDITS.md ├── LICENSE ├── README.md ├── cipher └── Cipher.go ├── ecc ├── Curve.go ├── DjbECPublicKey.go ├── DkbECPrivateKey.go ├── Doc.go ├── ECKeyPair.go ├── ECPrivateKey.go ├── ECPublicKey.go └── SignCurve25519.go ├── fingerprint ├── DisplayFingerprint.go ├── Doc.go ├── Fingerprint.go └── FingerprintGenerator.go ├── groups ├── GroupCipher.go ├── GroupSessionBuilder.go ├── ratchet │ ├── Doc.go │ ├── SenderChainKey.go │ └── SenderMessageKey.go └── state │ ├── record │ ├── Doc.go │ ├── SenderKeyRecord.go │ └── SenderKeyState.go │ └── store │ ├── Doc.go │ └── SenderKeyStore.go ├── kdf └── HKDF.go ├── keys ├── chain │ └── ChainKey.go ├── identity │ ├── IdentityKey.go │ └── IdentityKeyPair.go ├── message │ └── MessageKey.go ├── prekey │ └── PreKeyBundle.go ├── root │ └── RootKey.go └── session │ ├── DerivedSecrets.go │ └── Pair.go ├── logger ├── DefaultLogger.go └── Logger.go ├── protocol ├── CiphertextMessage.go ├── Doc.go ├── PreKeySignalMessage.go ├── SenderKeyDistributionMessage.go ├── SenderKeyMessage.go ├── SenderKeyName.go ├── SignalMessage.go └── SignalProtocolAddress.go ├── ratchet ├── Ratchet.go ├── ReceiverParameters.go ├── SenderParameters.go └── SymmetricParameters.go ├── serialize ├── JSONSerializer.go └── Serializer.go ├── session ├── Session.go └── SessionCipher.go ├── state ├── record │ ├── ChainState.go │ ├── Doc.go │ ├── PendingKeyExchangeState.go │ ├── PendingPreKeyState.go │ ├── PreKeyRecord.go │ ├── SessionRecord.go │ ├── SessionState.go │ ├── SignedPreKeyRecord.go │ └── UnacknowledgedPreKey.go └── store │ ├── Doc.go │ ├── IdentityKeyStore.go │ ├── MessageKeyStore.go │ ├── PreKeyStore.go │ ├── SessionStore.go │ ├── SignalProtocolStore.go │ └── SignedPreKeyStore.go ├── tests ├── fingerprint_test.go ├── group_test.go ├── identity_test.go ├── prekey_test.go ├── registrationid_test.go ├── saved_message_keys_test.go ├── serializer.go ├── serializer_test.go ├── session_test.go ├── sharedsecret_test.go ├── stores.go └── user.go └── util ├── bytehelper └── ByteHelper.go ├── errorhelper └── ErrorHelper.go ├── keyhelper └── KeyHelper.go ├── medium └── Medium.go └── optional └── Integer.go /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/.gitignore -------------------------------------------------------------------------------- /CREDITS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/CREDITS.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/README.md -------------------------------------------------------------------------------- /cipher/Cipher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/cipher/Cipher.go -------------------------------------------------------------------------------- /ecc/Curve.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/ecc/Curve.go -------------------------------------------------------------------------------- /ecc/DjbECPublicKey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/ecc/DjbECPublicKey.go -------------------------------------------------------------------------------- /ecc/DkbECPrivateKey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/ecc/DkbECPrivateKey.go -------------------------------------------------------------------------------- /ecc/Doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/ecc/Doc.go -------------------------------------------------------------------------------- /ecc/ECKeyPair.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/ecc/ECKeyPair.go -------------------------------------------------------------------------------- /ecc/ECPrivateKey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/ecc/ECPrivateKey.go -------------------------------------------------------------------------------- /ecc/ECPublicKey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/ecc/ECPublicKey.go -------------------------------------------------------------------------------- /ecc/SignCurve25519.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/ecc/SignCurve25519.go -------------------------------------------------------------------------------- /fingerprint/DisplayFingerprint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/fingerprint/DisplayFingerprint.go -------------------------------------------------------------------------------- /fingerprint/Doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/fingerprint/Doc.go -------------------------------------------------------------------------------- /fingerprint/Fingerprint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/fingerprint/Fingerprint.go -------------------------------------------------------------------------------- /fingerprint/FingerprintGenerator.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/fingerprint/FingerprintGenerator.go -------------------------------------------------------------------------------- /groups/GroupCipher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/groups/GroupCipher.go -------------------------------------------------------------------------------- /groups/GroupSessionBuilder.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/groups/GroupSessionBuilder.go -------------------------------------------------------------------------------- /groups/ratchet/Doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/groups/ratchet/Doc.go -------------------------------------------------------------------------------- /groups/ratchet/SenderChainKey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/groups/ratchet/SenderChainKey.go -------------------------------------------------------------------------------- /groups/ratchet/SenderMessageKey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/groups/ratchet/SenderMessageKey.go -------------------------------------------------------------------------------- /groups/state/record/Doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/groups/state/record/Doc.go -------------------------------------------------------------------------------- /groups/state/record/SenderKeyRecord.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/groups/state/record/SenderKeyRecord.go -------------------------------------------------------------------------------- /groups/state/record/SenderKeyState.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/groups/state/record/SenderKeyState.go -------------------------------------------------------------------------------- /groups/state/store/Doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/groups/state/store/Doc.go -------------------------------------------------------------------------------- /groups/state/store/SenderKeyStore.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/groups/state/store/SenderKeyStore.go -------------------------------------------------------------------------------- /kdf/HKDF.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/kdf/HKDF.go -------------------------------------------------------------------------------- /keys/chain/ChainKey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/keys/chain/ChainKey.go -------------------------------------------------------------------------------- /keys/identity/IdentityKey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/keys/identity/IdentityKey.go -------------------------------------------------------------------------------- /keys/identity/IdentityKeyPair.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/keys/identity/IdentityKeyPair.go -------------------------------------------------------------------------------- /keys/message/MessageKey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/keys/message/MessageKey.go -------------------------------------------------------------------------------- /keys/prekey/PreKeyBundle.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/keys/prekey/PreKeyBundle.go -------------------------------------------------------------------------------- /keys/root/RootKey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/keys/root/RootKey.go -------------------------------------------------------------------------------- /keys/session/DerivedSecrets.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/keys/session/DerivedSecrets.go -------------------------------------------------------------------------------- /keys/session/Pair.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/keys/session/Pair.go -------------------------------------------------------------------------------- /logger/DefaultLogger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/logger/DefaultLogger.go -------------------------------------------------------------------------------- /logger/Logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/logger/Logger.go -------------------------------------------------------------------------------- /protocol/CiphertextMessage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/protocol/CiphertextMessage.go -------------------------------------------------------------------------------- /protocol/Doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/protocol/Doc.go -------------------------------------------------------------------------------- /protocol/PreKeySignalMessage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/protocol/PreKeySignalMessage.go -------------------------------------------------------------------------------- /protocol/SenderKeyDistributionMessage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/protocol/SenderKeyDistributionMessage.go -------------------------------------------------------------------------------- /protocol/SenderKeyMessage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/protocol/SenderKeyMessage.go -------------------------------------------------------------------------------- /protocol/SenderKeyName.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/protocol/SenderKeyName.go -------------------------------------------------------------------------------- /protocol/SignalMessage.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/protocol/SignalMessage.go -------------------------------------------------------------------------------- /protocol/SignalProtocolAddress.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/protocol/SignalProtocolAddress.go -------------------------------------------------------------------------------- /ratchet/Ratchet.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/ratchet/Ratchet.go -------------------------------------------------------------------------------- /ratchet/ReceiverParameters.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/ratchet/ReceiverParameters.go -------------------------------------------------------------------------------- /ratchet/SenderParameters.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/ratchet/SenderParameters.go -------------------------------------------------------------------------------- /ratchet/SymmetricParameters.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/ratchet/SymmetricParameters.go -------------------------------------------------------------------------------- /serialize/JSONSerializer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/serialize/JSONSerializer.go -------------------------------------------------------------------------------- /serialize/Serializer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/serialize/Serializer.go -------------------------------------------------------------------------------- /session/Session.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/session/Session.go -------------------------------------------------------------------------------- /session/SessionCipher.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/session/SessionCipher.go -------------------------------------------------------------------------------- /state/record/ChainState.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/record/ChainState.go -------------------------------------------------------------------------------- /state/record/Doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/record/Doc.go -------------------------------------------------------------------------------- /state/record/PendingKeyExchangeState.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/record/PendingKeyExchangeState.go -------------------------------------------------------------------------------- /state/record/PendingPreKeyState.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/record/PendingPreKeyState.go -------------------------------------------------------------------------------- /state/record/PreKeyRecord.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/record/PreKeyRecord.go -------------------------------------------------------------------------------- /state/record/SessionRecord.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/record/SessionRecord.go -------------------------------------------------------------------------------- /state/record/SessionState.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/record/SessionState.go -------------------------------------------------------------------------------- /state/record/SignedPreKeyRecord.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/record/SignedPreKeyRecord.go -------------------------------------------------------------------------------- /state/record/UnacknowledgedPreKey.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/record/UnacknowledgedPreKey.go -------------------------------------------------------------------------------- /state/store/Doc.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/store/Doc.go -------------------------------------------------------------------------------- /state/store/IdentityKeyStore.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/store/IdentityKeyStore.go -------------------------------------------------------------------------------- /state/store/MessageKeyStore.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/store/MessageKeyStore.go -------------------------------------------------------------------------------- /state/store/PreKeyStore.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/store/PreKeyStore.go -------------------------------------------------------------------------------- /state/store/SessionStore.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/store/SessionStore.go -------------------------------------------------------------------------------- /state/store/SignalProtocolStore.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/store/SignalProtocolStore.go -------------------------------------------------------------------------------- /state/store/SignedPreKeyStore.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/state/store/SignedPreKeyStore.go -------------------------------------------------------------------------------- /tests/fingerprint_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/tests/fingerprint_test.go -------------------------------------------------------------------------------- /tests/group_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/tests/group_test.go -------------------------------------------------------------------------------- /tests/identity_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/tests/identity_test.go -------------------------------------------------------------------------------- /tests/prekey_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/tests/prekey_test.go -------------------------------------------------------------------------------- /tests/registrationid_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/tests/registrationid_test.go -------------------------------------------------------------------------------- /tests/saved_message_keys_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/tests/saved_message_keys_test.go -------------------------------------------------------------------------------- /tests/serializer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/tests/serializer.go -------------------------------------------------------------------------------- /tests/serializer_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/tests/serializer_test.go -------------------------------------------------------------------------------- /tests/session_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/tests/session_test.go -------------------------------------------------------------------------------- /tests/sharedsecret_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/tests/sharedsecret_test.go -------------------------------------------------------------------------------- /tests/stores.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/tests/stores.go -------------------------------------------------------------------------------- /tests/user.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/tests/user.go -------------------------------------------------------------------------------- /util/bytehelper/ByteHelper.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/util/bytehelper/ByteHelper.go -------------------------------------------------------------------------------- /util/errorhelper/ErrorHelper.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/util/errorhelper/ErrorHelper.go -------------------------------------------------------------------------------- /util/keyhelper/KeyHelper.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/util/keyhelper/KeyHelper.go -------------------------------------------------------------------------------- /util/medium/Medium.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/util/medium/Medium.go -------------------------------------------------------------------------------- /util/optional/Integer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RadicalApp/libsignal-protocol-go/HEAD/util/optional/Integer.go --------------------------------------------------------------------------------