aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMark Haines <mark.haines@matrix.org>2015-07-07 09:50:32 +0100
committerMark Haines <mark.haines@matrix.org>2015-07-07 09:50:32 +0100
commit2a873fd4e1d53c45898b27e1c953b551b2cf6023 (patch)
tree6096e97b2245d3ada64013a90c4488c2caaeae3e /tests
parenta30a64d17931c43ca20090220272ce9257064072 (diff)
Add functions for creating and verifying ed25519 signatures
Diffstat (limited to 'tests')
-rw-r--r--tests/test_crypto.cpp34
1 files changed, 31 insertions, 3 deletions
diff --git a/tests/test_crypto.cpp b/tests/test_crypto.cpp
index b8ffbcd..b3ff593 100644
--- a/tests/test_crypto.cpp
+++ b/tests/test_crypto.cpp
@@ -83,8 +83,8 @@ assert_equals(expected_agreement, actual_agreement, 32);
} /* Curve25529 Test Case 1 */
-{ /* Signature Test Cast 1 */
-TestCase test_case("Signature Test Case 1");
+{ /* Curve25519 Signature Test Case 1 */
+TestCase test_case("Curve25519 Signature Test Case 1");
std::uint8_t private_key[33] = "This key is a string of 32 bytes";
std::uint8_t message[] = "message";
@@ -110,7 +110,35 @@ result = olm::curve25519_verify(
);
assert_equals(false, result);
-} /* Signature Test Cast 1 */
+} /* Curve25519 Signature Test Case 1 */
+
+{
+TestCase test_case("Ed25519 Signature Test Case 1");
+std::uint8_t private_key[33] = "This key is a string of 32 bytes";
+
+std::uint8_t message[] = "Hello, World";
+std::size_t message_length = sizeof(message) - 1;
+
+olm::Ed25519KeyPair key_pair;
+olm::ed25519_generate_key(private_key, key_pair);
+
+std::uint8_t signature[64];
+olm::ed25519_sign(
+ key_pair, message, message_length, signature
+);
+
+bool result = olm::ed25519_verify(
+ key_pair, message, message_length, signature
+);
+assert_equals(true, result);
+
+message[0] = 'n';
+result = olm::ed25519_verify(
+ key_pair, message, message_length, signature
+);
+assert_equals(false, result);
+}
+
{ /* AES Test Case 1 */