Philipp Hörist pushed to branch master at gajim / python-nbxmpp
Commits: 92b6173d by Philipp Hörist at 2019-02-24T08:48:53Z OpenPGP: Dont fail on empty keylist
Fixes #68
- - - - - f6f6895e by Philipp Hörist at 2019-02-24T16:20:17Z OMEMO: Add support for key transport messages
- - - - -
2 changed files:
- nbxmpp/modules/omemo.py - nbxmpp/modules/openpgp.py
Changes:
===================================== nbxmpp/modules/omemo.py ===================================== @@ -25,6 +25,7 @@ from nbxmpp.protocol import NS_EME from nbxmpp.protocol import NS_HINTS from nbxmpp.protocol import NodeProcessed from nbxmpp.protocol import Node +from nbxmpp.protocol import Message from nbxmpp.protocol import isResultNode from nbxmpp.protocol import StanzaMalformed from nbxmpp.util import call_on_response @@ -435,6 +436,25 @@ def create_omemo_message(stanza, omemo_message, store_hint=True, stanza.addChild(node=Node('store', attrs={'xmlns': NS_HINTS}))
+def get_key_transport_message(typ, jid, omemo_message): + message = Message(typ=typ, to=jid) + + encrypted = Node('encrypted', attrs={'xmlns': NS_OMEMO_TEMP}) + header = Node('header', attrs={'sid': omemo_message.sid}) + for rid, (key, prekey) in omemo_message.keys.items(): + attrs = {'rid': rid} + if prekey: + attrs['prekey'] = 'true' + child = header.addChild('key', attrs=attrs) + child.addData(b64encode(key)) + + header.addChild('iv').addData(b64encode(omemo_message.iv)) + encrypted.addChild(node=header) + + message.addChild(node=encrypted) + return message + + def cleanup_stanza(stanza, node_whitelist): whitelisted_nodes = [] for tag, ns in node_whitelist:
===================================== nbxmpp/modules/openpgp.py ===================================== @@ -128,6 +128,9 @@ class OpenPGP:
@staticmethod def _parse_keylist(jid, item): + if item is None: + return [] + keylist_node = item.getTag('public-keys-list', namespace=NS_OPENPGP) if keylist_node is None: raise StanzaMalformed('No public-keys-list node found')
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/compare/e83b5d4d07444224dcab693f56...