. */ namespace SP\Tests\Core\Crypt; use Defuse\Crypto\Exception\EnvironmentIsBrokenException; use Faker\Factory; use PHPUnit\Framework\TestCase; use SP\Core\Crypt\Hash; use SP\Util\PasswordUtil; /** * Class HashTest * * @package SP\Tests\SP\Core\Crypt */ class HashTest extends TestCase { /** * @throws EnvironmentIsBrokenException */ public function testHashKey() { for ($i = 2; $i <= 128; $i *= 2) { $key = PasswordUtil::generateRandomBytes($i); $hash = Hash::hashKey($key); $this->assertNotEmpty($hash); $this->assertTrue(Hash::checkHashKey($key, $hash)); } } /** * @throws EnvironmentIsBrokenException */ public function testSignMessage() { $faker = Factory::create(); for ($i = 2; $i <= 128; $i *= 2) { $text = $faker->text; $key = PasswordUtil::generateRandomBytes($i); $hash = Hash::signMessage($text, $key); $this->assertNotEmpty($hash); $this->assertTrue(Hash::checkMessage($text, $key, $hash)); } } }