Files
TwoFactorAuth/lib/Providers/Rng/OpenSSLRNGProvider.php
T
2021-02-08 17:28:05 +00:00

31 lines
823 B
PHP

<?php
namespace RobThree\Auth\Providers\Rng;
class OpenSSLRNGProvider implements IRNGProvider
{
private $requirestrong;
public function __construct($requirestrong = true)
{
$this->requirestrong = $requirestrong;
}
public function getRandomBytes($bytecount)
{
$result = openssl_random_pseudo_bytes($bytecount, $crypto_strong);
if ($this->requirestrong && ($crypto_strong === false)) {
throw new RNGException('openssl_random_pseudo_bytes returned non-cryptographically strong value');
}
if ($result === false) {
throw new RNGException('openssl_random_pseudo_bytes returned an invalid value');
}
return $result;
}
public function isCryptographicallySecure()
{
return $this->requirestrong;
}
}