Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/python-nbxmpp.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hörist <philipp@hoerist.com>2019-02-11 23:01:07 +0300
committerPhilipp Hörist <philipp@hoerist.com>2019-02-11 23:01:07 +0300
commitdeba718091f4702f50dc8e3e60f104094d57e616 (patch)
treeb0d15849ff41ce29c2326b3f26451ac77493584e /nbxmpp/structs.py
parentf45a1278e5af01ac268e0a7c97e3498f9bb88030 (diff)
Add OMEMO (XEP-0384) module
Diffstat (limited to 'nbxmpp/structs.py')
-rw-r--r--nbxmpp/structs.py14
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