From 49eb6548d1d8ec82bcba3d821f797669af39ba53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?poljar=20=28Damir=20Jeli=C4=87=29?= Date: Wed, 11 Apr 2018 20:56:11 +0200 Subject: [PATCH] encryption: Fix olm decryption if we already have a session. --- matrix/encryption.py | 7 +++++-- matrix/events.py | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/matrix/encryption.py b/matrix/encryption.py index 28e684a..f2c826b 100644 --- a/matrix/encryption.py +++ b/matrix/encryption.py @@ -222,11 +222,14 @@ class Olm(): continue plaintext = session.decrypt(message) - break + return plaintext except OlmSessionError: pass - session = self._create_session(sender, sender_key, message) + try: + session = self._create_session(sender, sender_key, message) + except OlmSessionError: + return None try: plaintext = session.decrypt(message) diff --git a/matrix/events.py b/matrix/events.py index e3127e2..4af350a 100644 --- a/matrix/events.py +++ b/matrix/events.py @@ -475,6 +475,9 @@ class MatrixSyncEvent(MatrixEvent): olm = server.olm plaintext = olm.decrypt(sender, sender_key, message) + if not plaintext: + return None + # TODO check sender key parsed_plaintext = json.loads(plaintext, encoding='utf-8') decrypted_sender = parsed_plaintext["sender"]