This represents a file that we are reading from, which should never be altered
while our cryptography operations are being performed.
// PHP's fread() buffer is set to 8192 by default
const CHUNK = 8192;
`$fp` (private) - File pointer
`int $pos` (private) - Position within the stream (via `ftell()`)
`array $stat` (private) - Statistics about the file (via `fstat()`)
`$file` - Either a string containing a file location or a resource (file
handle opened by `fopen()`)
public getHash() :
Returns the BLAKE2b hash of the file contents.
int $num) :
Read the desired number of bytes from the internal stream, preventing partial
reads. Also performs runtime checks to prevent TOCTOU attacks (race conditions).
public remainingBytes() :
Returns the number of bytes between the current location and the end of the
int $i = 0)
Set the current position in the stream to the desired value.
Verifies that the file location (
ftell($this->fp)) has not diverged from our
current location (
$this->loc), and that the file size has not changed.
int $num = null)