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
matrix-org
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
Hide 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