aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard van der Hoff <github@rvanderhoff.org.uk>2016-10-24 10:43:43 +0100
committerGitHub <noreply@github.com>2016-10-24 10:43:43 +0100
commitd8136096c045c08b6348d28ad423dec567fa4d7d (patch)
treed8c8d3894543ee95224a92c519ecdd5c3f6902e3
parent8de0f1fbb3df0adf8dd8e9db1099eacc0edfecc9 (diff)
parenta7310c5821513d5c5b0609ec506dad1ae51603d3 (diff)
Merge pull request #33 from matrix-org/rav/pickle_length
Return the base64-encoded length of pickles
-rw-r--r--src/pickle_encoding.c2
-rw-r--r--tests/test_group_session.cpp41
-rw-r--r--tests/test_olm.cpp16
3 files changed, 34 insertions, 25 deletions
diff --git a/src/pickle_encoding.c b/src/pickle_encoding.c
index 5d5f8d7..a56e9e3 100644
--- a/src/pickle_encoding.c
+++ b/src/pickle_encoding.c
@@ -60,7 +60,7 @@ size_t _olm_enc_output(
raw_output, length
);
_olm_encode_base64(raw_output, length, output);
- return raw_length;
+ return base64_length;
}
diff --git a/tests/test_group_session.cpp b/tests/test_group_session.cpp
index df46f0e..ad67adb 100644
--- a/tests/test_group_session.cpp
+++ b/tests/test_group_session.cpp
@@ -28,23 +28,26 @@ int main() {
size_t pickle_length = olm_pickle_outbound_group_session_length(session);
uint8_t pickle1[pickle_length];
- olm_pickle_outbound_group_session(session,
- "secret_key", 10,
- pickle1, pickle_length);
+ size_t res = olm_pickle_outbound_group_session(
+ session, "secret_key", 10, pickle1, pickle_length
+ );
+ assert_equals(pickle_length, res);
+
uint8_t pickle2[pickle_length];
memcpy(pickle2, pickle1, pickle_length);
uint8_t buffer2[size];
OlmOutboundGroupSession *session2 = olm_outbound_group_session(buffer2);
- size_t res = olm_unpickle_outbound_group_session(session2,
- "secret_key", 10,
- pickle2, pickle_length);
+ res = olm_unpickle_outbound_group_session(
+ session2, "secret_key", 10, pickle2, pickle_length
+ );
assert_not_equals((size_t)-1, res);
assert_equals(pickle_length,
olm_pickle_outbound_group_session_length(session2));
- olm_pickle_outbound_group_session(session2,
- "secret_key", 10,
- pickle2, pickle_length);
+ res = olm_pickle_outbound_group_session(
+ session2, "secret_key", 10, pickle2, pickle_length
+ );
+ assert_equals(pickle_length, res);
assert_equals(pickle1, pickle2, pickle_length);
}
@@ -59,23 +62,25 @@ int main() {
size_t pickle_length = olm_pickle_inbound_group_session_length(session);
uint8_t pickle1[pickle_length];
- olm_pickle_inbound_group_session(session,
- "secret_key", 10,
- pickle1, pickle_length);
+ size_t res = olm_pickle_inbound_group_session(
+ session, "secret_key", 10, pickle1, pickle_length
+ );
+ assert_equals(pickle_length, res);
+
uint8_t pickle2[pickle_length];
memcpy(pickle2, pickle1, pickle_length);
uint8_t buffer2[size];
OlmInboundGroupSession *session2 = olm_inbound_group_session(buffer2);
- size_t res = olm_unpickle_inbound_group_session(session2,
- "secret_key", 10,
- pickle2, pickle_length);
+ res = olm_unpickle_inbound_group_session(
+ session2, "secret_key", 10, pickle2, pickle_length
+ );
assert_not_equals((size_t)-1, res);
assert_equals(pickle_length,
olm_pickle_inbound_group_session_length(session2));
- olm_pickle_inbound_group_session(session2,
- "secret_key", 10,
- pickle2, pickle_length);
+ res = olm_pickle_inbound_group_session(
+ session2, "secret_key", 10, pickle2, pickle_length
+ );
assert_equals(pickle1, pickle2, pickle_length);
}
diff --git a/tests/test_olm.cpp b/tests/test_olm.cpp
index af2c9f7..4619558 100644
--- a/tests/test_olm.cpp
+++ b/tests/test_olm.cpp
@@ -49,7 +49,9 @@ mock_random(ot_random, sizeof(ot_random));
std::size_t pickle_length = ::olm_pickle_account_length(account);
std::uint8_t pickle1[pickle_length];
-::olm_pickle_account(account, "secret_key", 10, pickle1, pickle_length);
+std::size_t res = ::olm_pickle_account(account, "secret_key", 10, pickle1, pickle_length);
+assert_equals(pickle_length, res);
+
std::uint8_t pickle2[pickle_length];
std::memcpy(pickle2, pickle1, pickle_length);
@@ -59,10 +61,10 @@ assert_not_equals(std::size_t(-1), ::olm_unpickle_account(
account2, "secret_key", 10, pickle2, pickle_length
));
assert_equals(pickle_length, ::olm_pickle_account_length(account2));
-::olm_pickle_account(account2, "secret_key", 10, pickle2, pickle_length);
+res = ::olm_pickle_account(account2, "secret_key", 10, pickle2, pickle_length);
+assert_equals(pickle_length, res);
assert_equals(pickle1, pickle2, pickle_length);
-
}
@@ -122,7 +124,9 @@ mock_random(random2, sizeof(random2));
std::size_t pickle_length = ::olm_pickle_session_length(session);
std::uint8_t pickle1[pickle_length];
-::olm_pickle_session(session, "secret_key", 10, pickle1, pickle_length);
+std::size_t res = ::olm_pickle_session(session, "secret_key", 10, pickle1, pickle_length);
+assert_equals(pickle_length, res);
+
std::uint8_t pickle2[pickle_length];
std::memcpy(pickle2, pickle1, pickle_length);
@@ -132,10 +136,10 @@ assert_not_equals(std::size_t(-1), ::olm_unpickle_session(
session2, "secret_key", 10, pickle2, pickle_length
));
assert_equals(pickle_length, ::olm_pickle_session_length(session2));
-::olm_pickle_session(session2, "secret_key", 10, pickle2, pickle_length);
+res = ::olm_pickle_session(session2, "secret_key", 10, pickle2, pickle_length);
+assert_equals(pickle_length, res);
assert_equals(pickle1, pickle2, pickle_length);
-
}
{ /** Loopback test */