changeset fbafd0aa63e5 in /home/hg/repos/gajim-plugins
author: lovetox <[email protected]>
branches:
details:gajim-plugins?cmd=changeset;node=fbafd0aa63e5
description: Make fingerprint trust code more readable
diffstat:
omemo/omemo/liteidentitykeystore.py | 7 ++++++-
omemo/omemo/state.py | 20 +++++++++++---------
omemo/ui.py | 34 ++++++++++++++--------------------
3 files changed, 31 insertions(+), 30 deletions(-)
diffs (156 lines):
diff -r a9a2145446d0 -r fbafd0aa63e5 omemo/omemo/liteidentitykeystore.py
--- a/omemo/omemo/liteidentitykeystore.py Fri Jun 10 13:10:06 2016 +0200
+++ b/omemo/omemo/liteidentitykeystore.py Sat Jun 11 00:30:17 2016 +0200
@@ -150,4 +150,9 @@
c.execute(q, (recipientId, identityKey.getPublicKey().serialize()))
result = c.fetchone()
- return result[0] if result else None
+ states = [UNTRUSTED, TRUSTED, UNDECIDED]
+
+ if result[0] in states:
+ return result[0]
+ else:
+ return UNDECIDED
diff -r a9a2145446d0 -r fbafd0aa63e5 omemo/omemo/state.py
--- a/omemo/omemo/state.py Fri Jun 10 13:10:06 2016 +0200
+++ b/omemo/omemo/state.py Sat Jun 11 00:30:17 2016 +0200
@@ -41,6 +41,11 @@
log = logging.getLogger('gajim.plugin_system.omemo')
+UNTRUSTED = 0
+TRUSTED = 1
+UNDECIDED = 2
+
+
class OmemoState:
def __init__(self, own_jid, connection):
""" Instantiates an OmemoState object.
@@ -50,7 +55,6 @@
self.session_ciphers = {}
self.own_jid = own_jid
self.device_ids = {}
- self.trust = {None: "Not Set", 0: False, 1: True, 2: "Undecided"}
self.own_devices = []
self.store = LiteAxolotlStore(connection)
self.encryption = self.store.encryptionStore
@@ -222,14 +226,13 @@
# Encrypt the message key with for each of receivers devices
for rid, cipher in session_ciphers.items():
try:
- if self.trust[self.isTrusted(cipher)] is True:
+ if self.isTrusted(cipher) == TRUSTED:
encrypted_keys[rid] = cipher.encrypt(key).serialize()
else:
log.debug('Skipped Device because Trust is: ' +
- str(self.trust[self.isTrusted(cipher)]))
+ str(self.isTrusted(cipher)))
except:
- log.warn('Failed to find key for device ' + str(
- rid))
+ log.warn('Failed to find key for device ' + str(rid))
if len(encrypted_keys) == 0:
log_msg = 'Encrypted keys empty'
@@ -335,19 +338,18 @@
def handlePreKeyWhisperMessage(self, recipient_id, device_id, key):
preKeyWhisperMessage = PreKeyWhisperMessage(serialized=key)
sessionCipher = self.get_session_cipher(recipient_id, device_id)
- if self.trust[self.isTrusted(sessionCipher)] is not False:
+ if self.isTrusted(sessionCipher) != UNTRUSTED:
key = sessionCipher.decryptPkmsg(preKeyWhisperMessage)
log.debug('PreKeyWhisperMessage => ' + str(key))
return key
else:
raise Exception("Received PreKeyWhisperMessage from Untrusted
Fingerprint!")
-
def handleWhisperMessage(self, recipient_id, device_id, key):
whisperMessage = WhisperMessage(serialized=key)
sessionCipher = self.get_session_cipher(recipient_id, device_id)
- if (self.trust[self.isTrusted(sessionCipher)] is True) or \
- (self.trust[self.isTrusted(sessionCipher)] == "Undecided"):
+ if self.isTrusted(sessionCipher) == TRUSTED or \
+ self.isTrusted(sessionCipher) == UNDECIDED:
key = sessionCipher.decryptMsg(whisperMessage)
log.debug('WhisperMessage => ' + str(key))
return key
diff -r a9a2145446d0 -r fbafd0aa63e5 omemo/ui.py
--- a/omemo/ui.py Fri Jun 10 13:10:06 2016 +0200
+++ b/omemo/ui.py Sat Jun 11 00:30:17 2016 +0200
@@ -28,6 +28,7 @@
log = logging.getLogger('gajim.plugin_system.omemo')
+UNDECIDED = 2
TRUSTED = 1
UNTRUSTED = 0
@@ -270,7 +271,6 @@
gtk.Clipboard(selection='PRIMARY').set_text('\n'.join(fprs))
def update_context_list(self):
- trust = {None: "Not Set", 0: False, 1: True, 2: "Undecided"}
self.fpr_model.clear()
self.device_model.clear()
active = self.B.get_object('account_combobox').get_active()
@@ -288,17 +288,14 @@
_id, jid, fpr, tr = item
fpr = binascii.hexlify(fpr)
fpr = self.human_hash(fpr[2:])
- if trust[tr] is False:
- self.fpr_model.append((_id, jid, trust[tr],
+ if tr == UNTRUSTED:
+ self.fpr_model.append((_id, jid, 'False',
'<tt><span
foreground="#FF0040">%s</span></tt>' % fpr))
- elif trust[tr] is True:
- self.fpr_model.append((_id, jid, trust[tr],
+ elif tr == TRUSTED:
+ self.fpr_model.append((_id, jid, 'True',
'<tt><span
foreground="#2EFE2E">%s</span></tt>' % fpr))
- elif trust[tr] == "Not Set":
- self.fpr_model.append((_id, jid, trust[tr],
- '<tt><span
foreground="#FF0040">%s</span></tt>' % fpr))
- elif trust[tr] == "Undecided":
- self.fpr_model.append((_id, jid, trust[tr],
+ else:
+ self.fpr_model.append((_id, jid, 'Undecided',
'<tt><span
foreground="#FF8000">%s</span></tt>' % fpr))
for item in state.own_devices:
@@ -412,7 +409,6 @@
gtk.Clipboard(selection='PRIMARY').set_text('\n'.join(fprs))
def update_context_list(self):
- trust = {None: "Not Set", 0: False, 1: True, 2: "Undecided"}
self.fpr_model.clear()
state = self.plugin.get_omemo_state(self.contact.account.name)
@@ -427,19 +423,17 @@
_id, jid, fpr, tr = item
fpr = binascii.hexlify(fpr)
fpr = self.human_hash(fpr[2:])
- if trust[tr] is False:
- self.fpr_model.append((_id, jid, trust[tr],
+ if tr == UNTRUSTED:
+ self.fpr_model.append((_id, jid, 'False',
'<tt><span
foreground="#FF0040">%s</span></tt>' % fpr))
- elif trust[tr] is True:
- self.fpr_model.append((_id, jid, trust[tr],
+ elif tr == TRUSTED:
+ self.fpr_model.append((_id, jid, 'True',
'<tt><span
foreground="#2EFE2E">%s</span></tt>' % fpr))
- elif trust[tr] == "Not Set":
- self.fpr_model.append((_id, jid, trust[tr],
- '<tt><span
foreground="#FF0040">%s</span></tt>' % fpr))
- elif trust[tr] == "Undecided":
- self.fpr_model.append((_id, jid, trust[tr],
+ else:
+ self.fpr_model.append((_id, jid, 'Undecided',
'<tt><span
foreground="#FF8000">%s</span></tt>' % fpr))
+
def human_hash(self, fpr):
fpr = fpr.upper()
fplen = len(fpr)
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits