expectException(TwoFactorAuthException::class); $tfa->createSecret(); } /** * @return void */ public function testCreateSecretOverrideSecureDoesNotThrowOnInsecureRNG() { $rng = new TestRNGProvider(); $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, $rng); $this->assertEquals('ABCDEFGHIJKLMNOP', $tfa->createSecret(80, false)); } /** * @return void */ public function testCreateSecretDoesNotThrowOnSecureRNGProvider() { $rng = new TestRNGProvider(true); $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, $rng); $this->assertEquals('ABCDEFGHIJKLMNOP', $tfa->createSecret()); } /** * @return void */ public function testCreateSecretGeneratesDesiredAmountOfEntropy() { $rng = new TestRNGProvider(true); $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, $rng); $this->assertEquals('A', $tfa->createSecret(5)); $this->assertEquals('AB', $tfa->createSecret(6)); $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ', $tfa->createSecret(128)); $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567', $tfa->createSecret(160)); $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUVWXYZ234567', $tfa->createSecret(320)); $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUVWXYZ234567A', $tfa->createSecret(321)); } }