From fab058b4ecffc3309c731c44befbd54bc9749567 Mon Sep 17 00:00:00 2001 From: Patrick Canterino Date: Wed, 3 Apr 2024 14:44:01 +0200 Subject: [PATCH] Centralize legacy mcrypt decryption in `jirafeau_decrypt_file_legacy()` Same as with `jirafeau_decrypt_file()` in a previous commit `jirafeau_decrypt_file_legacy()` was also broken, a `mcrypt_generic_init()` was missing --- f.php | 18 +----------------- lib/functions.php | 2 ++ 2 files changed, 3 insertions(+), 17 deletions(-) diff --git a/f.php b/f.php index e167154..543fc10 100644 --- a/f.php +++ b/f.php @@ -254,23 +254,7 @@ elseif ($link['crypted']) { } /* Read encrypted file (legacy mode using mcrypt). */ elseif ($link['crypted_legacy']) { - /* Init module */ - $m = mcrypt_module_open('rijndael-256', '', 'ofb', ''); - /* Extract key and iv. */ - $hash_key = md5($crypt_key); - $iv = jirafeau_crypt_create_iv($hash_key, mcrypt_enc_get_iv_size($m)); - /* Init module. */ - mcrypt_generic_init($m, $hash_key, $iv); - /* Decrypt file. */ - $r = fopen(VAR_FILES . $p . $link['hash'], 'r'); - while (!feof($r)) { - $dec = mdecrypt_generic($m, fread($r, 1024)); - print $dec; - } - fclose($r); - /* Cleanup. */ - mcrypt_generic_deinit($m); - mcrypt_module_close($m); + jirafeau_decrypt_file_legacy(VAR_FILES . $p . $link['hash'], 'php://output', $crypt_key); } /* Read file. */ else { diff --git a/lib/functions.php b/lib/functions.php index 3883173..b6672fb 100644 --- a/lib/functions.php +++ b/lib/functions.php @@ -1315,6 +1315,8 @@ function jirafeau_decrypt_file_legacy($fp_src, $fp_dst, $k) $crypt_key = $k; $hash_key = md5($crypt_key); $iv = jirafeau_crypt_create_iv($hash_key, mcrypt_enc_get_iv_size($m)); + /* Init module. */ + mcrypt_generic_init($m, $hash_key, $iv); /* Decrypt file. */ $r = fopen($fp_src, 'r'); $w = fopen($fp_dst, 'c'); -- 2.34.1