encryption: Fix olm decryption if we already have a session.

This commit is contained in:
poljar (Damir Jelić) 2018-04-11 20:56:11 +02:00
parent 0bd20cc333
commit 49eb6548d1
2 changed files with 8 additions and 2 deletions

View file

@ -222,11 +222,14 @@ class Olm():
continue continue
plaintext = session.decrypt(message) plaintext = session.decrypt(message)
break return plaintext
except OlmSessionError: except OlmSessionError:
pass pass
session = self._create_session(sender, sender_key, message) try:
session = self._create_session(sender, sender_key, message)
except OlmSessionError:
return None
try: try:
plaintext = session.decrypt(message) plaintext = session.decrypt(message)

View file

@ -475,6 +475,9 @@ class MatrixSyncEvent(MatrixEvent):
olm = server.olm olm = server.olm
plaintext = olm.decrypt(sender, sender_key, message) plaintext = olm.decrypt(sender, sender_key, message)
if not plaintext:
return None
# TODO check sender key # TODO check sender key
parsed_plaintext = json.loads(plaintext, encoding='utf-8') parsed_plaintext = json.loads(plaintext, encoding='utf-8')
decrypted_sender = parsed_plaintext["sender"] decrypted_sender = parsed_plaintext["sender"]