X-Git-Url: https://git.p6c8.net/jirafeau.git/blobdiff_plain/b1c96930b34b47dd1c8f6321d62beeceb87afb00..f2e7a2cb00bebc22671aa02035242596dbce46de:/f.php diff --git a/f.php b/f.php index 854da83..e167154 100644 --- a/f.php +++ b/f.php @@ -248,29 +248,9 @@ if ($cfg['litespeed_workaround']) { $_SERVER['QUERY_STRING'] . '&litespeed_workaround=phase2'); } } -/* Read encrypted file. */ +/* Read encrypted file (Sodium mode). */ elseif ($link['crypted']) { - /* Decrypt file. */ - $r = fopen(VAR_FILES . $p . $link['hash'], 'rb'); - $fs = fstat($r)['size']; - - $crypt_header = fread($r, SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_HEADERBYTES); - - /* Init module. */ - $crypt_state = sodium_crypto_secretstream_xchacha20poly1305_init_pull($crypt_header, $crypt_key); - - /* Decrypt file. */ - - for ($i = SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_HEADERBYTES; $i < $fs; $i += JIRAFEAU_SODIUM_CHUNKSIZE + SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_ABYTES) { - $to_dec = fread($r, JIRAFEAU_SODIUM_CHUNKSIZE + SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_ABYTES); - [$dec, $crypt_tag] = sodium_crypto_secretstream_xchacha20poly1305_pull($crypt_state, $to_dec); - echo $dec; - } - - fclose($r); - - /* Cleanup. */ - sodium_memzero($crypt_state); + jirafeau_decrypt_file(VAR_FILES . $p . $link['hash'], 'php://output', $crypt_key); } /* Read encrypted file (legacy mode using mcrypt). */ elseif ($link['crypted_legacy']) {