From b293abaa52bffa705f4012d9726296c21db482c8 Mon Sep 17 00:00:00 2001 From: Ruben Pollan Date: Thu, 12 May 2016 22:28:35 +0200 Subject: [bug] check if 'enabled' field exist in the Identity document - Related: #7961 --- src/leap/mx/couchdbhelper.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/leap') diff --git a/src/leap/mx/couchdbhelper.py b/src/leap/mx/couchdbhelper.py index e9cf4a4..f17466d 100644 --- a/src/leap/mx/couchdbhelper.py +++ b/src/leap/mx/couchdbhelper.py @@ -100,13 +100,14 @@ class ConnectedCouchDB(client.CouchDB): pubkey = None if result["rows"]: doc = result["rows"][0]["doc"] - if doc["enabled"]: + if "enabled" not in doc or doc["enabled"]: uuid = doc["user_id"] if "keys" in doc: pubkey = doc["keys"]["pgp"] return uuid, pubkey d.addCallback(_get_uuid_and_pubkey_cbk) + d.addErrback(lambda _: (None, None)) return d def getPubkey(self, uuid): -- cgit v1.2.3 From 800c2167ca332e7b59072a1c928cbb9ba996f369 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Thu, 12 May 2016 18:59:24 -0400 Subject: [style] improve readability --- src/leap/mx/couchdbhelper.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/leap') diff --git a/src/leap/mx/couchdbhelper.py b/src/leap/mx/couchdbhelper.py index f17466d..50275ca 100644 --- a/src/leap/mx/couchdbhelper.py +++ b/src/leap/mx/couchdbhelper.py @@ -100,7 +100,8 @@ class ConnectedCouchDB(client.CouchDB): pubkey = None if result["rows"]: doc = result["rows"][0]["doc"] - if "enabled" not in doc or doc["enabled"]: + user_enabled = doc.get('enabled', True) + if user_enabled: uuid = doc["user_id"] if "keys" in doc: pubkey = doc["keys"]["pgp"] -- cgit v1.2.3 From c02c73fea4901edd4002c3a317295c252ae426ca Mon Sep 17 00:00:00 2001 From: Thais Siqueira Date: Tue, 24 Jan 2017 18:48:08 -0200 Subject: Returns doc as None if we have some error during the encryption When we had an error during encryption, the doc property "_enc_json" was empty and we were saving this empty data on CouchDb. Then it was causing the [GNUPG:] NODATA 2 error during decryption. Related with: https://github.com/pixelated/pixelated-user-agent/issues/908 with @tayanefernandes --- src/leap/mx/mail_receiver.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/leap') diff --git a/src/leap/mx/mail_receiver.py b/src/leap/mx/mail_receiver.py index 7c5a368..b8eb2ae 100644 --- a/src/leap/mx/mail_receiver.py +++ b/src/leap/mx/mail_receiver.py @@ -202,14 +202,22 @@ class MailReceiver(Service): with openpgp.TempGPGWrapper(gpgbinary='/usr/bin/gpg') as gpg: gpg.import_keys(pubkey) key = gpg.list_keys().pop() + + encryption_result = gpg.encrypt( + json.dumps(data, ensure_ascii=False), + key["fingerprint"], + symmetric=False) + + if encryption_result.ok == False: + log.msg("_encrypt_message: Encryption Failed" + "Status: %r" % (encryption_result.status,)) + return None + doc.content = { self.INCOMING_KEY: True, self.ERROR_DECRYPTING_KEY: False, ENC_SCHEME_KEY: EncryptionSchemes.PUBKEY, - ENC_JSON_KEY: str(gpg.encrypt( - json.dumps(data, ensure_ascii=False), - key["fingerprint"], - symmetric=False)) + ENC_JSON_KEY: str(encryption_result) } return doc -- cgit v1.2.3 From 28936b276cc2fa8f3572c9248ed4bc5bef4ea7c4 Mon Sep 17 00:00:00 2001 From: drebs Date: Fri, 27 Jan 2017 11:25:46 -0200 Subject: [style] pep8 fixes --- src/leap/mx/mail_receiver.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/leap') diff --git a/src/leap/mx/mail_receiver.py b/src/leap/mx/mail_receiver.py index b8eb2ae..b200772 100644 --- a/src/leap/mx/mail_receiver.py +++ b/src/leap/mx/mail_receiver.py @@ -204,13 +204,13 @@ class MailReceiver(Service): key = gpg.list_keys().pop() encryption_result = gpg.encrypt( - json.dumps(data, ensure_ascii=False), - key["fingerprint"], - symmetric=False) + json.dumps(data, ensure_ascii=False), + key["fingerprint"], + symmetric=False) - if encryption_result.ok == False: - log.msg("_encrypt_message: Encryption Failed" - "Status: %r" % (encryption_result.status,)) + if not encryption_result.ok: + log.msg("_encrypt_message: Encryption failed with status: %r" + % (encryption_result.status,)) return None doc.content = { -- cgit v1.2.3