From 1956f63179c4f3ac3232cc4a2da8046565fad2a1 Mon Sep 17 00:00:00 2001 From: Marvin W Date: Tue, 15 Sep 2020 17:33:40 +0200 Subject: Set key size for omemo http file transfers to 256 bits Fixes #909 --- plugins/omemo/src/file_transfer/file_decryptor.vala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'plugins/omemo') diff --git a/plugins/omemo/src/file_transfer/file_decryptor.vala b/plugins/omemo/src/file_transfer/file_decryptor.vala index fedb9397..97d61899 100644 --- a/plugins/omemo/src/file_transfer/file_decryptor.vala +++ b/plugins/omemo/src/file_transfer/file_decryptor.vala @@ -44,6 +44,7 @@ public class OmemoFileDecryptor : FileDecryptor, Object { } public async InputStream decrypt_file(InputStream encrypted_stream, Conversation conversation, FileTransfer file_transfer, FileReceiveData receive_data) throws FileReceiveError { + const uint KEY_SIZE = 32; try { OmemoHttpFileReceiveData? omemo_http_receive_data = receive_data as OmemoHttpFileReceiveData; if (omemo_http_receive_data == null) assert(false); @@ -52,8 +53,8 @@ public class OmemoFileDecryptor : FileDecryptor, Object { MatchInfo match_info; this.url_regex.match(omemo_http_receive_data.original_url, 0, out match_info); uint8[] iv_and_key = hex_to_bin(match_info.fetch(2).up()); - uint8[] iv = iv_and_key[0:iv_and_key.length-16]; - uint8[] key = iv_and_key[iv_and_key.length-16:iv_and_key.length]; + uint8[] iv = iv_and_key[0:iv_and_key.length-KEY_SIZE]; + uint8[] key = iv_and_key[iv_and_key.length-KEY_SIZE:iv_and_key.length]; file_transfer.encryption = Encryption.OMEMO; debug("Decrypting file %s from %s", file_transfer.file_name, file_transfer.server_file_name); -- cgit v1.2.3-54-g00ecf