From: Patrick Canterino Date: Wed, 3 Apr 2024 12:44:01 +0000 (+0200) Subject: Centralize legacy mcrypt decryption in `jirafeau_decrypt_file_legacy()` X-Git-Tag: 4.6.0~14^2~3 X-Git-Url: https://git.p6c8.net/jirafeau.git/commitdiff_plain/fab058b4ecffc3309c731c44befbd54bc9749567?hp=947b485e76f6a086e2c57ea606ed04ebe6e266f8 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 --- 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');