/** * Get the NONCE base to be used when generating somewhat random nonce strings * * From the NONCE base file, or fallback is a new somewhat random string each instantiation. * * @param SessionHandlerParams $handlerParams * @return SessionHandlerParams */ protected static function loadNonceBase($handlerParams) { $fullPath = dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))); $fullPath .= DIRECTORY_SEPARATOR . "conf" . DIRECTORY_SEPARATOR . "noncebase.txt"; if (!file_exists($fullPath) || !is_readable($fullPath)) { //FALLBACK: USE A NEW NONCE BASE EACH TIME $handlerParams->authParams->nonceBase = SomewhatRandomGenerator::generateSomewhatRandomString(); } else { if (!isset($handlerParams->authParams->nonceBase) || empty($handlerParams->authParams->nonceBase)) { $handlerParams->authParams->nonceBase = file_get_contents($fullPath); } } return $handlerParams; }
public function testCanGenerateRandomStringProvidedLength() { $somewhat = SomewhatRandomGenerator::generateSomewhatRandomString(10); $this->assertInternalType('string', $somewhat); $this->assertEquals(10, mb_strlen($somewhat)); }
/** * @param Event $event */ protected static function generateAndSaveNonceBase($event) { $fullPath = self::$root . DIRECTORY_SEPARATOR . self::$nonceFilePath; $randomString = SomewhatRandomGenerator::generateSomewhatRandomString(self::$nonceBaseLength); file_put_contents($fullPath, $randomString); $event->getIO()->write('GENERATING NONCE BASE FILE WITH STRING: ' . $randomString); }