aboutsummaryrefslogtreecommitdiff
path: root/tests/test_message.cpp
diff options
context:
space:
mode:
authorRichard van der Hoff <richard@matrix.org>2016-05-18 17:23:09 +0100
committerRichard van der Hoff <richard@matrix.org>2016-05-24 13:39:34 +0100
commit39ad75314b9e28053f568ed6a4109f5d3a9468fe (patch)
tree72f7453ebbcbaa2513391c87b8b960092bb05ffa /tests/test_message.cpp
parent8b1514c0a653ccc3f49db70131d7d4f7524f1f9b (diff)
Implement decrypting inbound group messages
Includes creation of inbound sessions, etc
Diffstat (limited to 'tests/test_message.cpp')
-rw-r--r--tests/test_message.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/test_message.cpp b/tests/test_message.cpp
index e2385ea..5fec9e0 100644
--- a/tests/test_message.cpp
+++ b/tests/test_message.cpp
@@ -97,4 +97,26 @@ assert_equals(message2, output, 35);
assert_equals(output+sizeof(expected)-1, ciphertext_ptr);
} /* group message encode test */
+{
+ TestCase test_case("Group message decode test");
+
+ struct _OlmDecodeGroupMessageResults results;
+ std::uint8_t message[] =
+ "\x03"
+ "\x2A\x09sessionid"
+ "\x10\xc8\x01"
+ "\x22\x0A" "ciphertext"
+ "hmacsha2";
+
+ const uint8_t expected_session_id[] = "sessionid";
+
+ _olm_decode_group_message(message, sizeof(message)-1, 8, &results);
+ assert_equals(std::uint8_t(3), results.version);
+ assert_equals(std::size_t(9), results.session_id_length);
+ assert_equals(expected_session_id, results.session_id, 9);
+ assert_equals(1, results.has_chain_index);
+ assert_equals(std::uint32_t(200), results.chain_index);
+ assert_equals(std::size_t(10), results.ciphertext_length);
+ assert_equals(ciphertext, results.ciphertext, 10);
+} /* group message decode test */
}