+ /* Init module */
+ $m = mcrypt_module_open('rijndael-256', '', 'ofb', '');
+ /* Extract key and iv. */
+ $md5_key = md5 ($crypt_key);
+ $iv = jirafeau_crypt_create_iv ($md5_key, mcrypt_enc_get_iv_size($m));
+ /* Init module. */
+ mcrypt_generic_init ($m, $md5_key, $iv);
+ /* Decrypt file. */
+ $r = fopen (VAR_FILES . $p . $link['md5'], 'r');
+ while (!feof ($r))
+ {
+ $dec = mdecrypt_generic($m, fread ($r, 1024));
+ print $dec;
+ ob_flush();
+ }
+ fclose ($r);
+ /* Cleanup. */
+ mcrypt_generic_deinit($m);
+ mcrypt_module_close($m);
+}
+/* Read file. */
+else
+{
+ $r = fopen (VAR_FILES . $p . $link['md5'], 'r');
+ while (!feof ($r))
+ {
+ print fread ($r, 1024);
+ ob_flush();
+ }
+ fclose ($r);