diff options
author | Philipp Hörist <philipp@hoerist.com> | 2019-02-11 23:01:07 +0300 |
---|---|---|
committer | Philipp Hörist <philipp@hoerist.com> | 2019-02-11 23:01:07 +0300 |
commit | deba718091f4702f50dc8e3e60f104094d57e616 (patch) | |
tree | b0d15849ff41ce29c2326b3f26451ac77493584e /nbxmpp/structs.py | |
parent | f45a1278e5af01ac268e0a7c97e3498f9bb88030 (diff) |
Add OMEMO (XEP-0384) module
Diffstat (limited to 'nbxmpp/structs.py')
-rw-r--r-- | nbxmpp/structs.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/nbxmpp/structs.py b/nbxmpp/structs.py index d22d5b6..e409005 100644 --- a/nbxmpp/structs.py +++ b/nbxmpp/structs.py @@ -16,6 +16,7 @@ # along with this program; If not, see <http://www.gnu.org/licenses/>. import time +import random from collections import namedtuple from nbxmpp.protocol import JID @@ -82,6 +83,13 @@ PGPPublicKey = namedtuple('PGPPublicKey', 'jid key date') PGPKeyMetadata = namedtuple('PGPKeyMetadata', 'jid fingerprint date') +OMEMOMessage = namedtuple('OMEMOMessage', 'sid iv keys payload') + + +class OMEMOBundle(namedtuple('OMEMOBundle', 'spk spk_signature ik otpks')): + def pick_prekey(self): + return random.SystemRandom().choice(self.otpks) + class CommonError(namedtuple('CommonError', 'type message')): def __str__(self): @@ -146,6 +154,7 @@ class MessageProperties: self.muc_invite = None self.muc_decline = None self.muc_user = None + self.muc_ofrom = None self.captcha = None self.voice_request = None self.self_message = False @@ -153,6 +162,7 @@ class MessageProperties: self.pubsub = False self.pubsub_event = None self.openpgp = None + self.omemo = None self.encrypted = None @property @@ -160,6 +170,10 @@ class MessageProperties: return self.encrypted is not None @property + def is_omemo(self): + return self.omemo is not None + + @property def is_openpgp(self): return self.openpgp is not None |