plugin XEP-0384: specific warning on missing omemo-backend-signal + fixed encoding following Python 3 port
This commit is contained in:
parent
3d7cda8eb5
commit
ad1ec9698c
2 changed files with 16 additions and 12 deletions
|
|
@ -21,7 +21,6 @@ from sat.core.i18n import _, D_
|
|||
from sat.core.constants import Const as C
|
||||
from sat.core.log import getLogger
|
||||
from sat.core import exceptions
|
||||
from omemo import exceptions as omemo_excpt
|
||||
from twisted.internet import defer
|
||||
from twisted.words.xish import domish
|
||||
from twisted.words.protocols.jabber import jid
|
||||
|
|
@ -34,14 +33,20 @@ import random
|
|||
import base64
|
||||
try:
|
||||
import omemo
|
||||
from omemo import exceptions as omemo_excpt
|
||||
from omemo.extendedpublicbundle import ExtendedPublicBundle
|
||||
from omemo_backend_signal import BACKEND as omemo_backend
|
||||
# from omemo import wireformat
|
||||
except ImportError as e:
|
||||
except ImportError:
|
||||
raise exceptions.MissingModule(
|
||||
'Missing module omemo, please download/install it. You can use '
|
||||
'"pip install omemo"'
|
||||
)
|
||||
try:
|
||||
from omemo_backend_signal import BACKEND as omemo_backend
|
||||
except ImportError:
|
||||
raise exceptions.MissingModule(
|
||||
'Missing module omemo-backend-signal, please download/install it. You can use '
|
||||
'"pip install omemo-backend-signal"'
|
||||
)
|
||||
|
||||
log = getLogger(__name__)
|
||||
|
||||
|
|
@ -335,7 +340,7 @@ class OmemoSession(object):
|
|||
bundles = {e.userhost(): v for e, v in bundles.items()}
|
||||
encrypt_mess_p = self._session.encryptMessage(
|
||||
bare_jids=bare_jids,
|
||||
plaintext=message.encode('utf-8'),
|
||||
plaintext=message.encode(),
|
||||
bundles=bundles,
|
||||
expect_problems=expect_problems)
|
||||
return promise2Deferred(encrypt_mess_p)
|
||||
|
|
@ -425,8 +430,6 @@ class OMEMO(object):
|
|||
expect_problems.setdefault(data.bare_jid, set()).add(data.device)
|
||||
defer.returnValue({})
|
||||
|
||||
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def getTrustUI(self, client, entity_jid=None, trust_data=None, submit_id=None):
|
||||
"""Generate a XMLUI to manage trust
|
||||
|
|
@ -512,7 +515,7 @@ class OMEMO(object):
|
|||
xmlui.addLabel(D_("This device ID"))
|
||||
xmlui.addText(str(client._xep_0384_device_id))
|
||||
xmlui.addLabel(D_("This device fingerprint"))
|
||||
ik_hex = session.public_bundle.ik.encode('hex').upper()
|
||||
ik_hex = session.public_bundle.ik.hex().upper()
|
||||
fp_human = ' '.join([ik_hex[i:i+8] for i in range(0, len(ik_hex), 8)])
|
||||
xmlui.addText(fp_human)
|
||||
xmlui.addEmpty()
|
||||
|
|
@ -525,7 +528,7 @@ class OMEMO(object):
|
|||
xmlui.addLabel(D_("Device ID"))
|
||||
xmlui.addText(str(data['device']))
|
||||
xmlui.addLabel(D_("Fingerprint"))
|
||||
ik_hex = data['ik'].encode('hex').upper()
|
||||
ik_hex = data['ik'].hex().upper()
|
||||
fp_human = ' '.join([ik_hex[i:i+8] for i in range(0, len(ik_hex), 8)])
|
||||
xmlui.addText(fp_human)
|
||||
xmlui.addLabel(D_("Trust this device?"))
|
||||
|
|
@ -904,7 +907,7 @@ class OMEMO(object):
|
|||
break
|
||||
except Exception as e:
|
||||
msg = _("Can't encrypt message for {entity}: {reason}".format(
|
||||
entity=entity_bare_jid.full(), reason=str(e).decode('utf-8', 'replace')))
|
||||
entity=entity_bare_jid.full(), reason=e))
|
||||
log.warning(msg)
|
||||
extra = {C.MESS_EXTRA_INFO: C.EXTRA_INFO_ENCR_ERR}
|
||||
client.feedback(entity_bare_jid, msg, extra)
|
||||
|
|
@ -959,7 +962,7 @@ class OMEMO(object):
|
|||
"for our device (device_id: {device_id}, fingerprint: "
|
||||
"{fingerprint}): {xml}").format(
|
||||
device_id=device_id,
|
||||
fingerprint=omemo_session.public_bundle.ik.encode('hex'),
|
||||
fingerprint=omemo_session.public_bundle.ik.hex().upper(),
|
||||
xml=encrypted_elt.toXml()))
|
||||
user_msg = (D_("An OMEMO message from {sender} has not been encrypted for "
|
||||
"our device, we can't decrypt it").format(
|
||||
|
|
@ -995,6 +998,7 @@ class OMEMO(object):
|
|||
plaintext = yield omemo_session.decryptMessage(**kwargs)
|
||||
else:
|
||||
post_treat.addCallback(client.encryption.markAsTrusted)
|
||||
plaintext = plaintext.decode()
|
||||
except Exception as e:
|
||||
log.warning(_("Can't decrypt message: {reason}\n{xml}").format(
|
||||
reason=e, xml=message_elt.toXml()))
|
||||
|
|
|
|||
2
setup.py
2
setup.py
|
|
@ -49,7 +49,7 @@ install_requires = [
|
|||
'urwid-satext >= 0.7.0a2',
|
||||
'wokkel >= 0.7.1',
|
||||
'omemo',
|
||||
'omemo_backend_signal',
|
||||
'omemo-backend-signal',
|
||||
]
|
||||
|
||||
DBUS_DIR = 'dbus-1/services'
|
||||
|
|
|
|||
Loading…
Reference in a new issue