blob: e42ccfd7044c22876350bb4e08b14e26e8070a84 [file] [log] [blame]
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +02001<?php
2
3namespace Tests\Providers\Rng;
4
5use PHPUnit\Framework\TestCase;
6use Tests\MightNotMakeAssertions;
7use RobThree\Auth\Providers\Rng\CSRNGProvider;
8
9class CSRNGProviderTest extends TestCase
10{
11 use NeedsRngLengths, MightNotMakeAssertions;
12
13 /**
14 * @requires function random_bytes
15 *
16 * @return void
17 */
18 public function testCSRNGProvidersReturnExpectedNumberOfBytes()
19 {
20 if (function_exists('random_bytes')) {
21 $rng = new CSRNGProvider();
22 foreach ($this->rngTestLengths as $l) {
23 $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
24 }
25 $this->assertTrue($rng->isCryptographicallySecure());
26 } else {
27 $this->noAssertionsMade();
28 }
29 }
30}