aboutsummaryrefslogtreecommitdiff
path: root/python/olm/inbound_group_session.py
diff options
context:
space:
mode:
authorMark Haines <mjark@negativecurvature.net>2016-10-20 09:58:55 +0100
committerMark Haines <mjark@negativecurvature.net>2016-10-20 09:58:55 +0100
commit653790eacbf7dcf94cbf181657cdb0c30c890c3f (patch)
tree6cf8ca49bff13c01d18c15cd8e1a5e53c1cf9167 /python/olm/inbound_group_session.py
parent6ea9fb450ec1ef10b32d65ceb00a6042b927a95c (diff)
Return the message index when decrypting group messages.
Applications can use the index to detect replays of the same message.
Diffstat (limited to 'python/olm/inbound_group_session.py')
-rw-r--r--python/olm/inbound_group_session.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/python/olm/inbound_group_session.py b/python/olm/inbound_group_session.py
index d5547fd..27a569c 100644
--- a/python/olm/inbound_group_session.py
+++ b/python/olm/inbound_group_session.py
@@ -43,6 +43,7 @@ inbound_group_session_function(
lib.olm_group_decrypt,
c_void_p, c_size_t, # message
c_void_p, c_size_t, # plaintext
+ POINTER(c_uint32), # message_index
)
inbound_group_session_function(lib.olm_inbound_group_session_id_length)
@@ -82,11 +83,14 @@ class InboundGroupSession(object):
)
plaintext_buffer = create_string_buffer(max_plaintext_length)
message_buffer = create_string_buffer(message)
+
+ message_index = c_uint32()
plaintext_length = lib.olm_group_decrypt(
self.ptr, message_buffer, len(message),
- plaintext_buffer, max_plaintext_length
+ plaintext_buffer, max_plaintext_length,
+ byref(message_index)
)
- return plaintext_buffer.raw[:plaintext_length]
+ return plaintext_buffer.raw[:plaintext_length], message_index
def session_id(self):
id_length = lib.olm_inbound_group_session_id_length(self.ptr)