Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Michael Telatynski
Olm
Commits
7e9f3beb
Commit
7e9f3beb
authored
Oct 25, 2016
by
Mark Haines
Browse files
Document the return values for olm_matches_inbound_session
parent
64130c1f
Changes
2
Show whitespace changes
Inline
Side-by-side
include/olm/olm.h
View file @
7e9f3beb
...
...
@@ -320,7 +320,8 @@ int olm_session_has_received_message(
/** Checks if the PRE_KEY message is for this in-bound session. This can happen
* if multiple messages are sent to this account before this account sends a
* message in reply. Returns olm_error() on failure. If the base64
* message in reply. Returns 1 if the session matches. Returns 0 if the session
* does not match. Returns olm_error() on failure. If the base64
* couldn't be decoded then olm_session_last_error will be "INVALID_BASE64".
* If the message was for an unsupported protocol version then
* olm_session_last_error() will be "BAD_MESSAGE_VERSION". If the message
...
...
@@ -333,7 +334,8 @@ size_t olm_matches_inbound_session(
/** Checks if the PRE_KEY message is for this in-bound session. This can happen
* if multiple messages are sent to this account before this account sends a
* message in reply. Returns olm_error() on failure. If the base64
* message in reply. Returns 1 if the session matches. Returns 0 if the session
* does not match. Returns olm_error() on failure. If the base64
* couldn't be decoded then olm_session_last_error will be "INVALID_BASE64".
* If the message was for an unsupported protocol version then
* olm_session_last_error() will be "BAD_MESSAGE_VERSION". If the message
...
...
tests/test_olm.cpp
View file @
7e9f3beb
...
...
@@ -165,6 +165,9 @@ std::uint8_t o_random[::olm_account_generate_one_time_keys_random_length(
mock_random_b
(
o_random
,
sizeof
(
o_random
));
::
olm_account_generate_one_time_keys
(
b_account
,
42
,
o_random
,
sizeof
(
o_random
));
std
::
uint8_t
a_id_keys
[
::
olm_account_identity_keys_length
(
a_account
)];
::
olm_account_identity_keys
(
a_account
,
a_id_keys
,
sizeof
(
a_id_keys
));
std
::
uint8_t
b_id_keys
[
::
olm_account_identity_keys_length
(
b_account
)];
std
::
uint8_t
b_ot_keys
[
::
olm_account_one_time_keys_length
(
b_account
)];
::
olm_account_identity_keys
(
b_account
,
b_id_keys
,
sizeof
(
b_id_keys
));
...
...
@@ -176,8 +179,8 @@ std::uint8_t a_rand[::olm_create_outbound_session_random_length(a_session)];
mock_random_a
(
a_rand
,
sizeof
(
a_rand
));
assert_not_equals
(
std
::
size_t
(
-
1
),
::
olm_create_outbound_session
(
a_session
,
a_account
,
b_id_keys
+
15
,
43
,
b_ot_keys
+
25
,
43
,
b_id_keys
+
15
,
43
,
// B's curve25519 identity key
b_ot_keys
+
25
,
43
,
// B's curve25519 one time key
a_rand
,
sizeof
(
a_rand
)
));
...
...
@@ -202,6 +205,31 @@ std::uint8_t b_session_buffer[::olm_account_size()];
b_session
,
b_account
,
tmp_message_1
,
sizeof
(
message_1
)
);
// Check that the inbound session matches the message it was created from.
std
::
memcpy
(
tmp_message_1
,
message_1
,
sizeof
(
message_1
));
assert_equals
(
std
::
size_t
(
1
),
::
olm_matches_inbound_session
(
b_session
,
tmp_message_1
,
sizeof
(
message_1
)
));
// Check that the inbound session matches the key this message is supposed
// to be from.
std
::
memcpy
(
tmp_message_1
,
message_1
,
sizeof
(
message_1
));
assert_equals
(
std
::
size_t
(
1
),
::
olm_matches_inbound_session_from
(
b_session
,
a_id_keys
+
15
,
43
,
// A's curve125519 identity key.
tmp_message_1
,
sizeof
(
message_1
)
));
// Check that the inbound session isn't from a different user.
std
::
memcpy
(
tmp_message_1
,
message_1
,
sizeof
(
message_1
));
assert_equals
(
std
::
size_t
(
0
),
::
olm_matches_inbound_session_from
(
b_session
,
b_id_keys
+
15
,
43
,
// B's curve25519 identity key.
tmp_message_1
,
sizeof
(
message_1
)
));
// Check that we can decrypt the message.
std
::
memcpy
(
tmp_message_1
,
message_1
,
sizeof
(
message_1
));
std
::
uint8_t
plaintext_1
[
::
olm_decrypt_max_plaintext_length
(
b_session
,
0
,
tmp_message_1
,
sizeof
(
message_1
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment