Example #1
0
 public function setGenerator($secure = true, Generator $generator = null)
 {
     if ($secure === true && $generator === null) {
         if ($this->hasMCrypt()) {
             $this->generator = new MCrypt();
         } elseif ($this->hasOpenSSL()) {
             $this->generator = new OpenSSL();
         } else {
             throw new errors\Insecure('MCrypt or OpenSSL extension not found');
         }
     } elseif ($generator !== null) {
         $this->generator = $generator;
     } else {
         $this->generator = new Basic();
     }
     if ($secure === true) {
         if ($generator->isSecure() === false) {
             throw new errors\Insecure('The provided generator is not a CSPRNG');
         }
     }
     return true;
 }