OMEMO - A Python implementation of the OMEMO Multi-End Message and Object Encryption protocol.
A Python implementation of the OMEMO Multi-End Message and Object Encryption protocol.
A complete implementation of XEP-0384 on protocol-level, i.e. more than just the cryptography. python-omemo supports different versions of the specification through so-called backends. A backend for OMEMO in the urn:xmpp:omemo:2
namespace (the most recent version of the specification) is available in the python-twomemo Python package. A backend for (legacy) OMEMO in the eu.siacs.conversations.axolotl
namespace is available in the python-oldmemo package. Multiple backends can be loaded and used at the same time, the library manages their coexistence transparently.
- Installation
- Getting Started
- Migration from Legacy
- API Documentation
- Module: backend
Backend
Backend.__init__()
Backend.max_num_per_session_skipped_keys
Backend.max_num_per_message_skipped_keys
Backend.namespace
Backend.load_session()
Backend.store_session()
Backend.build_session_active()
Backend.build_session_passive()
Backend.encrypt_plaintext()
Backend.encrypt_empty()
Backend.encrypt_key_material()
Backend.decrypt_plaintext()
Backend.decrypt_key_material()
Backend.signed_pre_key_age()
Backend.rotate_signed_pre_key()
Backend.hide_pre_key()
Backend.delete_pre_key()
Backend.delete_hidden_pre_keys()
Backend.get_num_visible_pre_keys()
Backend.generate_pre_keys()
Backend.get_bundle()
Backend.purge()
Backend.purge_bare_jid()
BackendException
DecryptionFailed
KeyExchangeFailed
TooManySkippedMessageKeys
- Module: bundle
- Module: identity_key_pair
- Module: message
- Module: session
- Module: session_manager
SessionManagerException
TrustDecisionFailed
StillUndecided
NoEligibleDevices
MessageNotForUs
SenderNotFound
SenderDistrusted
NoSession
PublicDataInconsistency
UnknownTrustLevel
UnknownNamespace
XMPPInteractionFailed
BundleUploadFailed
BundleDownloadFailed
BundleNotFound
BundleDeletionFailed
DeviceListUploadFailed
DeviceListDownloadFailed
MessageSendingFailed
SessionManager
SessionManager.DEVICE_ID_MIN
SessionManager.DEVICE_ID_MAX
SessionManager.STALENESS_MAGIC_NUMBER
SessionManager.LOG_TAG
SessionManager.create()
SessionManager.purge_backend()
SessionManager.purge_bare_jid()
SessionManager.ensure_data_consistency()
SessionManager._upload_bundle()
SessionManager._download_bundle()
SessionManager._delete_bundle()
SessionManager._upload_device_list()
SessionManager._download_device_list()
SessionManager._evaluate_custom_trust_level()
SessionManager._make_trust_decision()
SessionManager._send_message()
SessionManager.update_device_list()
SessionManager.refresh_device_list()
SessionManager.set_trust()
SessionManager.replace_sessions()
SessionManager.get_sending_chain_length()
SessionManager.set_own_label()
SessionManager.get_device_information()
SessionManager.get_own_device_information()
SessionManager.format_identity_key()
SessionManager.before_history_sync()
SessionManager.after_history_sync()
SessionManager.encrypt()
SessionManager.decrypt()
- Module: storage
- Module: types
- Module: backend