aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--python/olm/utility.py5
-rw-r--r--python/tests/account_test.py16
2 files changed, 19 insertions, 2 deletions
diff --git a/python/olm/utility.py b/python/olm/utility.py
index 0a64128..121ff63 100644
--- a/python/olm/utility.py
+++ b/python/olm/utility.py
@@ -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)
try:
cls._check_error(
lib.olm_ed25519_verify(cls._utility, byte_key, len(byte_key),
ffi.from_buffer(byte_message),
len(byte_message),
- byte_signature, len(byte_signature)))
+ ffi.from_buffer(byte_signature),
+ len(byte_signature)))
finally:
# clear out copies of the message, which may be a plaintext
if byte_message is not message:
diff --git a/python/tests/account_test.py b/python/tests/account_test.py
index 4fef72c..7ee6d2b 100644
--- a/python/tests/account_test.py
+++ b/python/tests/account_test.py
@@ -98,3 +98,19 @@ class TestClass(object):
with pytest.raises(OlmVerifyError):
ed25519_verify(signing_key, message, signature)
+
+ @given(text())
+ 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)