blob: c941fcc87b10f2de6dd2f99a5d6e31a32e2f2486 [file] [log] [blame]
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +02001<?php
2
3namespace Tests\Providers\Rng;
4
5use PHPUnit\Framework\TestCase;
6use RobThree\Auth\Providers\Rng\OpenSSLRNGProvider;
7
8class OpenSSLRNGProviderTest extends TestCase
9{
10 use NeedsRngLengths;
11
12 /**
13 * @return void
14 */
15 public function testStrongOpenSSLRNGProvidersReturnExpectedNumberOfBytes()
16 {
17 $rng = new OpenSSLRNGProvider(true);
18 foreach ($this->rngTestLengths as $l) {
19 $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
20 }
21
22 $this->assertTrue($rng->isCryptographicallySecure());
23 }
24
25 /**
26 * @return void
27 */
28 public function testNonStrongOpenSSLRNGProvidersReturnExpectedNumberOfBytes()
29 {
30 $rng = new OpenSSLRNGProvider(false);
31 foreach ($this->rngTestLengths as $l) {
32 $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
33 }
34
35 $this->assertFalse($rng->isCryptographicallySecure());
36 }
37}