Merge pull request #33 from matrix-org/rav/pickle_length
Return the base64-encoded length of pickles
This commit is contained in:
commit
d8136096c0
3 changed files with 34 additions and 25 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in a new issue