aboutsummaryrefslogtreecommitdiff
path: root/src/inbound_group_session.c
diff options
context:
space:
mode:
authorMark Haines <mjark@negativecurvature.net>2016-10-21 09:57:42 +0100
committerGitHub <noreply@github.com>2016-10-21 09:57:42 +0100
commit5a98012c0d3951d2d08e9922ee682fbdecc68f0c (patch)
treef4510135c054c28f2366119136c97ae024556497 /src/inbound_group_session.c
parent65b334531754d9decf485975ffd2f9591bc80e84 (diff)
parent9a8d2d15d97dc17d8f33b7d45b0fefc1267b57c4 (diff)
Merge pull request #31 from matrix-org/markjh/groupmessageindex
Return the message index when decrypting group messages.
Diffstat (limited to 'src/inbound_group_session.c')
-rw-r--r--src/inbound_group_session.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/inbound_group_session.c b/src/inbound_group_session.c
index bf00008..a54e55f 100644
--- a/src/inbound_group_session.c
+++ b/src/inbound_group_session.c
@@ -263,7 +263,8 @@ size_t olm_group_decrypt_max_plaintext_length(
static size_t _decrypt(
OlmInboundGroupSession *session,
uint8_t * message, size_t message_length,
- uint8_t * plaintext, size_t max_plaintext_length
+ uint8_t * plaintext, size_t max_plaintext_length,
+ uint32_t * message_index
) {
struct _OlmDecodeGroupMessageResults decoded_results;
size_t max_length, r;
@@ -286,6 +287,10 @@ static size_t _decrypt(
return (size_t)-1;
}
+ if (message_index != NULL) {
+ *message_index = decoded_results.message_index;
+ }
+
/* verify the signature. We could do this before decoding the message, but
* we allow for the possibility of future protocol versions which use a
* different signing mechanism; we would rather throw "BAD_MESSAGE_VERSION"
@@ -349,7 +354,8 @@ static size_t _decrypt(
size_t olm_group_decrypt(
OlmInboundGroupSession *session,
uint8_t * message, size_t message_length,
- uint8_t * plaintext, size_t max_plaintext_length
+ uint8_t * plaintext, size_t max_plaintext_length,
+ uint32_t * message_index
) {
size_t raw_message_length;
@@ -361,7 +367,8 @@ size_t olm_group_decrypt(
return _decrypt(
session, message, raw_message_length,
- plaintext, max_plaintext_length
+ plaintext, max_plaintext_length,
+ message_index
);
}