diff options
author | Mark Haines <mjark@negativecurvature.net> | 2016-10-21 09:57:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-21 09:57:42 +0100 |
commit | 5a98012c0d3951d2d08e9922ee682fbdecc68f0c (patch) | |
tree | f4510135c054c28f2366119136c97ae024556497 /python | |
parent | 65b334531754d9decf485975ffd2f9591bc80e84 (diff) | |
parent | 9a8d2d15d97dc17d8f33b7d45b0fefc1267b57c4 (diff) |
Merge pull request #31 from matrix-org/markjh/groupmessageindex
Return the message index when decrypting group messages.
Diffstat (limited to 'python')
-rwxr-xr-x | python/olm/__main__.py | 2 | ||||
-rw-r--r-- | python/olm/inbound_group_session.py | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/python/olm/__main__.py b/python/olm/__main__.py index cf9158d..eb76301 100755 --- a/python/olm/__main__.py +++ b/python/olm/__main__.py @@ -328,7 +328,7 @@ def do_group_decrypt(args): session = InboundGroupSession() session.unpickle(args.key, read_base64_file(args.session_file)) message = args.message_file.read() - plaintext = session.decrypt(message) + plaintext, message_index = session.decrypt(message) with open(args.session_file, "wb") as f: f.write(session.pickle(args.key)) args.plaintext_file.write(plaintext) 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) |