diff options
Diffstat (limited to 'javascript')
-rw-r--r-- | javascript/olm_inbound_group_session.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/javascript/olm_inbound_group_session.js b/javascript/olm_inbound_group_session.js index 2e4727f..6bc745d 100644 --- a/javascript/olm_inbound_group_session.js +++ b/javascript/olm_inbound_group_session.js @@ -61,6 +61,15 @@ InboundGroupSession.prototype['create'] = restore_stack(function(session_key) { ); }); +InboundGroupSession.prototype['import_session'] = restore_stack(function(session_key) { + var key_array = array_from_string(session_key); + var key_buffer = stack(key_array); + + inbound_group_session_method(Module['_olm_import_inbound_group_session'])( + this.ptr, key_buffer, key_array.length + ); +}); + InboundGroupSession.prototype['decrypt'] = restore_stack(function( message ) { @@ -123,4 +132,21 @@ InboundGroupSession.prototype['session_id'] = restore_stack(function() { return Pointer_stringify(session_id); }); +InboundGroupSession.prototype['first_known_index'] = restore_stack(function() { + return inbound_group_session_method( + Module['_olm_inbound_group_session_first_known_index'] + )(this.ptr); +}); + +InboundGroupSession.prototype['export_session'] = restore_stack(function(message_index) { + var key_length = inbound_group_session_method( + Module['_olm_export_inbound_group_session_length'] + )(this.ptr); + var key = stack(key_length + NULL_BYTE_PADDING_LENGTH); + outbound_group_session_method(Module['_olm_export_inbound_group_session'])( + this.ptr, key, key_length, message_index + ); + return Pointer_stringify(key); +}); + olm_exports['InboundGroupSession'] = InboundGroupSession; |