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

Reply via email to