From 89dbc5a844930da4d769355ad105a0186c6448cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Sat, 30 Jun 2018 22:31:56 +0200 Subject: [PATCH] [omemo] Allow MUC conversations without other participants Fixes #267 --- omemo/omemo/state.py | 12 ++++-------- omemo/omemoplugin.py | 3 --- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/omemo/omemo/state.py b/omemo/omemo/state.py index cf3391d..4086635 100644 --- a/omemo/omemo/state.py +++ b/omemo/omemo/state.py @@ -281,10 +281,6 @@ class OmemoState: devices_list = self.device_list_for(jid, True) - if len(devices_list) == 0: - log.error('No known devices') - return - payload, tag = encrypt(key, iv, plaintext) key += tag @@ -315,10 +311,6 @@ class OmemoState: log.warning('Failed to find key for device ' + str(rid)) encrypted_jids.append(jid_to) - if len(encrypted_keys) == 0: - log_msg = 'Encrypted keys empty' - log.error(log_msg) - raise NoValidSessions(log_msg) my_other_devices = set(self.own_devices) - set({self.own_device_id}) # Encrypt the message key with for each of our own devices @@ -336,6 +328,10 @@ class OmemoState: log.exception('ERROR:') log.warning('Failed to find key for device ' + str(dev)) + if not encrypted_keys: + log.error('Encrypted keys empty') + raise NoValidSessions('Encrypted keys empty') + result = {'sid': self.own_device_id, 'keys': encrypted_keys, 'jid': jid, diff --git a/omemo/omemoplugin.py b/omemo/omemoplugin.py index 3e569bd..cd59868 100644 --- a/omemo/omemoplugin.py +++ b/omemo/omemoplugin.py @@ -236,11 +236,8 @@ class OmemoPlugin(GajimPlugin): if isinstance(chat_control, GroupchatControl): room = chat_control.room_jid missing = True - own_jid = app.get_jid_from_account(account) for nick in con.groupchat[room]: real_jid = con.groupchat[room][nick] - if real_jid == own_jid: - continue if not con.are_keys_missing(real_jid): missing = False if missing: