Commit 45091c15 authored by poljar's avatar poljar Committed by Hubert Chathi
Browse files

python: Turn the signature buffer into a bytearray.

This is a workaround for a bug where signature verification would
overwrite the variable holding the signature.

This only happens on python2.
Signed-off-by: poljar's avatarDamir Jelić <>
parent 94f664e7
......@@ -81,14 +81,15 @@ class _Utility(object):
byte_key = to_bytes(key)
byte_message = to_bytearray(message)
byte_signature = to_bytes(signature)
byte_signature = to_bytearray(signature)
lib.olm_ed25519_verify(cls._utility, byte_key, len(byte_key),
byte_signature, len(byte_signature)))
# clear out copies of the message, which may be a plaintext
if byte_message is not message:
......@@ -98,3 +98,19 @@ class TestClass(object):
with pytest.raises(OlmVerifyError):
ed25519_verify(signing_key, message, signature)
def test_signature_verification_twice(self, message):
alice = Account()
signature = alice.sign(message)
signing_key = alice.identity_keys["ed25519"]
assert signature
assert signing_key
ed25519_verify(signing_key, message, signature)
assert signature == alice.sign(message)
ed25519_verify(signing_key, message, signature)
assert signature == alice.sign(message)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment