if (!
is_resource($ifp)) { throw new SodiumException('Could not open input file for reading'
);
} /** @var resource $ofp */
$ofp =
fopen($outputFile, 'wb'
);
if (!
is_resource($ofp)) { fclose($ifp);
throw new SodiumException('Could not open output file for writing'
);
} $res = self::
box_decrypt($ifp,
$ofp,
$size,
$nonce,
$keypair);
fclose($ifp);
fclose($ofp);
try { ParagonIE_Sodium_Compat::
memzero($nonce);
ParagonIE_Sodium_Compat::
memzero($ephKeypair);
} catch (SodiumException
$ex) { if (isset($ephKeypair)) { unset($ephKeypair);
} } return $res;
}