encryption: Fix olm decryption if we already have a session.
This commit is contained in:
parent
0bd20cc333
commit
49eb6548d1
2 changed files with 8 additions and 2 deletions
|
@ -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)
|
||||||
|
|
|
@ -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"]
|
||||||
|
|
Loading…
Add table
Reference in a new issue