blob: 0eeab2c14aea7b20611f0d2376c6a0ec24e95868 [file] [log] [blame]
Matthias Andreas Benkardb382b102021-01-02 15:32:21 +01001<?php
2
3namespace RobThree\Auth\Providers\Rng;
4
5class MCryptRNGProvider implements IRNGProvider
6{
7 private $source;
8
9 function __construct($source = MCRYPT_DEV_URANDOM) {
10 $this->source = $source;
11 }
12
13 public function getRandomBytes($bytecount) {
14 $result = @mcrypt_create_iv($bytecount, $this->source);
15 if ($result === false)
16 throw new \RNGException('mcrypt_create_iv returned an invalid value');
17 return $result;
18 }
19
20 public function isCryptographicallySecure() {
21 return true;
22 }
23}