diff --git a/.travis.yml b/.travis.yml index 81a8b2ff..aa88ade7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,19 +5,13 @@ sudo: true matrix: allow_failures: - php: nightly - - php: hhvm fast_finish: true include: - - php: 5.6 - env: deps=low - - php: 5.6 - php: 7.0 - php: 7.0 env: deps=low - php: 7.1 - - php: hhvm - - php: hhvm - env: deps=low + - php: 7.2 - php: nightly before_script: diff --git a/README.md b/README.md index b3adaef0..2251b02a 100644 --- a/README.md +++ b/README.md @@ -123,7 +123,7 @@ The release process [is described here](doc/Release.md). # Prerequisites This library needs at least: -* ![PHP 5.6+](https://img.shields.io/badge/PHP-5.6%2B-ff69b4.svg), +* ![PHP 7.0+](https://img.shields.io/badge/PHP-7.0%2B-ff69b4.svg), * OpenSSL extension. Please consider the following optional requirements: @@ -136,7 +136,8 @@ As the time needed to perform operation is long compared to the other algorithms # Continuous Integration -It has been successfully tested using `PHP 5.6`, `PHP 7.0`, `PHP 7.1` and `HHVM` with all algorithms. +It has been successfully tested using `PHP 7.0`, `PHP 7.1` and `PHP7.2` with all algorithms. +If you use PHP 5.6, please install the version ^6.0 of this project. Tests vectors from the [RFC 7520](http://tools.ietf.org/html/rfc7520) are fully implemented and all tests pass. diff --git a/composer.json b/composer.json index 39270746..dd2d7a52 100644 --- a/composer.json +++ b/composer.json @@ -25,20 +25,19 @@ } }, "require": { - "php": "^5.6|^7.0", + "php": "^7.0", "lib-openssl": "*", "spomky-labs/base64url": "^1.0", "spomky-labs/aes-key-wrap": "^3.0", "spomky-labs/php-aes-gcm": "^1.2", "beberlei/assert": "^2.4", "symfony/polyfill-mbstring": "^1.1", - "symfony/polyfill-php70": "^1.1", "fgrosse/phpasn1": "^2.0", "mdanter/ecc": "0.5.*", "psr/cache": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^5.0", + "phpunit/phpunit": "^6.0", "satooshi/php-coveralls": "^1.0", "symfony/cache": "^2.0|^3.0" }, diff --git a/src/Algorithm/Signature/ECDSA.php b/src/Algorithm/Signature/ECDSA.php index d4b1da78..1466d10d 100644 --- a/src/Algorithm/Signature/ECDSA.php +++ b/src/Algorithm/Signature/ECDSA.php @@ -13,7 +13,7 @@ use Assert\Assertion; use Base64Url\Base64Url; -use FG\ASN1\Object; +use FG\ASN1\ASNObject; use FG\ASN1\Universal\Integer; use FG\ASN1\Universal\Sequence; use Jose\Algorithm\SignatureAlgorithmInterface; @@ -56,7 +56,7 @@ private function getOpenSSLSignature(JWKInterface $key, $data) Assertion::true($result, 'Signature failed'); - $asn = Object::fromBinary($signature); + $asn = ASNObject::fromBinary($signature); Assertion::isInstanceOf($asn, Sequence::class, 'Invalid signature'); $res = ''; diff --git a/src/Behaviour/EncrypterTrait.php b/src/Behaviour/EncrypterTrait.php index bd8c3f1d..eb4150a3 100644 --- a/src/Behaviour/EncrypterTrait.php +++ b/src/Behaviour/EncrypterTrait.php @@ -15,7 +15,8 @@ use Base64Url\Base64Url; use Jose\Algorithm; use Jose\Compression; -use Jose\Object; +use Jose\Object\JWEInterface; +use Jose\Object\JWKInterface; trait EncrypterTrait { @@ -27,13 +28,13 @@ trait EncrypterTrait * * @return bool */ - abstract protected function checkKeyUsage(Object\JWKInterface $key, $usage); + abstract protected function checkKeyUsage(JWKInterface $key, $usage); /** * @param \Jose\Object\JWKInterface $key * @param string $algorithm */ - abstract protected function checkKeyAlgorithm(Object\JWKInterface $key, $algorithm); + abstract protected function checkKeyAlgorithm(JWKInterface $key, $algorithm); /** * @return \Jose\Algorithm\JWAManagerInterface @@ -50,7 +51,7 @@ abstract protected function getCompressionManager(); * @param \Jose\Algorithm\ContentEncryptionAlgorithmInterface $content_encryption_algorithm * @param \Jose\Object\JWKInterface $recipient_key */ - private function checkKeys(Algorithm\KeyEncryptionAlgorithmInterface $key_encryption_algorithm, Algorithm\ContentEncryptionAlgorithmInterface $content_encryption_algorithm, Object\JWKInterface $recipient_key) + private function checkKeys(Algorithm\KeyEncryptionAlgorithmInterface $key_encryption_algorithm, Algorithm\ContentEncryptionAlgorithmInterface $content_encryption_algorithm, JWKInterface $recipient_key) { $this->checkKeyUsage($recipient_key, 'encryption'); if ('dir' !== $key_encryption_algorithm->getAlgorithmName()) { @@ -68,7 +69,7 @@ private function checkKeys(Algorithm\KeyEncryptionAlgorithmInterface $key_encryp * * @return string */ - private function determineCEK(Object\JWEInterface $jwe, Algorithm\ContentEncryptionAlgorithmInterface $content_encryption_algorithm, $key_management_mode, array &$additional_headers) + private function determineCEK(JWEInterface $jwe, Algorithm\ContentEncryptionAlgorithmInterface $content_encryption_algorithm, $key_management_mode, array &$additional_headers) { switch ($key_management_mode) { case Algorithm\KeyEncryption\KeyEncryptionInterface::MODE_ENCRYPT: @@ -96,7 +97,7 @@ private function determineCEK(Object\JWEInterface $jwe, Algorithm\ContentEncrypt * * @return string */ - private function getKeyManagementMode(Object\JWEInterface $jwe) + private function getKeyManagementMode(JWEInterface $jwe) { $mode = null; $recipients = $jwe->getRecipients(); @@ -123,7 +124,7 @@ private function getKeyManagementMode(Object\JWEInterface $jwe) * * @return \Jose\Compression\CompressionInterface|null */ - private function getCompressionMethod(Object\JWEInterface $jwe) + private function getCompressionMethod(JWEInterface $jwe) { $method = null; $nb_recipients = $jwe->countRecipients(); @@ -160,7 +161,7 @@ private function getCompressionMethod(Object\JWEInterface $jwe) * * @return \Jose\Algorithm\ContentEncryptionAlgorithmInterface */ - private function getContentEncryptionAlgorithm(Object\JWEInterface $jwe) + private function getContentEncryptionAlgorithm(JWEInterface $jwe) { $algorithm = null; diff --git a/src/Checker/CheckerManager.php b/src/Checker/CheckerManager.php index 3936d3d3..584eaad2 100644 --- a/src/Checker/CheckerManager.php +++ b/src/Checker/CheckerManager.php @@ -12,7 +12,8 @@ namespace Jose\Checker; use Assert\Assertion; -use Jose\Object; +use Jose\Object\JWSInterface; +use Jose\Object\JWTInterface; /** * Class CheckerManager. @@ -34,7 +35,7 @@ class CheckerManager implements CheckerManagerInterface * * @return string[] */ - private function checkJWT(Object\JWTInterface $jwt) + private function checkJWT(JWTInterface $jwt) { $checked_claims = []; @@ -63,7 +64,7 @@ private function checkHeaders(array $protected_headers, array $headers, array $c /** * {@inheritdoc} */ - public function checkJWS(Object\JWSInterface $jws, $signature) + public function checkJWS(JWSInterface $jws, $signature) { Assertion::integer($signature); Assertion::lessThan($signature, $jws->countSignatures()); diff --git a/src/KeyConverter/ECKey.php b/src/KeyConverter/ECKey.php index e412bd6b..5d939bc3 100644 --- a/src/KeyConverter/ECKey.php +++ b/src/KeyConverter/ECKey.php @@ -14,7 +14,7 @@ use Assert\Assertion; use Base64Url\Base64Url; use FG\ASN1\ExplicitlyTaggedObject; -use FG\ASN1\Object; +use FG\ASN1\ASNObject; use FG\ASN1\Universal\BitString; use FG\ASN1\Universal\Integer; use FG\ASN1\Universal\ObjectIdentifier; @@ -64,7 +64,7 @@ public function __construct($data) private function loadPEM($data) { $data = base64_decode(preg_replace('#-.*-|\r|\n#', '', $data)); - $asnObject = Object::fromBinary($data); + $asnObject = ASNObject::fromBinary($data); Assertion::isInstanceOf($asnObject, Sequence::class); $children = $asnObject->getChildren(); @@ -89,7 +89,7 @@ private function loadPEM($data) private function loadPKCS8(array $children) { $binary = hex2bin($children[2]->getContent()); - $asnObject = Object::fromBinary($binary); + $asnObject = ASNObject::fromBinary($binary); Assertion::isInstanceOf($asnObject, Sequence::class); return $asnObject->getChildren(); @@ -193,20 +193,20 @@ private function loadPublicPEM(array $children) } /** - * @param \FG\ASN1\Object $children + * @param \FG\ASN1\ASNObject $children */ - private function verifyVersion(Object $children) + private function verifyVersion(ASNObject $children) { Assertion::isInstanceOf($children, Integer::class, 'Unable to load the key'); Assertion::eq(1, $children->getContent(), 'Unable to load the key'); } /** - * @param \FG\ASN1\Object $children - * @param string|null $x - * @param string|null $y + * @param \FG\ASN1\ASNObject $children + * @param string|null $x + * @param string|null $y */ - private function getXAndY(Object $children, &$x, &$y) + private function getXAndY(ASNObject $children, &$x, &$y) { Assertion::isInstanceOf($children, ExplicitlyTaggedObject::class, 'Unable to load the key'); Assertion::isArray($children->getContent(), 'Unable to load the key'); @@ -222,11 +222,11 @@ private function getXAndY(Object $children, &$x, &$y) } /** - * @param \FG\ASN1\Object $children + * @param \FG\ASN1\ASNObject $children * * @return string */ - private function getD(Object $children) + private function getD(ASNObject $children) { Assertion::isInstanceOf($children, '\FG\ASN1\Universal\OctetString', 'Unable to load the key'); diff --git a/tests/TestCase.php b/tests/BaseTestCase.php similarity index 99% rename from tests/TestCase.php rename to tests/BaseTestCase.php index 0be318cc..1c347690 100644 --- a/tests/TestCase.php +++ b/tests/BaseTestCase.php @@ -18,11 +18,12 @@ use Jose\Test\Stub\IssuerChecker; use Jose\Test\Stub\JtiChecker; use Jose\Test\Stub\SubjectChecker; +use PHPUnit\Framework\TestCase; /** * Class TestCase. */ -class TestCase extends \PHPUnit_Framework_TestCase +class BaseTestCase extends TestCase { /** * @var \Jose\Checker\CheckerManagerInterface|null diff --git a/tests/CVE/InvalidCurveAttackTest.php b/tests/CVE/InvalidCurveAttackBaseTest.php similarity index 97% rename from tests/CVE/InvalidCurveAttackTest.php rename to tests/CVE/InvalidCurveAttackBaseTest.php index 02071f61..42083ae9 100644 --- a/tests/CVE/InvalidCurveAttackTest.php +++ b/tests/CVE/InvalidCurveAttackBaseTest.php @@ -11,13 +11,13 @@ use Jose\Decrypter; use Jose\Loader; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; /** * @group CVE * @group Functional */ -class InvalidCurveAttackTest extends TestCase +class InvalidCurveAttackBaseTest extends BaseTestCase { /** * @expectedException \InvalidArgumentException diff --git a/tests/Functional/CheckerManagerTest.php b/tests/Functional/CheckerManagerBaseTest.php similarity index 99% rename from tests/Functional/CheckerManagerTest.php rename to tests/Functional/CheckerManagerBaseTest.php index c1a1bf6a..3d91a904 100644 --- a/tests/Functional/CheckerManagerTest.php +++ b/tests/Functional/CheckerManagerBaseTest.php @@ -11,13 +11,13 @@ use Jose\Factory\JWSFactory; use Jose\Object\JWK; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; /** * @group CheckerManager * @group Functional */ -class CheckerManagerTest extends TestCase +class CheckerManagerBaseTest extends BaseTestCase { /** * @expectedException \InvalidArgumentException diff --git a/tests/Functional/EncrypterTest.php b/tests/Functional/EncrypterBaseTest.php similarity index 77% rename from tests/Functional/EncrypterTest.php rename to tests/Functional/EncrypterBaseTest.php index 7d32dd20..f8e74517 100644 --- a/tests/Functional/EncrypterTest.php +++ b/tests/Functional/EncrypterBaseTest.php @@ -18,7 +18,7 @@ use Jose\Object\JWK; use Jose\Object\JWKSet; use Jose\Test\Stub\FakeLogger; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; /** * Class EncrypterTest. @@ -26,7 +26,7 @@ * @group Encrypter * @group Functional */ -class EncrypterTest extends TestCase +class EncrypterBaseTest extends BaseTestCase { public function testEncryptWithJWTInput() { @@ -53,16 +53,16 @@ public function testEncryptWithJWTInput() $loader = new Loader(new FakeLogger()); $loaded = $loader->load($encrypted); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('RSA-OAEP-256', $loaded->getSharedProtectedHeader('alg')); - $this->assertEquals('A256CBC-HS512', $loaded->getSharedProtectedHeader('enc')); - $this->assertEquals('DEF', $loaded->getSharedProtectedHeader('zip')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('RSA-OAEP-256', $loaded->getSharedProtectedHeader('alg')); + self::assertEquals('A256CBC-HS512', $loaded->getSharedProtectedHeader('enc')); + self::assertEquals('DEF', $loaded->getSharedProtectedHeader('zip')); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getPrivateKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertEquals('FOO', $loaded->getPayload()); + self::assertEquals(0, $index); + self::assertEquals('FOO', $loaded->getPayload()); } public function testCreateCompactJWEUsingFactory() @@ -80,17 +80,17 @@ public function testCreateCompactJWEUsingFactory() $loader = new Loader(new FakeLogger()); $loaded = $loader->load($jwe); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('RSA-OAEP-256', $loaded->getSharedProtectedHeader('alg')); - $this->assertEquals('A256CBC-HS512', $loaded->getSharedProtectedHeader('enc')); - $this->assertEquals('DEF', $loaded->getSharedProtectedHeader('zip')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('RSA-OAEP-256', $loaded->getSharedProtectedHeader('alg')); + self::assertEquals('A256CBC-HS512', $loaded->getSharedProtectedHeader('enc')); + self::assertEquals('DEF', $loaded->getSharedProtectedHeader('zip')); + self::assertNull($loaded->getPayload()); $decrypter = Decrypter::createDecrypter(['RSA-OAEP-256'], ['A256CBC-HS512'], ['DEF'], new FakeLogger()); $decrypter->decryptUsingKeySet($loaded, $this->getPrivateKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertEquals('FOO', $loaded->getPayload()); + self::assertEquals(0, $index); + self::assertEquals('FOO', $loaded->getPayload()); } public function testCreateFlattenedJWEUsingFactory() @@ -115,20 +115,20 @@ public function testCreateFlattenedJWEUsingFactory() $loader = new Loader(new FakeLogger()); $loaded = $loader->load($jwe); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('RSA-OAEP-256', $loaded->getSharedProtectedHeader('alg')); - $this->assertEquals('A256CBC-HS512', $loaded->getSharedProtectedHeader('enc')); - $this->assertEquals('DEF', $loaded->getSharedProtectedHeader('zip')); - $this->assertEquals('bar', $loaded->getSharedHeader('foo')); - $this->assertEquals('A,B,C,D', $loaded->getAAD('foo')); - $this->assertEquals('ploc', $loaded->getRecipient(0)->getHeader('plic')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('RSA-OAEP-256', $loaded->getSharedProtectedHeader('alg')); + self::assertEquals('A256CBC-HS512', $loaded->getSharedProtectedHeader('enc')); + self::assertEquals('DEF', $loaded->getSharedProtectedHeader('zip')); + self::assertEquals('bar', $loaded->getSharedHeader('foo')); + self::assertEquals('A,B,C,D', $loaded->getAAD('foo')); + self::assertEquals('ploc', $loaded->getRecipient(0)->getHeader('plic')); + self::assertNull($loaded->getPayload()); $decrypter = Decrypter::createDecrypter(['RSA-OAEP-256'], ['A256CBC-HS512'], ['DEF'], new FakeLogger()); $decrypter->decryptUsingKeySet($loaded, $this->getPrivateKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertEquals('FOO', $loaded->getPayload()); + self::assertEquals(0, $index); + self::assertEquals('FOO', $loaded->getPayload()); } public function testEncryptAndLoadFlattenedWithAAD() @@ -156,17 +156,17 @@ public function testEncryptAndLoadFlattenedWithAAD() $loader = new Loader(new FakeLogger()); $loaded = $loader->load($encrypted); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('RSA-OAEP-256', $loaded->getSharedProtectedHeader('alg')); - $this->assertEquals('A256CBC-HS512', $loaded->getSharedProtectedHeader('enc')); - $this->assertEquals('DEF', $loaded->getSharedProtectedHeader('zip')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('RSA-OAEP-256', $loaded->getSharedProtectedHeader('alg')); + self::assertEquals('A256CBC-HS512', $loaded->getSharedProtectedHeader('enc')); + self::assertEquals('DEF', $loaded->getSharedProtectedHeader('zip')); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getPrivateKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertTrue(is_array($loaded->getPayload())); - $this->assertEquals($this->getKeyToEncrypt(), new JWK($loaded->getPayload())); + self::assertEquals(0, $index); + self::assertTrue(is_array($loaded->getPayload())); + self::assertEquals($this->getKeyToEncrypt(), new JWK($loaded->getPayload())); } /** @@ -207,7 +207,7 @@ public function testMultipleInstructionsNotAllowedWithCompactSerialization() $encrypter->encrypt($jwe); - $this->assertEquals(2, $jwe->countRecipients()); + self::assertEquals(2, $jwe->countRecipients()); } public function testMultipleInstructionsNotAllowedWithFlattenedSerialization() @@ -230,7 +230,7 @@ public function testMultipleInstructionsNotAllowedWithFlattenedSerialization() $encrypter->encrypt($jwe); - $this->assertEquals(2, $jwe->countRecipients()); + self::assertEquals(2, $jwe->countRecipients()); } /** @@ -331,17 +331,17 @@ public function testEncryptAndLoadFlattenedWithDeflateCompression() $loader = new Loader(new FakeLogger()); $loaded = $loader->load($encrypted); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('RSA-OAEP-256', $loaded->getSharedProtectedHeader('alg')); - $this->assertEquals('A128CBC-HS256', $loaded->getSharedProtectedHeader('enc')); - $this->assertEquals('DEF', $loaded->getSharedProtectedHeader('zip')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('RSA-OAEP-256', $loaded->getSharedProtectedHeader('alg')); + self::assertEquals('A128CBC-HS256', $loaded->getSharedProtectedHeader('enc')); + self::assertEquals('DEF', $loaded->getSharedProtectedHeader('zip')); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getPrivateKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertTrue(is_array($loaded->getPayload())); - $this->assertEquals($this->getKeySetToEncrypt(), new JWKSet($loaded->getPayload())); + self::assertEquals(0, $index); + self::assertTrue(is_array($loaded->getPayload())); + self::assertEquals($this->getKeySetToEncrypt(), new JWKSet($loaded->getPayload())); } /** @@ -453,17 +453,17 @@ public function testEncryptAndLoadCompactWithDirectKeyEncryption() $loader = new Loader(new FakeLogger()); $loaded = $loader->load($encrypted); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('dir', $loaded->getSharedProtectedHeader('alg')); - $this->assertEquals('A192CBC-HS384', $loaded->getSharedProtectedHeader('enc')); - $this->assertFalse($loaded->hasSharedHeader('zip')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('dir', $loaded->getSharedProtectedHeader('alg')); + self::assertEquals('A192CBC-HS384', $loaded->getSharedProtectedHeader('enc')); + self::assertFalse($loaded->hasSharedHeader('zip')); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getSymmetricKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertTrue(is_array($loaded->getPayload())); - $this->assertEquals($this->getKeyToEncrypt(), new JWK($loaded->getPayload())); + self::assertEquals(0, $index); + self::assertTrue(is_array($loaded->getPayload())); + self::assertEquals($this->getKeyToEncrypt(), new JWK($loaded->getPayload())); } public function testEncryptAndLoadCompactKeyAgreement() @@ -487,18 +487,18 @@ public function testEncryptAndLoadCompactKeyAgreement() $loader = new Loader(new FakeLogger()); $loaded = $loader->load($jwe->toFlattenedJSON(0)); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('ECDH-ES', $loaded->getSharedProtectedHeader('alg')); - $this->assertEquals('A192CBC-HS384', $loaded->getSharedProtectedHeader('enc')); - $this->assertFalse($loaded->hasSharedProtectedHeader('zip')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('ECDH-ES', $loaded->getSharedProtectedHeader('alg')); + self::assertEquals('A192CBC-HS384', $loaded->getSharedProtectedHeader('enc')); + self::assertFalse($loaded->hasSharedProtectedHeader('zip')); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getPrivateKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertTrue($loaded->hasClaims()); - $this->assertTrue($loaded->hasClaim('user_id')); - $this->assertEquals('1234', $loaded->getClaim('user_id')); + self::assertEquals(0, $index); + self::assertTrue($loaded->hasClaims()); + self::assertTrue($loaded->hasClaim('user_id')); + self::assertEquals('1234', $loaded->getClaim('user_id')); } public function testEncryptAndLoadCompactKeyAgreementWithWrappingCompact() @@ -522,18 +522,18 @@ public function testEncryptAndLoadCompactKeyAgreementWithWrappingCompact() $loader = new Loader(new FakeLogger()); $loaded = $loader->load($jwe->toFlattenedJSON(0)); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('ECDH-ES+A256KW', $loaded->getSharedProtectedHeader('alg')); - $this->assertEquals('A256CBC-HS512', $loaded->getSharedProtectedHeader('enc')); - $this->assertFalse($loaded->hasSharedProtectedHeader('zip')); - $this->assertFalse($loaded->hasSharedHeader('zip')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('ECDH-ES+A256KW', $loaded->getSharedProtectedHeader('alg')); + self::assertEquals('A256CBC-HS512', $loaded->getSharedProtectedHeader('enc')); + self::assertFalse($loaded->hasSharedProtectedHeader('zip')); + self::assertFalse($loaded->hasSharedHeader('zip')); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getPrivateKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertTrue(is_string($loaded->getPayload())); - $this->assertEquals('Live long and Prosper.', $loaded->getPayload()); + self::assertEquals(0, $index); + self::assertTrue(is_string($loaded->getPayload())); + self::assertEquals('Live long and Prosper.', $loaded->getPayload()); } public function testEncryptAndLoadWithGCMAndAAD() @@ -562,18 +562,18 @@ public function testEncryptAndLoadWithGCMAndAAD() $decrypter = Decrypter::createDecrypter(['A256GCM'], ['ECDH-ES+A256KW'], ['DEF'], new FakeLogger()); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('ECDH-ES+A256KW', $loaded->getSharedProtectedHeader('alg')); - $this->assertEquals('A256GCM', $loaded->getSharedProtectedHeader('enc')); - $this->assertFalse($loaded->hasSharedProtectedHeader('zip')); - $this->assertFalse($loaded->hasSharedHeader('zip')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('ECDH-ES+A256KW', $loaded->getSharedProtectedHeader('alg')); + self::assertEquals('A256GCM', $loaded->getSharedProtectedHeader('enc')); + self::assertFalse($loaded->hasSharedProtectedHeader('zip')); + self::assertFalse($loaded->hasSharedHeader('zip')); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getPrivateKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertTrue(is_string($loaded->getPayload())); - $this->assertEquals('Live long and Prosper.', $loaded->getPayload()); + self::assertEquals(0, $index); + self::assertTrue(is_string($loaded->getPayload())); + self::assertEquals('Live long and Prosper.', $loaded->getPayload()); } public function testEncryptAndLoadCompactKeyAgreementWithWrapping() @@ -598,21 +598,21 @@ public function testEncryptAndLoadCompactKeyAgreementWithWrapping() $loader = new Loader(new FakeLogger()); $loaded = $loader->load($jwe->toJSON()); - $this->assertEquals(2, $loaded->countRecipients()); + self::assertEquals(2, $loaded->countRecipients()); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('A256CBC-HS512', $loaded->getSharedProtectedHeader('enc')); - $this->assertEquals('ECDH-ES+A256KW', $loaded->getRecipient(0)->getHeader('alg')); - $this->assertEquals('RSA-OAEP-256', $loaded->getRecipient(1)->getHeader('alg')); - $this->assertFalse($loaded->hasSharedHeader('zip')); - $this->assertFalse($loaded->hasSharedProtectedHeader('zip')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('A256CBC-HS512', $loaded->getSharedProtectedHeader('enc')); + self::assertEquals('ECDH-ES+A256KW', $loaded->getRecipient(0)->getHeader('alg')); + self::assertEquals('RSA-OAEP-256', $loaded->getRecipient(1)->getHeader('alg')); + self::assertFalse($loaded->hasSharedHeader('zip')); + self::assertFalse($loaded->hasSharedProtectedHeader('zip')); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getPrivateKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertTrue(is_string($loaded->getPayload())); - $this->assertEquals('Live long and Prosper.', $loaded->getPayload()); + self::assertEquals(0, $index); + self::assertTrue(is_string($loaded->getPayload())); + self::assertEquals('Live long and Prosper.', $loaded->getPayload()); } /** diff --git a/tests/Functional/FlattenedTest.php b/tests/Functional/FlattenedBaseTest.php similarity index 67% rename from tests/Functional/FlattenedTest.php rename to tests/Functional/FlattenedBaseTest.php index 58ebc306..4a542030 100644 --- a/tests/Functional/FlattenedTest.php +++ b/tests/Functional/FlattenedBaseTest.php @@ -13,14 +13,14 @@ use Jose\Loader; use Jose\Object\JWEInterface; use Jose\Object\JWSInterface; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; /** * Class FlattenedTest. * * @group Functional */ -class FlattenedTest extends TestCase +class FlattenedBaseTest extends BaseTestCase { /** * @see https://tools.ietf.org/html/rfc7516#appendix-A.5 @@ -32,15 +32,15 @@ public function testLoadFlattenedJWE() $loader = new Loader(); $loaded = $loader->load('{"protected":"eyJlbmMiOiJBMTI4Q0JDLUhTMjU2In0","unprotected":{"jku":"https://server.example.com/keys.jwks"},"header":{"alg":"A128KW","kid":"7"},"encrypted_key":"6KB707dM9YTIgHtLvtgWQ8mKwboJW3of9locizkDTHzBC2IlrT1oOQ","iv":"AxY8DCtDaGlsbGljb3RoZQ","ciphertext":"KDlTtXchhZTGufMYmOYGS4HffxPSUrfmqCHXaI9wOGY","tag":"Mz-VPPyU4RlcuYv1IwIvzw"}'); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('A128KW', $loaded->getRecipient(0)->getHeader('alg')); - $this->assertEquals('A128CBC-HS256', $loaded->getSharedProtectedHeader('enc')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('A128KW', $loaded->getRecipient(0)->getHeader('alg')); + self::assertEquals('A128CBC-HS256', $loaded->getSharedProtectedHeader('enc')); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getSymmetricKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertEquals('Live long and prosper.', $loaded->getPayload()); + self::assertEquals(0, $index); + self::assertEquals('Live long and prosper.', $loaded->getPayload()); } /** @@ -51,8 +51,8 @@ public function testLoadFlattenedJWS() $loader = new Loader(); $loaded = $loader->load('{"payload":"eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ","protected":"eyJhbGciOiJFUzI1NiJ9","header":{"kid":"e9bc097a-ce51-4036-9562-d2ade882db0d"},"signature":"DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q"}'); - $this->assertInstanceOf(JWSInterface::class, $loaded); - $this->assertEquals('ES256', $loaded->getSignature(0)->getProtectedHeader('alg')); - $this->assertEquals(['iss' => 'joe', 'exp' => 1300819380, 'http://example.com/is_root' => true], $loaded->getPayload()); + self::assertInstanceOf(JWSInterface::class, $loaded); + self::assertEquals('ES256', $loaded->getSignature(0)->getProtectedHeader('alg')); + self::assertEquals(['iss' => 'joe', 'exp' => 1300819380, 'http://example.com/is_root' => true], $loaded->getPayload()); } } diff --git a/tests/Functional/ForeignJWTTest.php b/tests/Functional/ForeignJWTTest.php index d716ece7..73932699 100644 --- a/tests/Functional/ForeignJWTTest.php +++ b/tests/Functional/ForeignJWTTest.php @@ -12,12 +12,13 @@ use Jose\Factory\JWKFactory; use Jose\Loader; use Jose\Object\JWSInterface; +use Jose\Test\BaseTestCase; /** * @group ForeignJWT * @group Functional */ -class ForeignJWTTest extends \PHPUnit_Framework_TestCase +class ForeignJWTTest extends BaseTestCase { /* * The following test uses an assertion created with another library. @@ -53,9 +54,9 @@ public function testValidJWTFromOtherLibrary() ], ]; - $this->assertInstanceOf(JWSInterface::class, $jwt); - $this->assertEquals($expected_index, $index); - $this->assertEquals($expected_headers, $jwt->getSignature(0)->getAllHeaders()); - $this->assertEquals($expected_claims, $jwt->getClaims()); + self::assertInstanceOf(JWSInterface::class, $jwt); + self::assertEquals($expected_index, $index); + self::assertEquals($expected_headers, $jwt->getSignature(0)->getAllHeaders()); + self::assertEquals($expected_claims, $jwt->getClaims()); } } diff --git a/tests/Functional/LoaderAndCreatorTest.php b/tests/Functional/LoaderAndCreatorBaseTest.php similarity index 96% rename from tests/Functional/LoaderAndCreatorTest.php rename to tests/Functional/LoaderAndCreatorBaseTest.php index 1a75e224..c90a9007 100644 --- a/tests/Functional/LoaderAndCreatorTest.php +++ b/tests/Functional/LoaderAndCreatorBaseTest.php @@ -16,7 +16,7 @@ use Jose\Object\JWK; use Jose\Object\JWKSet; use Jose\Signer; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; use Jose\Verifier; /** @@ -24,7 +24,7 @@ * @group JWTCreator * @group Functional */ -class LoaderAndCreatorTest extends TestCase +class LoaderAndCreatorBaseTest extends BaseTestCase { public function testSignAndLoadUsingJWTCreatorAndJWTLoader() { diff --git a/tests/Functional/SignerTest.php b/tests/Functional/SignerBaseTest.php similarity index 77% rename from tests/Functional/SignerTest.php rename to tests/Functional/SignerBaseTest.php index 5f8c2bfa..09bf10ba 100644 --- a/tests/Functional/SignerTest.php +++ b/tests/Functional/SignerBaseTest.php @@ -15,14 +15,14 @@ use Jose\Object\JWKSet; use Jose\Object\JWSInterface; use Jose\Signer; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; use Jose\Verifier; /** * @group Signer * @group Functional */ -class SignerTest extends TestCase +class SignerBaseTest extends BaseTestCase { /** * @expectedException \InvalidArgumentException @@ -71,15 +71,15 @@ public function testSignAndLoadCompact() $signer->sign($jws); - $this->assertEquals(2, $jws->countSignatures()); + self::assertEquals(2, $jws->countSignatures()); $loader = new Loader(); $loaded = $loader->load($jws->toJSON()); - $this->assertInstanceOf(JWSInterface::class, $loaded); - $this->assertTrue(is_array($loaded->getPayload())); - $this->assertEquals('HS512', $loaded->getSignature(0)->getProtectedHeader('alg')); - $this->assertEquals('RS512', $loaded->getSignature(1)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $loaded); + self::assertTrue(is_array($loaded->getPayload())); + self::assertEquals('HS512', $loaded->getSignature(0)->getProtectedHeader('alg')); + self::assertEquals('RS512', $loaded->getSignature(1)->getProtectedHeader('alg')); } public function testSignMultipleInstructionWithCompactRepresentation() @@ -98,9 +98,9 @@ public function testSignMultipleInstructionWithCompactRepresentation() $signer->sign($jws); - $this->assertEquals(2, $jws->countSignatures()); - $this->assertEquals('eyJhbGciOiJIUzUxMiJ9.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.TjxvVLKLc1kU5XW1NjZlI6_kQHjeU2orTWBZ7p0KuRzq_9lyPWR04PAUpbYkaLJLsmIJ8Fxi8Gsrc0khPtFxfQ', $jws->toCompactJSON(0)); - $this->assertEquals('eyJhbGciOiJSUzUxMiJ9.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.cR-npy2oEi275rpeTAKooLRzOhIOFMewpzE38CLx4_CtdkN4Y7EUlca9ryV6yGMH8SswUqosMnmUU8XYg7xkuNAc6mCODJVF2exfb_Mulmr9YolQrLFrFRsMk1rztXMinCMQeCe5ue3Ck4E4aJlIkjf-d0DJktoIhH6d2gZ-iJeLQ32wcBhPcEbj2gr7K_wYKlEXhKFwG59OE-hIi9IHXEKvK-2V5vzZLVC80G4aWYd3D-2eX3LF1K69NP04jGcu1D4l9UV8zTz1gOWe697iZG0JyKhSccUaHZ0TfEa8cT0tm6xTz6tpUGSDdvPQU8JCU8GTOsi9ifxTsI-GlWE3YA', $jws->toCompactJSON(1)); + self::assertEquals(2, $jws->countSignatures()); + self::assertEquals('eyJhbGciOiJIUzUxMiJ9.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.TjxvVLKLc1kU5XW1NjZlI6_kQHjeU2orTWBZ7p0KuRzq_9lyPWR04PAUpbYkaLJLsmIJ8Fxi8Gsrc0khPtFxfQ', $jws->toCompactJSON(0)); + self::assertEquals('eyJhbGciOiJSUzUxMiJ9.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.cR-npy2oEi275rpeTAKooLRzOhIOFMewpzE38CLx4_CtdkN4Y7EUlca9ryV6yGMH8SswUqosMnmUU8XYg7xkuNAc6mCODJVF2exfb_Mulmr9YolQrLFrFRsMk1rztXMinCMQeCe5ue3Ck4E4aJlIkjf-d0DJktoIhH6d2gZ-iJeLQ32wcBhPcEbj2gr7K_wYKlEXhKFwG59OE-hIi9IHXEKvK-2V5vzZLVC80G4aWYd3D-2eX3LF1K69NP04jGcu1D4l9UV8zTz1gOWe697iZG0JyKhSccUaHZ0TfEa8cT0tm6xTz6tpUGSDdvPQU8JCU8GTOsi9ifxTsI-GlWE3YA', $jws->toCompactJSON(1)); } public function testCreateCompactJWSUsingFactory() @@ -110,10 +110,10 @@ public function testCreateCompactJWSUsingFactory() $jws2 = JWSFactory::createJWSWithDetachedPayloadToCompactJSON('Live long and Prosper.', $this->getKey1(), ['alg' => 'HS512']); $jws3 = JWSFactory::createJWSWithDetachedPayloadToCompactJSON('Live long and Prosper.', $this->getKey2(), ['alg' => 'RS512']); - $this->assertEquals('eyJhbGciOiJIUzUxMiJ9.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.TjxvVLKLc1kU5XW1NjZlI6_kQHjeU2orTWBZ7p0KuRzq_9lyPWR04PAUpbYkaLJLsmIJ8Fxi8Gsrc0khPtFxfQ', $jws0); - $this->assertEquals('eyJhbGciOiJSUzUxMiJ9.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.cR-npy2oEi275rpeTAKooLRzOhIOFMewpzE38CLx4_CtdkN4Y7EUlca9ryV6yGMH8SswUqosMnmUU8XYg7xkuNAc6mCODJVF2exfb_Mulmr9YolQrLFrFRsMk1rztXMinCMQeCe5ue3Ck4E4aJlIkjf-d0DJktoIhH6d2gZ-iJeLQ32wcBhPcEbj2gr7K_wYKlEXhKFwG59OE-hIi9IHXEKvK-2V5vzZLVC80G4aWYd3D-2eX3LF1K69NP04jGcu1D4l9UV8zTz1gOWe697iZG0JyKhSccUaHZ0TfEa8cT0tm6xTz6tpUGSDdvPQU8JCU8GTOsi9ifxTsI-GlWE3YA', $jws1); - $this->assertEquals('eyJhbGciOiJIUzUxMiJ9..TjxvVLKLc1kU5XW1NjZlI6_kQHjeU2orTWBZ7p0KuRzq_9lyPWR04PAUpbYkaLJLsmIJ8Fxi8Gsrc0khPtFxfQ', $jws2); - $this->assertEquals('eyJhbGciOiJSUzUxMiJ9..cR-npy2oEi275rpeTAKooLRzOhIOFMewpzE38CLx4_CtdkN4Y7EUlca9ryV6yGMH8SswUqosMnmUU8XYg7xkuNAc6mCODJVF2exfb_Mulmr9YolQrLFrFRsMk1rztXMinCMQeCe5ue3Ck4E4aJlIkjf-d0DJktoIhH6d2gZ-iJeLQ32wcBhPcEbj2gr7K_wYKlEXhKFwG59OE-hIi9IHXEKvK-2V5vzZLVC80G4aWYd3D-2eX3LF1K69NP04jGcu1D4l9UV8zTz1gOWe697iZG0JyKhSccUaHZ0TfEa8cT0tm6xTz6tpUGSDdvPQU8JCU8GTOsi9ifxTsI-GlWE3YA', $jws3); + self::assertEquals('eyJhbGciOiJIUzUxMiJ9.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.TjxvVLKLc1kU5XW1NjZlI6_kQHjeU2orTWBZ7p0KuRzq_9lyPWR04PAUpbYkaLJLsmIJ8Fxi8Gsrc0khPtFxfQ', $jws0); + self::assertEquals('eyJhbGciOiJSUzUxMiJ9.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.cR-npy2oEi275rpeTAKooLRzOhIOFMewpzE38CLx4_CtdkN4Y7EUlca9ryV6yGMH8SswUqosMnmUU8XYg7xkuNAc6mCODJVF2exfb_Mulmr9YolQrLFrFRsMk1rztXMinCMQeCe5ue3Ck4E4aJlIkjf-d0DJktoIhH6d2gZ-iJeLQ32wcBhPcEbj2gr7K_wYKlEXhKFwG59OE-hIi9IHXEKvK-2V5vzZLVC80G4aWYd3D-2eX3LF1K69NP04jGcu1D4l9UV8zTz1gOWe697iZG0JyKhSccUaHZ0TfEa8cT0tm6xTz6tpUGSDdvPQU8JCU8GTOsi9ifxTsI-GlWE3YA', $jws1); + self::assertEquals('eyJhbGciOiJIUzUxMiJ9..TjxvVLKLc1kU5XW1NjZlI6_kQHjeU2orTWBZ7p0KuRzq_9lyPWR04PAUpbYkaLJLsmIJ8Fxi8Gsrc0khPtFxfQ', $jws2); + self::assertEquals('eyJhbGciOiJSUzUxMiJ9..cR-npy2oEi275rpeTAKooLRzOhIOFMewpzE38CLx4_CtdkN4Y7EUlca9ryV6yGMH8SswUqosMnmUU8XYg7xkuNAc6mCODJVF2exfb_Mulmr9YolQrLFrFRsMk1rztXMinCMQeCe5ue3Ck4E4aJlIkjf-d0DJktoIhH6d2gZ-iJeLQ32wcBhPcEbj2gr7K_wYKlEXhKFwG59OE-hIi9IHXEKvK-2V5vzZLVC80G4aWYd3D-2eX3LF1K69NP04jGcu1D4l9UV8zTz1gOWe697iZG0JyKhSccUaHZ0TfEa8cT0tm6xTz6tpUGSDdvPQU8JCU8GTOsi9ifxTsI-GlWE3YA', $jws3); $loader = new Loader(); $loaded_0 = $loader->loadAndVerifySignatureUsingKey($jws0, $this->getKey1(), ['HS512']); @@ -121,10 +121,10 @@ public function testCreateCompactJWSUsingFactory() $loaded_2 = $loader->loadAndVerifySignatureUsingKeyAndDetachedPayload($jws2, $this->getKey1(), ['HS512'], 'Live long and Prosper.'); $loaded_3 = $loader->loadAndVerifySignatureUsingKeyAndDetachedPayload($jws3, $this->getKey2(), ['RS512'], 'Live long and Prosper.'); - $this->assertInstanceOf(JWSInterface::class, $loaded_0); - $this->assertInstanceOf(JWSInterface::class, $loaded_1); - $this->assertInstanceOf(JWSInterface::class, $loaded_2); - $this->assertInstanceOf(JWSInterface::class, $loaded_3); + self::assertInstanceOf(JWSInterface::class, $loaded_0); + self::assertInstanceOf(JWSInterface::class, $loaded_1); + self::assertInstanceOf(JWSInterface::class, $loaded_2); + self::assertInstanceOf(JWSInterface::class, $loaded_3); } public function testSignMultipleInstructionWithFlattenedRepresentation() @@ -143,9 +143,9 @@ public function testSignMultipleInstructionWithFlattenedRepresentation() $signer->sign($jws); - $this->assertEquals(2, $jws->countSignatures()); - $this->assertEquals('{"payload":"TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg","protected":"eyJhbGciOiJIUzUxMiJ9","signature":"TjxvVLKLc1kU5XW1NjZlI6_kQHjeU2orTWBZ7p0KuRzq_9lyPWR04PAUpbYkaLJLsmIJ8Fxi8Gsrc0khPtFxfQ"}', $jws->toFlattenedJSON(0)); - $this->assertEquals('{"payload":"TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg","protected":"eyJhbGciOiJSUzUxMiJ9","signature":"cR-npy2oEi275rpeTAKooLRzOhIOFMewpzE38CLx4_CtdkN4Y7EUlca9ryV6yGMH8SswUqosMnmUU8XYg7xkuNAc6mCODJVF2exfb_Mulmr9YolQrLFrFRsMk1rztXMinCMQeCe5ue3Ck4E4aJlIkjf-d0DJktoIhH6d2gZ-iJeLQ32wcBhPcEbj2gr7K_wYKlEXhKFwG59OE-hIi9IHXEKvK-2V5vzZLVC80G4aWYd3D-2eX3LF1K69NP04jGcu1D4l9UV8zTz1gOWe697iZG0JyKhSccUaHZ0TfEa8cT0tm6xTz6tpUGSDdvPQU8JCU8GTOsi9ifxTsI-GlWE3YA"}', $jws->toFlattenedJSON(1)); + self::assertEquals(2, $jws->countSignatures()); + self::assertEquals('{"payload":"TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg","protected":"eyJhbGciOiJIUzUxMiJ9","signature":"TjxvVLKLc1kU5XW1NjZlI6_kQHjeU2orTWBZ7p0KuRzq_9lyPWR04PAUpbYkaLJLsmIJ8Fxi8Gsrc0khPtFxfQ"}', $jws->toFlattenedJSON(0)); + self::assertEquals('{"payload":"TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg","protected":"eyJhbGciOiJSUzUxMiJ9","signature":"cR-npy2oEi275rpeTAKooLRzOhIOFMewpzE38CLx4_CtdkN4Y7EUlca9ryV6yGMH8SswUqosMnmUU8XYg7xkuNAc6mCODJVF2exfb_Mulmr9YolQrLFrFRsMk1rztXMinCMQeCe5ue3Ck4E4aJlIkjf-d0DJktoIhH6d2gZ-iJeLQ32wcBhPcEbj2gr7K_wYKlEXhKFwG59OE-hIi9IHXEKvK-2V5vzZLVC80G4aWYd3D-2eX3LF1K69NP04jGcu1D4l9UV8zTz1gOWe697iZG0JyKhSccUaHZ0TfEa8cT0tm6xTz6tpUGSDdvPQU8JCU8GTOsi9ifxTsI-GlWE3YA"}', $jws->toFlattenedJSON(1)); } public function testCreateFlattenedJWSUsingFactory() @@ -155,10 +155,10 @@ public function testCreateFlattenedJWSUsingFactory() $jws2 = JWSFactory::createJWSWithDetachedPayloadToFlattenedJSON('Live long and Prosper.', $this->getKey1(), ['alg' => 'HS512'], ['foo' => 'bar']); $jws3 = JWSFactory::createJWSWithDetachedPayloadToFlattenedJSON('Live long and Prosper.', $this->getKey2(), ['alg' => 'RS512'], ['plic' => 'ploc']); - $this->assertEquals('{"payload":"TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg","protected":"eyJhbGciOiJIUzUxMiJ9","header":{"foo":"bar"},"signature":"TjxvVLKLc1kU5XW1NjZlI6_kQHjeU2orTWBZ7p0KuRzq_9lyPWR04PAUpbYkaLJLsmIJ8Fxi8Gsrc0khPtFxfQ"}', $jws0); - $this->assertEquals('{"payload":"TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg","protected":"eyJhbGciOiJSUzUxMiJ9","header":{"plic":"ploc"},"signature":"cR-npy2oEi275rpeTAKooLRzOhIOFMewpzE38CLx4_CtdkN4Y7EUlca9ryV6yGMH8SswUqosMnmUU8XYg7xkuNAc6mCODJVF2exfb_Mulmr9YolQrLFrFRsMk1rztXMinCMQeCe5ue3Ck4E4aJlIkjf-d0DJktoIhH6d2gZ-iJeLQ32wcBhPcEbj2gr7K_wYKlEXhKFwG59OE-hIi9IHXEKvK-2V5vzZLVC80G4aWYd3D-2eX3LF1K69NP04jGcu1D4l9UV8zTz1gOWe697iZG0JyKhSccUaHZ0TfEa8cT0tm6xTz6tpUGSDdvPQU8JCU8GTOsi9ifxTsI-GlWE3YA"}', $jws1); - $this->assertEquals('{"protected":"eyJhbGciOiJIUzUxMiJ9","header":{"foo":"bar"},"signature":"TjxvVLKLc1kU5XW1NjZlI6_kQHjeU2orTWBZ7p0KuRzq_9lyPWR04PAUpbYkaLJLsmIJ8Fxi8Gsrc0khPtFxfQ"}', $jws2); - $this->assertEquals('{"protected":"eyJhbGciOiJSUzUxMiJ9","header":{"plic":"ploc"},"signature":"cR-npy2oEi275rpeTAKooLRzOhIOFMewpzE38CLx4_CtdkN4Y7EUlca9ryV6yGMH8SswUqosMnmUU8XYg7xkuNAc6mCODJVF2exfb_Mulmr9YolQrLFrFRsMk1rztXMinCMQeCe5ue3Ck4E4aJlIkjf-d0DJktoIhH6d2gZ-iJeLQ32wcBhPcEbj2gr7K_wYKlEXhKFwG59OE-hIi9IHXEKvK-2V5vzZLVC80G4aWYd3D-2eX3LF1K69NP04jGcu1D4l9UV8zTz1gOWe697iZG0JyKhSccUaHZ0TfEa8cT0tm6xTz6tpUGSDdvPQU8JCU8GTOsi9ifxTsI-GlWE3YA"}', $jws3); + self::assertEquals('{"payload":"TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg","protected":"eyJhbGciOiJIUzUxMiJ9","header":{"foo":"bar"},"signature":"TjxvVLKLc1kU5XW1NjZlI6_kQHjeU2orTWBZ7p0KuRzq_9lyPWR04PAUpbYkaLJLsmIJ8Fxi8Gsrc0khPtFxfQ"}', $jws0); + self::assertEquals('{"payload":"TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg","protected":"eyJhbGciOiJSUzUxMiJ9","header":{"plic":"ploc"},"signature":"cR-npy2oEi275rpeTAKooLRzOhIOFMewpzE38CLx4_CtdkN4Y7EUlca9ryV6yGMH8SswUqosMnmUU8XYg7xkuNAc6mCODJVF2exfb_Mulmr9YolQrLFrFRsMk1rztXMinCMQeCe5ue3Ck4E4aJlIkjf-d0DJktoIhH6d2gZ-iJeLQ32wcBhPcEbj2gr7K_wYKlEXhKFwG59OE-hIi9IHXEKvK-2V5vzZLVC80G4aWYd3D-2eX3LF1K69NP04jGcu1D4l9UV8zTz1gOWe697iZG0JyKhSccUaHZ0TfEa8cT0tm6xTz6tpUGSDdvPQU8JCU8GTOsi9ifxTsI-GlWE3YA"}', $jws1); + self::assertEquals('{"protected":"eyJhbGciOiJIUzUxMiJ9","header":{"foo":"bar"},"signature":"TjxvVLKLc1kU5XW1NjZlI6_kQHjeU2orTWBZ7p0KuRzq_9lyPWR04PAUpbYkaLJLsmIJ8Fxi8Gsrc0khPtFxfQ"}', $jws2); + self::assertEquals('{"protected":"eyJhbGciOiJSUzUxMiJ9","header":{"plic":"ploc"},"signature":"cR-npy2oEi275rpeTAKooLRzOhIOFMewpzE38CLx4_CtdkN4Y7EUlca9ryV6yGMH8SswUqosMnmUU8XYg7xkuNAc6mCODJVF2exfb_Mulmr9YolQrLFrFRsMk1rztXMinCMQeCe5ue3Ck4E4aJlIkjf-d0DJktoIhH6d2gZ-iJeLQ32wcBhPcEbj2gr7K_wYKlEXhKFwG59OE-hIi9IHXEKvK-2V5vzZLVC80G4aWYd3D-2eX3LF1K69NP04jGcu1D4l9UV8zTz1gOWe697iZG0JyKhSccUaHZ0TfEa8cT0tm6xTz6tpUGSDdvPQU8JCU8GTOsi9ifxTsI-GlWE3YA"}', $jws3); $loader = new Loader(); $loaded_0 = $loader->loadAndVerifySignatureUsingKey($jws0, $this->getKey1(), ['HS512']); @@ -166,10 +166,10 @@ public function testCreateFlattenedJWSUsingFactory() $loaded_2 = $loader->loadAndVerifySignatureUsingKeyAndDetachedPayload($jws2, $this->getKey1(), ['HS512'], 'Live long and Prosper.'); $loaded_3 = $loader->loadAndVerifySignatureUsingKeyAndDetachedPayload($jws3, $this->getKey2(), ['RS512'], 'Live long and Prosper.'); - $this->assertInstanceOf(JWSInterface::class, $loaded_0); - $this->assertInstanceOf(JWSInterface::class, $loaded_1); - $this->assertInstanceOf(JWSInterface::class, $loaded_2); - $this->assertInstanceOf(JWSInterface::class, $loaded_3); + self::assertInstanceOf(JWSInterface::class, $loaded_0); + self::assertInstanceOf(JWSInterface::class, $loaded_1); + self::assertInstanceOf(JWSInterface::class, $loaded_2); + self::assertInstanceOf(JWSInterface::class, $loaded_3); } /** @@ -222,10 +222,10 @@ public function testSignAndLoadFlattened() $loader = new Loader(); $loaded = $loader->load($jws->toJSON()); - $this->assertEquals(1, $loaded->countSignatures()); - $this->assertInstanceOf(JWSInterface::class, $loaded); - $this->assertTrue(is_array($loaded->getPayload())); - $this->assertEquals('HS512', $loaded->getSignature(0)->getProtectedHeader('alg')); + self::assertEquals(1, $loaded->countSignatures()); + self::assertInstanceOf(JWSInterface::class, $loaded); + self::assertTrue(is_array($loaded->getPayload())); + self::assertEquals('HS512', $loaded->getSignature(0)->getProtectedHeader('alg')); } public function testSignAndLoad() @@ -249,14 +249,14 @@ public function testSignAndLoad() $loader = new Loader(); $loaded = $loader->load($jws->toJSON()); - $this->assertEquals(2, $loaded->countSignatures()); - $this->assertInstanceOf(JWSInterface::class, $loaded); - $this->assertEquals('Live long and Prosper.', $loaded->getPayload()); + self::assertEquals(2, $loaded->countSignatures()); + self::assertInstanceOf(JWSInterface::class, $loaded); + self::assertEquals('Live long and Prosper.', $loaded->getPayload()); $verifier->verifyWithKeySet($loaded, $this->getSymmetricKeySet()); $verifier->verifyWithKeySet($loaded, $this->getPublicKeySet()); - $this->assertEquals('HS512', $loaded->getSignature(0)->getProtectedHeader('alg')); - $this->assertEquals('RS512', $loaded->getSignature(1)->getProtectedHeader('alg')); + self::assertEquals('HS512', $loaded->getSignature(0)->getProtectedHeader('alg')); + self::assertEquals('RS512', $loaded->getSignature(1)->getProtectedHeader('alg')); } /** @@ -279,9 +279,9 @@ public function testSignAndLoadWithWrongKeys() $loader = new Loader(); $loaded = $loader->load($jws->toJSON()); - $this->assertEquals(1, $loaded->countSignatures()); - $this->assertInstanceOf(JWSInterface::class, $loaded); - $this->assertEquals('Live long and Prosper.', $loaded->getPayload()); + self::assertEquals(1, $loaded->countSignatures()); + self::assertInstanceOf(JWSInterface::class, $loaded); + self::assertEquals('Live long and Prosper.', $loaded->getPayload()); $verifier->verifyWithKeySet($loaded, $this->getSymmetricKeySet()); } @@ -306,9 +306,9 @@ public function testSignAndLoadWithUnsupportedAlgorithm() $loader = new Loader(); $loaded = $loader->load($jws->toJSON()); - $this->assertEquals(1, $loaded->countSignatures()); - $this->assertInstanceOf(JWSInterface::class, $loaded); - $this->assertEquals('Live long and Prosper.', $loaded->getPayload()); + self::assertEquals(1, $loaded->countSignatures()); + self::assertInstanceOf(JWSInterface::class, $loaded); + self::assertEquals('Live long and Prosper.', $loaded->getPayload()); $verifier->verifyWithKeySet($loaded, $this->getSymmetricKeySet()); } @@ -326,9 +326,9 @@ public function testSignAndLoadWithJWSWithoutSignatures() $loader = new Loader(); $loaded = $loader->load($jws); - $this->assertEquals(0, $loaded->countSignatures()); - $this->assertInstanceOf(JWSInterface::class, $loaded); - $this->assertEquals($payload, $loaded->getPayload()); + self::assertEquals(0, $loaded->countSignatures()); + self::assertInstanceOf(JWSInterface::class, $loaded); + self::assertEquals($payload, $loaded->getPayload()); $verifier->verifyWithKeySet($loaded, $this->getSymmetricKeySet()); } @@ -381,7 +381,7 @@ public function testCompactJSONWithUnencodedDetachedPayload() ]); $jws = JWSFactory::createJWSWithDetachedPayloadToCompactJSON($payload, $key, $protected_header); - $this->assertEquals('eyJhbGciOiJIUzI1NiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..A5dxf2s96_n5FLueVuW1Z_vh161FwXZC4YLPff6dmDY', $jws); + self::assertEquals('eyJhbGciOiJIUzI1NiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..A5dxf2s96_n5FLueVuW1Z_vh161FwXZC4YLPff6dmDY', $jws); $loader = new Loader(); $loaded = $loader->loadAndVerifySignatureUsingKeyAndDetachedPayload( @@ -392,9 +392,9 @@ public function testCompactJSONWithUnencodedDetachedPayload() $index ); - $this->assertInstanceOf(JWSInterface::class, $loaded); - $this->assertEquals(0, $index); - $this->assertEquals($protected_header, $loaded->getSignature(0)->getProtectedHeaders()); + self::assertInstanceOf(JWSInterface::class, $loaded); + self::assertEquals(0, $index); + self::assertEquals($protected_header, $loaded->getSignature(0)->getProtectedHeaders()); } /** @@ -426,7 +426,7 @@ public function testCompactJSONWithUnencodedDetachedPayloadAndMultipleSignatures $expected_result = '{"signatures":[{"signature":"A5dxf2s96_n5FLueVuW1Z_vh161FwXZC4YLPff6dmDY","protected":"eyJhbGciOiJIUzI1NiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19"},{"signature":"5mvfOroL-g7HyqJoozehmsaqmvTYGEq5jTI1gVvoEoQ","protected":"eyJhbGciOiJIUzI1NiJ9"}]}'; - $this->assertEquals($expected_result, $jws->toJSON()); + self::assertEquals($expected_result, $jws->toJSON()); $loader = new Loader(); $loaded1 = $loader->loadAndVerifySignatureUsingKeyAndDetachedPayload( @@ -444,12 +444,12 @@ public function testCompactJSONWithUnencodedDetachedPayloadAndMultipleSignatures $index2 ); - $this->assertInstanceOf(JWSInterface::class, $loaded1); - $this->assertInstanceOf(JWSInterface::class, $loaded2); - $this->assertEquals(0, $index1); - $this->assertEquals(0, $index2); - $this->assertEquals($protected_header1, $loaded1->getSignature(0)->getProtectedHeaders()); - $this->assertEquals($protected_header2, $loaded2->getSignature(0)->getProtectedHeaders()); + self::assertInstanceOf(JWSInterface::class, $loaded1); + self::assertInstanceOf(JWSInterface::class, $loaded2); + self::assertEquals(0, $index1); + self::assertEquals(0, $index2); + self::assertEquals($protected_header1, $loaded1->getSignature(0)->getProtectedHeaders()); + self::assertEquals($protected_header2, $loaded2->getSignature(0)->getProtectedHeaders()); } /** @@ -573,7 +573,7 @@ public function testFlattenedJSONWithUnencodedPayload() $jws = JWSFactory::createJWSToFlattenedJSON($payload, $key, $protected_header); - $this->assertEquals($expected_result, json_decode($jws, true)); + self::assertEquals($expected_result, json_decode($jws, true)); $loader = new Loader(); $loaded = $loader->loadAndVerifySignatureUsingKey( @@ -583,10 +583,10 @@ public function testFlattenedJSONWithUnencodedPayload() $index ); - $this->assertInstanceOf(JWSInterface::class, $loaded); - $this->assertEquals($payload, $loaded->getPayload()); - $this->assertEquals(0, $index); - $this->assertEquals($protected_header, $loaded->getSignature(0)->getProtectedHeaders()); + self::assertInstanceOf(JWSInterface::class, $loaded); + self::assertEquals($payload, $loaded->getPayload()); + self::assertEquals(0, $index); + self::assertEquals($protected_header, $loaded->getSignature(0)->getProtectedHeaders()); } /** @@ -614,7 +614,7 @@ public function testFlattenedJSONWithUnencodedDetachedPayload() $jws = JWSFactory::createJWSWithDetachedPayloadToFlattenedJSON($payload, $key, $protected_header); - $this->assertEquals($expected_result, json_decode($jws, true)); + self::assertEquals($expected_result, json_decode($jws, true)); } /** @@ -630,9 +630,9 @@ public function testSignAndLoadWithoutAlgParameterInTheHeader() $loader = new Loader(); $loaded = $loader->load($jws); - $this->assertEquals(1, $loaded->countSignatures()); - $this->assertInstanceOf(JWSInterface::class, $loaded); - $this->assertEquals($payload, $loaded->getPayload()); + self::assertEquals(1, $loaded->countSignatures()); + self::assertInstanceOf(JWSInterface::class, $loaded); + self::assertEquals($payload, $loaded->getPayload()); $verifier->verifyWithKeySet($loaded, $this->getSymmetricKeySet()); } @@ -657,14 +657,14 @@ public function testSignAndLoadJWKSet() $loader = new Loader(); $loaded = $loader->load($jws->toJSON()); - $this->assertEquals(2, $loaded->countSignatures()); - $this->assertInstanceOf(JWSInterface::class, $loaded); - $this->assertEquals($this->getKeyset(), new JWKSet($loaded->getPayload())); + self::assertEquals(2, $loaded->countSignatures()); + self::assertInstanceOf(JWSInterface::class, $loaded); + self::assertEquals($this->getKeyset(), new JWKSet($loaded->getPayload())); $verifier->verifyWithKeySet($loaded, $this->getSymmetricKeySet()); $verifier->verifyWithKeySet($loaded, $this->getPublicKeySet()); - $this->assertEquals('HS512', $loaded->getSignature(0)->getProtectedHeader('alg')); - $this->assertEquals('RS512', $loaded->getSignature(1)->getProtectedHeader('alg')); + self::assertEquals('HS512', $loaded->getSignature(0)->getProtectedHeader('alg')); + self::assertEquals('RS512', $loaded->getSignature(1)->getProtectedHeader('alg')); } /** @@ -691,9 +691,9 @@ public function testKeySetIsEmpty() $loader = new Loader(); $loaded = $loader->load($jws->toJSON()); - $this->assertEquals(2, $loaded->countSignatures()); - $this->assertInstanceOf(JWSInterface::class, $loaded); - $this->assertEquals($this->getKeyset(), new JWKSet($loaded->getPayload())); + self::assertEquals(2, $loaded->countSignatures()); + self::assertInstanceOf(JWSInterface::class, $loaded); + self::assertEquals($this->getKeyset(), new JWKSet($loaded->getPayload())); $verifier->verifyWithKeySet($loaded, new JWKSet()); $verifier->verifyWithKey($loaded, new JWK(['kty' => 'EC'])); } diff --git a/tests/RFC6979/ECDSASignatureTest.php b/tests/RFC6979/ECDSASignatureTest.php index 0b99abd6..9701341d 100644 --- a/tests/RFC6979/ECDSASignatureTest.php +++ b/tests/RFC6979/ECDSASignatureTest.php @@ -18,6 +18,7 @@ use Jose\Algorithm\SignatureAlgorithmInterface; use Jose\Factory\JWKFactory; use Jose\Object\JWKInterface; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc6979#appendix-A.2.5 @@ -33,7 +34,7 @@ * * @group RFC6979 */ -class ECDSASignatureTest extends \PHPUnit_Framework_TestCase +class ECDSASignatureTest extends BaseTestCase { /** * @param \Jose\Algorithm\SignatureAlgorithmInterface $algorithm @@ -47,7 +48,7 @@ public function testWithVectors(SignatureAlgorithmInterface $algorithm, $message { $is_valid = $algorithm->verify($key, $message, $signature); - $this->assertTrue($is_valid); + self::assertTrue($is_valid); } /** diff --git a/tests/RFC7520/A128KWAndA128GCMEncryptionProtectedContentOnlyTest.php b/tests/RFC7520/A128KWAndA128GCMEncryptionProtectedContentOnlyTest.php index 08f19e3f..c044b381 100644 --- a/tests/RFC7520/A128KWAndA128GCMEncryptionProtectedContentOnlyTest.php +++ b/tests/RFC7520/A128KWAndA128GCMEncryptionProtectedContentOnlyTest.php @@ -17,13 +17,14 @@ use Jose\Factory\JWEFactory; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc7520#section-5.12 * * @group RFC7520 */ -class A128KWAndA128GCMEncryptionProtectedContentOnlyTest extends \PHPUnit_Framework_TestCase +class A128KWAndA128GCMEncryptionProtectedContentOnlyTest extends BaseTestCase { /** * Please note that we cannot the encryption and get the same result as the example (IV, TAG and other data are always different). @@ -66,22 +67,22 @@ public function testA128KWAndA128GCMEncryptionProtectedContentOnly() $loaded_json = $loader->load($expected_json); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($headers, $loaded_flattened_json->getSharedHeaders()); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($headers, $loaded_json->getSharedHeaders()); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); - - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($headers, $loaded_flattened_json->getSharedHeaders()); + self::assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($headers, $loaded_json->getSharedHeaders()); + self::assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); + + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } /** @@ -126,13 +127,13 @@ public function testA128KWAndA128GCMEncryptionProtectedContentOnlyBis() $loaded_json = $loader->load($jwe->toJSON()); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($headers, $loaded_flattened_json->getSharedHeaders()); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($headers, $loaded_flattened_json->getSharedHeaders()); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($headers, $loaded_json->getSharedHeaders()); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($headers, $loaded_json->getSharedHeaders()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } } diff --git a/tests/RFC7520/A128KWAndA128GCMEncryptionTest.php b/tests/RFC7520/A128KWAndA128GCMEncryptionTest.php index 43d7eb3b..3e3b7422 100644 --- a/tests/RFC7520/A128KWAndA128GCMEncryptionTest.php +++ b/tests/RFC7520/A128KWAndA128GCMEncryptionTest.php @@ -17,13 +17,14 @@ use Jose\Factory\JWEFactory; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc7520#section-5.8 * * @group RFC7520 */ -class A128KWAndA128GCMEncryptionTest extends \PHPUnit_Framework_TestCase +class A128KWAndA128GCMEncryptionTest extends BaseTestCase { /** * Please note that we cannot the encryption and get the same result as the example (IV, TAG and other data are always different). @@ -68,27 +69,27 @@ public function testA128KWAndA128GCMEncryption() $loaded_json = $loader->load($expected_json); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); - - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); + + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } /** @@ -133,14 +134,14 @@ public function testA128KWAndA128GCMEncryptionBis() $loaded_json = $loader->load($jwe->toJSON()); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } } diff --git a/tests/RFC7520/A128KWAndA128GCMEncryptionWithAdditionalAuthenticatedDataTest.php b/tests/RFC7520/A128KWAndA128GCMEncryptionWithAdditionalAuthenticatedDataTest.php index ac0af529..be9e3b88 100644 --- a/tests/RFC7520/A128KWAndA128GCMEncryptionWithAdditionalAuthenticatedDataTest.php +++ b/tests/RFC7520/A128KWAndA128GCMEncryptionWithAdditionalAuthenticatedDataTest.php @@ -17,13 +17,14 @@ use Jose\Factory\JWEFactory; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc7520#section-5.10 * * @group RFC7520 */ -class A128KWAndA128GCMEncryptionWithAdditionalAuthenticatedDataTest extends \PHPUnit_Framework_TestCase +class A128KWAndA128GCMEncryptionWithAdditionalAuthenticatedDataTest extends BaseTestCase { /** * Please note that we cannot the encryption and get the same result as the example (IV, TAG and other data are always different). @@ -65,22 +66,22 @@ public function testA128KWAndA128GCMEncryptionWithAdditionalAuthenticatedData() $loaded_json = $loader->load($expected_json); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); - $this->assertEquals($expected_aad, $loaded_flattened_json->getAAD()); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); - $this->assertEquals($expected_aad, $loaded_json->getAAD()); - - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); + self::assertEquals($expected_aad, $loaded_flattened_json->getAAD()); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); + self::assertEquals($expected_aad, $loaded_json->getAAD()); + + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } /** @@ -122,11 +123,11 @@ public function testA128KWAndA128GCMEncryptionWithAdditionalAuthenticatedDataBis $loaded_json = $loader->load($jwe->toJSON()); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } } diff --git a/tests/RFC7520/A128KWAndA128GCMEncryptionWithCompressionTest.php b/tests/RFC7520/A128KWAndA128GCMEncryptionWithCompressionTest.php index 969e74c4..5d1aa0df 100644 --- a/tests/RFC7520/A128KWAndA128GCMEncryptionWithCompressionTest.php +++ b/tests/RFC7520/A128KWAndA128GCMEncryptionWithCompressionTest.php @@ -17,13 +17,14 @@ use Jose\Factory\JWEFactory; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc7520#section-5.9 * * @group RFC7520 */ -class A128KWAndA128GCMEncryptionWithCompressionTest extends \PHPUnit_Framework_TestCase +class A128KWAndA128GCMEncryptionWithCompressionTest extends BaseTestCase { /** * Please note that we cannot the encryption and get the same result as the example (IV, TAG and other data are always different). @@ -69,27 +70,27 @@ public function testA128KWAndA128GCMEncryptionWithCompression() $loaded_json = $loader->load($expected_json); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); - - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); + + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } /** @@ -135,14 +136,14 @@ public function testA128KWAndA128GCMEncryptionWithCompressionBis() $loaded_json = $loader->load($jwe->toJSON()); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } } diff --git a/tests/RFC7520/A128KWAndA128GCMEncryptionWithSpecificProtectedHeaderValuesTest.php b/tests/RFC7520/A128KWAndA128GCMEncryptionWithSpecificProtectedHeaderValuesTest.php index 382a07db..c692a750 100644 --- a/tests/RFC7520/A128KWAndA128GCMEncryptionWithSpecificProtectedHeaderValuesTest.php +++ b/tests/RFC7520/A128KWAndA128GCMEncryptionWithSpecificProtectedHeaderValuesTest.php @@ -17,13 +17,14 @@ use Jose\Factory\JWEFactory; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc7520#section-5.11 * * @group RFC7520 */ -class A128KWAndA128GCMEncryptionWithSpecificProtectedHeaderValuesTest extends \PHPUnit_Framework_TestCase +class A128KWAndA128GCMEncryptionWithSpecificProtectedHeaderValuesTest extends BaseTestCase { /** * Please note that we cannot the encryption and get the same result as the example (IV, TAG and other data are always different). @@ -66,22 +67,22 @@ public function testA128KWAndA128GCMEncryptionWithSpecificProtectedHeaderValues( $loaded_json = $loader->load($expected_json); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($headers, $loaded_flattened_json->getSharedHeaders()); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($headers, $loaded_json->getSharedHeaders()); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); - - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($headers, $loaded_flattened_json->getSharedHeaders()); + self::assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($headers, $loaded_json->getSharedHeaders()); + self::assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); + + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } /** @@ -126,13 +127,13 @@ public function testA128KWAndA128GCMEncryptionWithSpecificProtectedHeaderValuesB $loaded_json = $loader->load($jwe->toJSON()); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($headers, $loaded_flattened_json->getSharedHeaders()); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($headers, $loaded_flattened_json->getSharedHeaders()); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($headers, $loaded_json->getSharedHeaders()); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($headers, $loaded_json->getSharedHeaders()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } } diff --git a/tests/RFC7520/A256GCMKWAndA128CBC_HS256EncryptionTest.php b/tests/RFC7520/A256GCMKWAndA128CBC_HS256EncryptionTest.php index 64b2c293..81fb1fe1 100644 --- a/tests/RFC7520/A256GCMKWAndA128CBC_HS256EncryptionTest.php +++ b/tests/RFC7520/A256GCMKWAndA128CBC_HS256EncryptionTest.php @@ -17,13 +17,14 @@ use Jose\Factory\JWEFactory; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc7520#section-5.7 * * @group RFC7520 */ -class A256GCMKWAndA128CBC_HS256EncryptionTest extends \PHPUnit_Framework_TestCase +class A256GCMKWAndA128CBC_HS256EncryptionTest extends BaseTestCase { /** * Please note that we cannot the encryption and get the same result as the example (IV, TAG and other data are always different). @@ -75,27 +76,27 @@ public function testA256GCMKWAndA128CBC_HS256Encryption() $loaded_json = $loader->load($expected_json); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); - - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); + + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } /** @@ -140,17 +141,17 @@ public function testA256GCMKWAndA128CBC_HS256EncryptionBis() $loaded_json = $loader->load($jwe->toJSON()); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertTrue(array_key_exists('iv', $loaded_compact_json->getSharedProtectedHeaders())); - $this->assertTrue(array_key_exists('tag', $loaded_compact_json->getSharedProtectedHeaders())); + self::assertTrue(array_key_exists('iv', $loaded_compact_json->getSharedProtectedHeaders())); + self::assertTrue(array_key_exists('tag', $loaded_compact_json->getSharedProtectedHeaders())); - $this->assertTrue(array_key_exists('iv', $loaded_flattened_json->getSharedProtectedHeaders())); - $this->assertTrue(array_key_exists('tag', $loaded_flattened_json->getSharedProtectedHeaders())); + self::assertTrue(array_key_exists('iv', $loaded_flattened_json->getSharedProtectedHeaders())); + self::assertTrue(array_key_exists('tag', $loaded_flattened_json->getSharedProtectedHeaders())); - $this->assertTrue(array_key_exists('iv', $loaded_json->getSharedProtectedHeaders())); - $this->assertTrue(array_key_exists('tag', $loaded_json->getSharedProtectedHeaders())); + self::assertTrue(array_key_exists('iv', $loaded_json->getSharedProtectedHeaders())); + self::assertTrue(array_key_exists('tag', $loaded_json->getSharedProtectedHeaders())); - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } } diff --git a/tests/RFC7520/DirAndA128GCMEncryptionTest.php b/tests/RFC7520/DirAndA128GCMEncryptionTest.php index 6fef2594..62fd3512 100644 --- a/tests/RFC7520/DirAndA128GCMEncryptionTest.php +++ b/tests/RFC7520/DirAndA128GCMEncryptionTest.php @@ -17,13 +17,14 @@ use Jose\Factory\JWEFactory; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc7520#section-5.6 * * @group RFC7520 */ -class DirAndA128GCMEncryptionTest extends \PHPUnit_Framework_TestCase +class DirAndA128GCMEncryptionTest extends BaseTestCase { /** * Please note that we cannot the encryption and get the same result as the example (IV, TAG and other data are always different). @@ -62,18 +63,18 @@ public function testDirAndA128GCMEncryption() $loaded_json = $loader->load($expected_json); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } /** @@ -115,11 +116,11 @@ public function testDirAndA128GCMEncryptionBis() $loaded_json = $loader->load($jwe->toJSON()); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } } diff --git a/tests/RFC7520/ECDH_ES_A128KWAndA128GCMEncryptionTest.php b/tests/RFC7520/ECDH_ES_A128KWAndA128GCMEncryptionTest.php index b16ff19d..e8a02ce9 100644 --- a/tests/RFC7520/ECDH_ES_A128KWAndA128GCMEncryptionTest.php +++ b/tests/RFC7520/ECDH_ES_A128KWAndA128GCMEncryptionTest.php @@ -17,13 +17,14 @@ use Jose\Factory\JWEFactory; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc7520#section-5.4 * * @group RFC7520 */ -class ECDH_ES_A128KWAndA128GCMEncryptionTest extends \PHPUnit_Framework_TestCase +class ECDH_ES_A128KWAndA128GCMEncryptionTest extends BaseTestCase { /** * Please note that we cannot the encryption and get the same result as the example (IV, TAG and other data are always different). @@ -75,27 +76,27 @@ public function testECDH_ES_A128KWAndA128GCMEncryption() $loaded_json = $loader->load($expected_json); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); - - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); + + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } /** @@ -148,11 +149,11 @@ public function testECDH_ES_A128KWAndA128GCMEncryptionBis() $loaded_json = $loader->load($jwe->toJSON()); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertTrue(array_key_exists('epk', $loaded_flattened_json->getSharedProtectedHeaders())); + self::assertTrue(array_key_exists('epk', $loaded_flattened_json->getSharedProtectedHeaders())); - $this->assertTrue(array_key_exists('epk', $loaded_json->getSharedProtectedHeaders())); + self::assertTrue(array_key_exists('epk', $loaded_json->getSharedProtectedHeaders())); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } } diff --git a/tests/RFC7520/ECDH_ES_AndA128CBC_HS256EncryptionTest.php b/tests/RFC7520/ECDH_ES_AndA128CBC_HS256EncryptionTest.php index b29706aa..37daefbd 100644 --- a/tests/RFC7520/ECDH_ES_AndA128CBC_HS256EncryptionTest.php +++ b/tests/RFC7520/ECDH_ES_AndA128CBC_HS256EncryptionTest.php @@ -17,13 +17,14 @@ use Jose\Factory\JWEFactory; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc7520#section-5.5 * * @group RFC7520 */ -class ECDH_ES_AndA128CBC_HS256EncryptionTest extends \PHPUnit_Framework_TestCase +class ECDH_ES_AndA128CBC_HS256EncryptionTest extends BaseTestCase { /** * Please note that we cannot the encryption and get the same result as the example (IV, TAG and other data are always different). @@ -68,21 +69,21 @@ public function testECDH_ES_AndA128CBC_HS256Encryption() $loaded_json = $loader->load($expected_json); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); $decrypter->decryptUsingKey($loaded_compact_json, $private_key); - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } /** @@ -132,8 +133,8 @@ public function testECDH_ES_AndA128CBC_HS256EncryptionBis() $loaded_json = $loader->load($jwe->toJSON()); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertTrue(array_key_exists('epk', $loaded_json->getSharedProtectedHeaders())); + self::assertTrue(array_key_exists('epk', $loaded_json->getSharedProtectedHeaders())); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } } diff --git a/tests/RFC7520/ECDSASignatureTest.php b/tests/RFC7520/ECDSASignatureTest.php index f918bdab..d4ba14ec 100644 --- a/tests/RFC7520/ECDSASignatureTest.php +++ b/tests/RFC7520/ECDSASignatureTest.php @@ -15,6 +15,7 @@ use Jose\Loader; use Jose\Object\JWK; use Jose\Signer; +use Jose\Test\BaseTestCase; use Jose\Verifier; /** @@ -22,7 +23,7 @@ * * @group RFC7520 */ -class ECDSASignatureTest extends \PHPUnit_Framework_TestCase +class ECDSASignatureTest extends BaseTestCase { /** * Please note that we cannot create the signature and get the same result as the example (ECDSA signatures are always different). diff --git a/tests/RFC7520/HMACSignatureTest.php b/tests/RFC7520/HMACSignatureTest.php index 15a83643..925dfac4 100644 --- a/tests/RFC7520/HMACSignatureTest.php +++ b/tests/RFC7520/HMACSignatureTest.php @@ -15,6 +15,7 @@ use Jose\Loader; use Jose\Object\JWK; use Jose\Signer; +use Jose\Test\BaseTestCase; use Jose\Verifier; /** @@ -26,7 +27,7 @@ * @group HMAC * @group RFC7520 */ -class HMACSignatureTest extends \PHPUnit_Framework_TestCase +class HMACSignatureTest extends BaseTestCase { /** * @see https://tools.ietf.org/html/rfc7520#section-4.4 @@ -73,11 +74,11 @@ public function testHS256() $expected_flattened_json = '{"payload":"SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IHlvdXIgZG9vci4gWW91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBkb24ndCBrZWVwIHlvdXIgZmVldCwgdGhlcmXigJlzIG5vIGtub3dpbmcgd2hlcmUgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4","protected":"eyJhbGciOiJIUzI1NiIsImtpZCI6IjAxOGMwYWU1LTRkOWItNDcxYi1iZmQ2LWVlZjMxNGJjNzAzNyJ9","signature":"s0h6KThzkfBBBkLspW1h84VsJZFTsPPqMDA7g1Md7p0"}'; $expected_json = '{"payload":"SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IHlvdXIgZG9vci4gWW91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBkb24ndCBrZWVwIHlvdXIgZmVldCwgdGhlcmXigJlzIG5vIGtub3dpbmcgd2hlcmUgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4","signatures":[{"protected":"eyJhbGciOiJIUzI1NiIsImtpZCI6IjAxOGMwYWU1LTRkOWItNDcxYi1iZmQ2LWVlZjMxNGJjNzAzNyJ9","signature":"s0h6KThzkfBBBkLspW1h84VsJZFTsPPqMDA7g1Md7p0"}]}'; - $this->assertEquals($expected_compact_json, $jws->toCompactJSON(0)); + self::assertEquals($expected_compact_json, $jws->toCompactJSON(0)); // We decode the json to compare the 2 arrays otherwise the test may fail as the order may be different - $this->assertEquals(json_decode($expected_flattened_json, true), json_decode($jws->toFlattenedJSON(0), true)); - $this->assertEquals(json_decode($expected_json, true), json_decode($jws->toJSON(), true)); + self::assertEquals(json_decode($expected_flattened_json, true), json_decode($jws->toFlattenedJSON(0), true)); + self::assertEquals(json_decode($expected_json, true), json_decode($jws->toJSON(), true)); $loader = new Loader(); $loaded_compact_json = $loader->load($expected_compact_json); @@ -135,12 +136,12 @@ public function testHS256WithDetachedPayload() $expected_flattened_json = '{"protected":"eyJhbGciOiJIUzI1NiIsImtpZCI6IjAxOGMwYWU1LTRkOWItNDcxYi1iZmQ2LWVlZjMxNGJjNzAzNyJ9","signature":"s0h6KThzkfBBBkLspW1h84VsJZFTsPPqMDA7g1Md7p0"}'; $expected_json = '{"signatures":[{"protected":"eyJhbGciOiJIUzI1NiIsImtpZCI6IjAxOGMwYWU1LTRkOWItNDcxYi1iZmQ2LWVlZjMxNGJjNzAzNyJ9","signature":"s0h6KThzkfBBBkLspW1h84VsJZFTsPPqMDA7g1Md7p0"}]}'; - $this->assertEquals($expected_compact_json, $jws->toCompactJSON(0)); + self::assertEquals($expected_compact_json, $jws->toCompactJSON(0)); // We decode the json to compare the 2 arrays otherwise the test may fail as the order may be different - $this->assertEquals(json_decode($expected_flattened_json, true), json_decode($jws->toFlattenedJSON(0), true)); + self::assertEquals(json_decode($expected_flattened_json, true), json_decode($jws->toFlattenedJSON(0), true)); - $this->assertEquals(json_decode($expected_json, true), json_decode($jws->toJSON(), true)); + self::assertEquals(json_decode($expected_json, true), json_decode($jws->toJSON(), true)); $loader = new Loader(); $loaded_compact_json = $loader->load($expected_compact_json); @@ -200,8 +201,8 @@ public function testHS256WithUnprotectedHeaders() $expected_json = '{"payload":"SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IHlvdXIgZG9vci4gWW91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBkb24ndCBrZWVwIHlvdXIgZmVldCwgdGhlcmXigJlzIG5vIGtub3dpbmcgd2hlcmUgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4","signatures":[{"protected":"eyJhbGciOiJIUzI1NiJ9","header":{"kid":"018c0ae5-4d9b-471b-bfd6-eef314bc7037"},"signature":"bWUSVaxorn7bEF1djytBd0kHv70Ly5pvbomzMWSOr20"}]}'; // We decode the json to compare the 2 arrays otherwise the test may fail as the order may be different - $this->assertEquals(json_decode($expected_flattened_json, true), json_decode($jws->toFlattenedJSON(0), true)); - $this->assertEquals(json_decode($expected_json, true), json_decode($jws->toJSON(), true)); + self::assertEquals(json_decode($expected_flattened_json, true), json_decode($jws->toFlattenedJSON(0), true)); + self::assertEquals(json_decode($expected_json, true), json_decode($jws->toJSON(), true)); $loader = new Loader(); $loaded_flattened_json = $loader->load($expected_flattened_json); @@ -256,8 +257,8 @@ public function testHS256WithoutProtectedHeaders() $expected_json = '{"payload":"SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IHlvdXIgZG9vci4gWW91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBkb24ndCBrZWVwIHlvdXIgZmVldCwgdGhlcmXigJlzIG5vIGtub3dpbmcgd2hlcmUgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4","signatures":[{"header":{"alg":"HS256","kid":"018c0ae5-4d9b-471b-bfd6-eef314bc7037"},"signature":"xuLifqLGiblpv9zBpuZczWhNj1gARaLV3UxvxhJxZuk"}]}'; // We decode the json to compare the 2 arrays otherwise the test may fail as the order may be different - $this->assertEquals(json_decode($expected_flattened_json, true), json_decode($jws->toFlattenedJSON(0), true)); - $this->assertEquals(json_decode($expected_json, true), json_decode($jws->toJSON(), true)); + self::assertEquals(json_decode($expected_flattened_json, true), json_decode($jws->toFlattenedJSON(0), true)); + self::assertEquals(json_decode($expected_json, true), json_decode($jws->toJSON(), true)); $loader = new Loader(); $loaded_flattened_json = $loader->load($expected_flattened_json); diff --git a/tests/RFC7520/MultipleRecipientEncryptionTest.php b/tests/RFC7520/MultipleRecipientEncryptionTest.php index 1058c0ba..d90e20b0 100644 --- a/tests/RFC7520/MultipleRecipientEncryptionTest.php +++ b/tests/RFC7520/MultipleRecipientEncryptionTest.php @@ -17,13 +17,14 @@ use Jose\Factory\JWEFactory; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc7520#section-5.13 * * @group RFC7520 */ -class MultipleRecipientEncryptionTest extends \PHPUnit_Framework_TestCase +class MultipleRecipientEncryptionTest extends BaseTestCase { /** * Please note that we cannot the encryption and get the same result as the example (IV, TAG and other data are always different). @@ -115,19 +116,19 @@ public function testMultipleRecipientEncryption() $loaded_json = $loader->load($expected_json); $decrypter->decryptUsingKey($loaded_json, $recipient_3_private_key); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); - $this->assertEquals($expected_recipient_1_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_recipient_2_encrypted_key, Base64Url::encode($loaded_json->getRecipient(1)->getEncryptedKey())); - $this->assertEquals($expected_recipient_3_encrypted_key, Base64Url::encode($loaded_json->getRecipient(2)->getEncryptedKey())); - $this->assertEquals($recipient_1_headers, $loaded_json->getRecipient(0)->getHeaders()); - $this->assertEquals($recipient_2_headers, $loaded_json->getRecipient(1)->getHeaders()); - $this->assertEquals($recipient_3_headers, $loaded_json->getRecipient(2)->getHeaders()); - $this->assertEquals($headers, $loaded_json->getSharedHeaders()); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); - - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); + self::assertEquals($expected_recipient_1_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_recipient_2_encrypted_key, Base64Url::encode($loaded_json->getRecipient(1)->getEncryptedKey())); + self::assertEquals($expected_recipient_3_encrypted_key, Base64Url::encode($loaded_json->getRecipient(2)->getEncryptedKey())); + self::assertEquals($recipient_1_headers, $loaded_json->getRecipient(0)->getHeaders()); + self::assertEquals($recipient_2_headers, $loaded_json->getRecipient(1)->getHeaders()); + self::assertEquals($recipient_3_headers, $loaded_json->getRecipient(2)->getHeaders()); + self::assertEquals($headers, $loaded_json->getSharedHeaders()); + self::assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); + + self::assertEquals($expected_payload, $loaded_json->getPayload()); } /** @@ -231,13 +232,13 @@ public function testMultipleRecipientEncryptionBis() $loaded_json = $loader->load($jwe->toJSON()); $decrypter->decryptUsingKey($loaded_json, $recipient_3_private_key); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($recipient_1_headers, $loaded_json->getRecipient(0)->getHeaders()); - $this->assertTrue(array_key_exists('epk', $loaded_json->getRecipient(1)->getHeaders())); - $this->assertTrue(array_key_exists('iv', $loaded_json->getRecipient(2)->getHeaders())); - $this->assertTrue(array_key_exists('tag', $loaded_json->getRecipient(2)->getHeaders())); - $this->assertEquals($headers, $loaded_json->getSharedHeaders()); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($recipient_1_headers, $loaded_json->getRecipient(0)->getHeaders()); + self::assertTrue(array_key_exists('epk', $loaded_json->getRecipient(1)->getHeaders())); + self::assertTrue(array_key_exists('iv', $loaded_json->getRecipient(2)->getHeaders())); + self::assertTrue(array_key_exists('tag', $loaded_json->getRecipient(2)->getHeaders())); + self::assertEquals($headers, $loaded_json->getSharedHeaders()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } } diff --git a/tests/RFC7520/MultipleSignaturesTest.php b/tests/RFC7520/MultipleSignaturesTest.php index 1a3e490c..639e43b4 100644 --- a/tests/RFC7520/MultipleSignaturesTest.php +++ b/tests/RFC7520/MultipleSignaturesTest.php @@ -15,6 +15,7 @@ use Jose\Loader; use Jose\Object\JWK; use Jose\Signer; +use Jose\Test\BaseTestCase; use Jose\Verifier; /** @@ -22,7 +23,7 @@ * * @group RFC7520 */ -class MultipleSignaturesTest extends \PHPUnit_Framework_TestCase +class MultipleSignaturesTest extends BaseTestCase { public function testMultipleSignatures() { @@ -107,7 +108,7 @@ public function testMultipleSignatures() $signer = Signer::createSigner(['RS256', 'ES512', 'HS256']); $signer->sign($jws); - $this->assertEquals(3, $jws->countSignatures()); + self::assertEquals(3, $jws->countSignatures()); $verifer = Verifier::createVerifier(['RS256', 'ES512', 'HS256']); @@ -123,7 +124,7 @@ public function testMultipleSignatures() $loader = new Loader(); $loaded_json = $loader->load($expected_json); - $this->assertEquals(3, $loaded_json->countSignatures()); + self::assertEquals(3, $loaded_json->countSignatures()); $verifer->verifyWithKey($loaded_json, $rsa_private_key); $verifer->verifyWithKey($loaded_json, $ecdsa_private_key); diff --git a/tests/RFC7520/NestingTest.php b/tests/RFC7520/NestingTest.php index 164ddc25..470aea4b 100644 --- a/tests/RFC7520/NestingTest.php +++ b/tests/RFC7520/NestingTest.php @@ -14,6 +14,7 @@ use Jose\Decrypter; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; use Jose\Verifier; /** @@ -21,7 +22,7 @@ * * @group RFC7520 */ -class NestingTest extends \PHPUnit_Framework_TestCase +class NestingTest extends BaseTestCase { public function testSignatureVerification() { @@ -59,9 +60,9 @@ public function testSignatureVerification() $verifer->verifyWithKey($loaded_compact_json, $signature_key, null, $index); - $this->assertEquals(0, $index); - $this->assertEquals($signature_header, $loaded_compact_json->getSignature($index)->getProtectedHeaders()); - $this->assertEquals($payload, $loaded_compact_json->getPayload()); + self::assertEquals(0, $index); + self::assertEquals($signature_header, $loaded_compact_json->getSignature($index)->getProtectedHeaders()); + self::assertEquals($payload, $loaded_compact_json->getPayload()); } public function testDecryption() @@ -104,16 +105,16 @@ public function testDecryption() $verifer->decryptUsingKey($loaded_flasttened_json, $encryption_key, $index); $verifer->decryptUsingKey($loaded_json, $encryption_key, $index); - $this->assertEquals(0, $index); - $this->assertEquals($encryption_header, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($payload, $loaded_compact_json->getPayload()); + self::assertEquals(0, $index); + self::assertEquals($encryption_header, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($payload, $loaded_compact_json->getPayload()); - $this->assertEquals(0, $index); - $this->assertEquals($encryption_header, $loaded_flasttened_json->getSharedProtectedHeaders()); - $this->assertEquals($payload, $loaded_flasttened_json->getPayload()); + self::assertEquals(0, $index); + self::assertEquals($encryption_header, $loaded_flasttened_json->getSharedProtectedHeaders()); + self::assertEquals($payload, $loaded_flasttened_json->getPayload()); - $this->assertEquals(0, $index); - $this->assertEquals($encryption_header, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($payload, $loaded_json->getPayload()); + self::assertEquals(0, $index); + self::assertEquals($encryption_header, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($payload, $loaded_json->getPayload()); } } diff --git a/tests/RFC7520/PBES2_HS512_A256KWAndA128CBC_HS256EncryptionTest.php b/tests/RFC7520/PBES2_HS512_A256KWAndA128CBC_HS256EncryptionTest.php index 61204ec3..5ffdeac9 100644 --- a/tests/RFC7520/PBES2_HS512_A256KWAndA128CBC_HS256EncryptionTest.php +++ b/tests/RFC7520/PBES2_HS512_A256KWAndA128CBC_HS256EncryptionTest.php @@ -17,13 +17,14 @@ use Jose\Factory\JWEFactory; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc7520#section-5.3 * * @group RFC7520 */ -class PBES2_HS512_A256KWAndA128CBC_HS256EncryptionTest extends \PHPUnit_Framework_TestCase +class PBES2_HS512_A256KWAndA128CBC_HS256EncryptionTest extends BaseTestCase { /** * Please note that we cannot the encryption and get the same result as the example (IV, TAG and other data are always different). @@ -87,27 +88,27 @@ public function testPBES2_HS512_A256KWAndA128CBC_HS256Encryption() $loaded_json = $loader->load($expected_json); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); - - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); + + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } /** @@ -169,13 +170,13 @@ public function testPBES2_HS512_A256KWAndA128CBC_HS256EncryptionBis() $loaded_json = $loader->load($jwe->toJSON()); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertTrue(array_key_exists('p2s', $loaded_flattened_json->getSharedProtectedHeaders())); - $this->assertTrue(array_key_exists('p2c', $loaded_flattened_json->getSharedProtectedHeaders())); + self::assertTrue(array_key_exists('p2s', $loaded_flattened_json->getSharedProtectedHeaders())); + self::assertTrue(array_key_exists('p2c', $loaded_flattened_json->getSharedProtectedHeaders())); - $this->assertTrue(array_key_exists('p2s', $loaded_json->getSharedProtectedHeaders())); - $this->assertTrue(array_key_exists('p2c', $loaded_json->getSharedProtectedHeaders())); + self::assertTrue(array_key_exists('p2s', $loaded_json->getSharedProtectedHeaders())); + self::assertTrue(array_key_exists('p2c', $loaded_json->getSharedProtectedHeaders())); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } } diff --git a/tests/RFC7520/RSA15SignatureTest.php b/tests/RFC7520/RSA15SignatureTest.php index 392e934a..6d37a108 100644 --- a/tests/RFC7520/RSA15SignatureTest.php +++ b/tests/RFC7520/RSA15SignatureTest.php @@ -15,6 +15,7 @@ use Jose\Loader; use Jose\Object\JWK; use Jose\Signer; +use Jose\Test\BaseTestCase; use Jose\Verifier; /** @@ -22,7 +23,7 @@ * * @group RFC7520 */ -class RSA15SignatureTest extends \PHPUnit_Framework_TestCase +class RSA15SignatureTest extends BaseTestCase { public function testRS256() { @@ -72,11 +73,11 @@ public function testRS256() $expected_flattened_json = '{"payload":"SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IHlvdXIgZG9vci4gWW91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBkb24ndCBrZWVwIHlvdXIgZmVldCwgdGhlcmXigJlzIG5vIGtub3dpbmcgd2hlcmUgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4","protected":"eyJhbGciOiJSUzI1NiIsImtpZCI6ImJpbGJvLmJhZ2dpbnNAaG9iYml0b24uZXhhbXBsZSJ9","signature":"MRjdkly7_-oTPTS3AXP41iQIGKa80A0ZmTuV5MEaHoxnW2e5CZ5NlKtainoFmKZopdHM1O2U4mwzJdQx996ivp83xuglII7PNDi84wnB-BDkoBwA78185hX-Es4JIwmDLJK3lfWRa-XtL0RnltuYv746iYTh_qHRD68BNt1uSNCrUCTJDt5aAE6x8wW1Kt9eRo4QPocSadnHXFxnt8Is9UzpERV0ePPQdLuW3IS_de3xyIrDaLGdjluPxUAhb6L2aXic1U12podGU0KLUQSE_oI-ZnmKJ3F4uOZDnd6QZWJushZ41Axf_fcIe8u9ipH84ogoree7vjbU5y18kDquDg"}'; $expected_json = '{"payload":"SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IHlvdXIgZG9vci4gWW91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBkb24ndCBrZWVwIHlvdXIgZmVldCwgdGhlcmXigJlzIG5vIGtub3dpbmcgd2hlcmUgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4","signatures":[{"protected":"eyJhbGciOiJSUzI1NiIsImtpZCI6ImJpbGJvLmJhZ2dpbnNAaG9iYml0b24uZXhhbXBsZSJ9","signature":"MRjdkly7_-oTPTS3AXP41iQIGKa80A0ZmTuV5MEaHoxnW2e5CZ5NlKtainoFmKZopdHM1O2U4mwzJdQx996ivp83xuglII7PNDi84wnB-BDkoBwA78185hX-Es4JIwmDLJK3lfWRa-XtL0RnltuYv746iYTh_qHRD68BNt1uSNCrUCTJDt5aAE6x8wW1Kt9eRo4QPocSadnHXFxnt8Is9UzpERV0ePPQdLuW3IS_de3xyIrDaLGdjluPxUAhb6L2aXic1U12podGU0KLUQSE_oI-ZnmKJ3F4uOZDnd6QZWJushZ41Axf_fcIe8u9ipH84ogoree7vjbU5y18kDquDg"}]}'; - $this->assertEquals($expected_compact_json, $jws->toCompactJSON(0)); + self::assertEquals($expected_compact_json, $jws->toCompactJSON(0)); // We decode the json to compare the 2 arrays otherwise the test may fail as the order may be different - $this->assertEquals(json_decode($expected_flattened_json, true), json_decode($jws->toFlattenedJSON(0), true)); - $this->assertEquals(json_decode($expected_json, true), json_decode($jws->toJSON(), true)); + self::assertEquals(json_decode($expected_flattened_json, true), json_decode($jws->toFlattenedJSON(0), true)); + self::assertEquals(json_decode($expected_json, true), json_decode($jws->toJSON(), true)); $loader = new Loader(); $loaded_compact_json = $loader->load($expected_compact_json); diff --git a/tests/RFC7520/RSA1_5AndA128CBC_HS256EncryptionTest.php b/tests/RFC7520/RSA1_5AndA128CBC_HS256EncryptionTest.php index 32e7e395..8cb5e856 100644 --- a/tests/RFC7520/RSA1_5AndA128CBC_HS256EncryptionTest.php +++ b/tests/RFC7520/RSA1_5AndA128CBC_HS256EncryptionTest.php @@ -17,13 +17,14 @@ use Jose\Factory\JWEFactory; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc7520#section-5.1 * * @group RFC7520 */ -class RSA1_5AndA128CBC_HS256EncryptionTest extends \PHPUnit_Framework_TestCase +class RSA1_5AndA128CBC_HS256EncryptionTest extends BaseTestCase { /** * Please note that we cannot the encryption and get the same result as the example (IV, TAG and other data are always different). @@ -73,27 +74,27 @@ public function testRSA1_5AndA128CBC_HS256Encryption() $loaded_json = $loader->load($expected_json); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); - - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); + + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } /** @@ -144,14 +145,14 @@ public function testRSA1_5AndA128CBC_HS256EncryptionBis() $loaded_json = $loader->load($jwe->toJSON()); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } } diff --git a/tests/RFC7520/RSAPSSSignatureTest.php b/tests/RFC7520/RSAPSSSignatureTest.php index c9db2866..4da0c2c5 100644 --- a/tests/RFC7520/RSAPSSSignatureTest.php +++ b/tests/RFC7520/RSAPSSSignatureTest.php @@ -15,6 +15,7 @@ use Jose\Loader; use Jose\Object\JWK; use Jose\Signer; +use Jose\Test\BaseTestCase; use Jose\Verifier; /** @@ -22,7 +23,7 @@ * * @group RFC7520 */ -class RSAPSSSignatureTest extends \PHPUnit_Framework_TestCase +class RSAPSSSignatureTest extends BaseTestCase { /** * Please note that we cannot create the signature and get the same result as the example (RSA-PSS signatures are always different). diff --git a/tests/RFC7520/RSA_OAEPAndA256GCMEncryptionTest.php b/tests/RFC7520/RSA_OAEPAndA256GCMEncryptionTest.php index 2b7c3073..41917725 100644 --- a/tests/RFC7520/RSA_OAEPAndA256GCMEncryptionTest.php +++ b/tests/RFC7520/RSA_OAEPAndA256GCMEncryptionTest.php @@ -17,13 +17,14 @@ use Jose\Factory\JWEFactory; use Jose\Loader; use Jose\Object\JWK; +use Jose\Test\BaseTestCase; /** * @see https://tools.ietf.org/html/rfc7520#section-5.2 * * @group RFC7520 */ -class RSA_OAEPAndA256GCMEncryptionTest extends \PHPUnit_Framework_TestCase +class RSA_OAEPAndA256GCMEncryptionTest extends BaseTestCase { /** * Please note that we cannot the encryption and get the same result as the example (IV, TAG and other data are always different). @@ -74,27 +75,27 @@ public function testRSA_OAEPAndA256GCMEncryption() $loaded_json = $loader->load($expected_json); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); - - $this->assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); - $this->assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); - $this->assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); - - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_compact_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_compact_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_compact_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_compact_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_flattened_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_flattened_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_flattened_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_flattened_json->getTag())); + + self::assertEquals($expected_ciphertext, Base64Url::encode($loaded_json->getCiphertext())); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($expected_iv, Base64Url::encode($loaded_json->getIV())); + self::assertEquals($expected_encrypted_key, Base64Url::encode($loaded_json->getRecipient(0)->getEncryptedKey())); + self::assertEquals($expected_tag, Base64Url::encode($loaded_json->getTag())); + + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } /** @@ -146,14 +147,14 @@ public function testRSA_OAEPAndA256GCMEncryptionBis() $loaded_json = $loader->load($jwe->toJSON()); $decrypter->decryptUsingKey($loaded_json, $private_key); - $this->assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_compact_json->getSharedProtectedHeaders()); - $this->assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_flattened_json->getSharedProtectedHeaders()); - $this->assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); + self::assertEquals($protected_headers, $loaded_json->getSharedProtectedHeaders()); - $this->assertEquals($expected_payload, $loaded_compact_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_flattened_json->getPayload()); - $this->assertEquals($expected_payload, $loaded_json->getPayload()); + self::assertEquals($expected_payload, $loaded_compact_json->getPayload()); + self::assertEquals($expected_payload, $loaded_flattened_json->getPayload()); + self::assertEquals($expected_payload, $loaded_json->getPayload()); } } diff --git a/tests/Unit/Algorithm/AESCBC_HSContentEncryptionTest.php b/tests/Unit/Algorithm/AESCBC_HSContentEncryptionTest.php index 03ef5867..a64dd0de 100644 --- a/tests/Unit/Algorithm/AESCBC_HSContentEncryptionTest.php +++ b/tests/Unit/Algorithm/AESCBC_HSContentEncryptionTest.php @@ -20,7 +20,7 @@ * @group AESCBC * @group Unit */ -class AESCBC_HSContentEncryptionTest extends \PHPUnit_Framework_TestCase +class AESCBC_HSContentEncryptionTest extends \Jose\Test\BaseTestCase { /** * @see https://tools.ietf.org/html/rfc7516#appendix-B @@ -39,9 +39,9 @@ public function testA128CBCHS256EncryptAndDecrypt() $cyphertext = $algorithm->encryptContent($plaintext, $K, $iv, null, $header, $T); - $this->assertEquals($expected_cyphertext, $cyphertext); - $this->assertEquals($plaintext, $algorithm->decryptContent($cyphertext, $K, $iv, null, $header, $T)); - $this->assertEquals($expected_T, $T); + self::assertEquals($expected_cyphertext, $cyphertext); + self::assertEquals($plaintext, $algorithm->decryptContent($cyphertext, $K, $iv, null, $header, $T)); + self::assertEquals($expected_T, $T); } /** @@ -93,15 +93,15 @@ public function testA128CBCHS256EncryptAndDecrypt_Bis() $cyphertext = $algorithm->encryptContent($plaintext, $K, $iv, $aad, $header, $T); - $this->assertEquals($expected_cyphertext, $cyphertext); + self::assertEquals($expected_cyphertext, $cyphertext); //We invoke protected methods to test vectors directly. This is due to the encryption signature: this test case uses a string as AAD, but the algorithm uses the protected header. $calc_method = self::getMethod('\Jose\Algorithm\ContentEncryption\A128CBCHS256', 'calculateAuthenticationTag'); $check_method = self::getMethod('\Jose\Algorithm\ContentEncryption\A128CBCHS256', 'isTagValid'); $T = $calc_method->invokeArgs($algorithm, [$cyphertext, $K, $iv, null, $aad]); - $this->assertEquals($expected_T, $T); - $this->assertTrue($check_method->invokeArgs($algorithm, [$cyphertext, $K, $iv, null, $aad, $T])); + self::assertEquals($expected_T, $T); + self::assertTrue($check_method->invokeArgs($algorithm, [$cyphertext, $K, $iv, null, $aad, $T])); } /** @@ -121,7 +121,7 @@ public function testA192CBC_HS384EncryptAndDecrypt() $cyphertext = $algorithm->encryptContent($plaintext, $K, $iv, $aad, $header, $T); - $this->assertEquals($expected_cyphertext, $cyphertext); + self::assertEquals($expected_cyphertext, $cyphertext); if (defined('HHVM_VERSION')) { $this->markTestSkipped('The remaining tests does not work on HHVM. The error raised does not concern the library itself.'); @@ -134,8 +134,8 @@ public function testA192CBC_HS384EncryptAndDecrypt() $check_method = self::getMethod('\Jose\Algorithm\ContentEncryption\A128CBCHS256', 'isTagValid'); $T = $calc_method->invokeArgs($algorithm, [$cyphertext, $K, $iv, null, $aad]); - $this->assertEquals($expected_T, $T); - $this->assertTrue($check_method->invokeArgs($algorithm, [$cyphertext, $K, $iv, null, $aad, $T])); + self::assertEquals($expected_T, $T); + self::assertTrue($check_method->invokeArgs($algorithm, [$cyphertext, $K, $iv, null, $aad, $T])); } /** @@ -155,7 +155,7 @@ public function testA256CBC_HS512EncryptAndDecrypt() $cyphertext = $algorithm->encryptContent($plaintext, $K, $iv, $aad, $header, $T); - $this->assertEquals($expected_cyphertext, $cyphertext); + self::assertEquals($expected_cyphertext, $cyphertext); if (defined('HHVM_VERSION')) { $this->markTestSkipped('The remaining tests does not work on HHVM. The error raised does not concern the library itself.'); @@ -168,8 +168,8 @@ public function testA256CBC_HS512EncryptAndDecrypt() $check_method = self::getMethod('\Jose\Algorithm\ContentEncryption\A128CBCHS256', 'isTagValid'); $T = $calc_method->invokeArgs($algorithm, [$cyphertext, $K, $iv, null, $aad]); - $this->assertEquals($expected_T, $T); - $this->assertTrue($check_method->invokeArgs($algorithm, [$cyphertext, $K, $iv, null, $aad, $T])); + self::assertEquals($expected_T, $T); + self::assertTrue($check_method->invokeArgs($algorithm, [$cyphertext, $K, $iv, null, $aad, $T])); } /** diff --git a/tests/Unit/Algorithm/AESGCMContentEncryptionTest.php b/tests/Unit/Algorithm/AESGCMContentEncryptionTest.php index 3e6aa6c9..4f279569 100644 --- a/tests/Unit/Algorithm/AESGCMContentEncryptionTest.php +++ b/tests/Unit/Algorithm/AESGCMContentEncryptionTest.php @@ -19,7 +19,7 @@ * * @group Unit */ -class AESGCMContentEncryptionTest extends \PHPUnit_Framework_TestCase +class AESGCMContentEncryptionTest extends \Jose\Test\BaseTestCase { public function testA128GCMEncryptAndDecrypt() { @@ -34,8 +34,8 @@ public function testA128GCMEncryptAndDecrypt() $cyphertext = $algorithm->encryptContent($plaintext, $cek, $iv, null, $header, $tag); - $this->assertNotNull($tag); - $this->assertEquals($plaintext, $algorithm->decryptContent($cyphertext, $cek, $iv, null, $header, $tag)); + self::assertNotNull($tag); + self::assertEquals($plaintext, $algorithm->decryptContent($cyphertext, $cek, $iv, null, $header, $tag)); } public function testA192GCMEncryptAndDecrypt() @@ -51,8 +51,8 @@ public function testA192GCMEncryptAndDecrypt() $cyphertext = $algorithm->encryptContent($plaintext, $cek, $iv, null, $header, $tag); - $this->assertNotNull($tag); - $this->assertEquals($plaintext, $algorithm->decryptContent($cyphertext, $cek, $iv, null, $header, $tag)); + self::assertNotNull($tag); + self::assertEquals($plaintext, $algorithm->decryptContent($cyphertext, $cek, $iv, null, $header, $tag)); } public function testA256GCMEncryptAndDecrypt() @@ -68,8 +68,8 @@ public function testA256GCMEncryptAndDecrypt() $cyphertext = $algorithm->encryptContent($plaintext, $cek, $iv, null, $header, $tag); - $this->assertNotNull($tag); - $this->assertEquals($plaintext, $algorithm->decryptContent($cyphertext, $cek, $iv, null, $header, $tag)); + self::assertNotNull($tag); + self::assertEquals($plaintext, $algorithm->decryptContent($cyphertext, $cek, $iv, null, $header, $tag)); } /** @@ -86,8 +86,8 @@ public function testA256GCMDecryptTestVector() $cyphertext = $this->convertArrayToBinString([229, 236, 166, 241, 53, 191, 115, 196, 174, 43, 73, 109, 39, 122, 233, 96, 140, 206, 120, 52, 51, 237, 48, 11, 190, 219, 186, 80, 111, 104, 50, 142, 47, 167, 59, 61, 181, 127, 196, 21, 40, 82, 242, 32, 123, 143, 168, 226, 73, 216, 176, 144, 138, 247, 106, 60, 16, 205, 160, 109, 64, 63, 192]); $expected_plaintext = 'The true sign of intelligence is not knowledge but imagination.'; - $this->assertEquals('eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ', $header); - $this->assertEquals($expected_plaintext, $algorithm->decryptContent($cyphertext, $cek, $iv, null, $header, $tag)); + self::assertEquals('eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ', $header); + self::assertEquals($expected_plaintext, $algorithm->decryptContent($cyphertext, $cek, $iv, null, $header, $tag)); } /** diff --git a/tests/Unit/Algorithm/AESGCMKWKeyEncryptionTest.php b/tests/Unit/Algorithm/AESGCMKWKeyEncryptionTest.php index bc3eeafa..b351fd10 100644 --- a/tests/Unit/Algorithm/AESGCMKWKeyEncryptionTest.php +++ b/tests/Unit/Algorithm/AESGCMKWKeyEncryptionTest.php @@ -19,7 +19,7 @@ * @group AESGCMKW * @group Unit */ -class AESGCMKWKeyEncryptionTest extends \PHPUnit_Framework_TestCase +class AESGCMKWKeyEncryptionTest extends \Jose\Test\BaseTestCase { public function testA128GCMKW() { @@ -35,11 +35,11 @@ public function testA128GCMKW() $wrapped_cek = $aeskw->wrapKey($key, $cek, $header, $header); - $this->assertTrue(array_key_exists('iv', $header)); - $this->assertTrue(array_key_exists('tag', $header)); - $this->assertNotNull($header['iv']); - $this->assertNotNull($header['tag']); - $this->assertEquals($cek, $aeskw->unwrapKey($key, $wrapped_cek, $header)); + self::assertTrue(array_key_exists('iv', $header)); + self::assertTrue(array_key_exists('tag', $header)); + self::assertNotNull($header['iv']); + self::assertNotNull($header['tag']); + self::assertEquals($cek, $aeskw->unwrapKey($key, $wrapped_cek, $header)); } /** @@ -93,11 +93,11 @@ public function testA192GCMKW() $wrapped_cek = $aeskw->wrapKey($key, $cek, $header, $header); - $this->assertTrue(array_key_exists('iv', $header)); - $this->assertTrue(array_key_exists('tag', $header)); - $this->assertNotNull($header['iv']); - $this->assertNotNull($header['tag']); - $this->assertEquals($cek, $aeskw->unwrapKey($key, $wrapped_cek, $header)); + self::assertTrue(array_key_exists('iv', $header)); + self::assertTrue(array_key_exists('tag', $header)); + self::assertNotNull($header['iv']); + self::assertNotNull($header['tag']); + self::assertEquals($cek, $aeskw->unwrapKey($key, $wrapped_cek, $header)); } public function testA256GCMKW() @@ -114,10 +114,10 @@ public function testA256GCMKW() $wrapped_cek = $aeskw->wrapKey($key, $cek, $header, $header); - $this->assertTrue(array_key_exists('iv', $header)); - $this->assertTrue(array_key_exists('tag', $header)); - $this->assertNotNull($header['iv']); - $this->assertNotNull($header['tag']); - $this->assertEquals($cek, $aeskw->unwrapKey($key, $wrapped_cek, $header)); + self::assertTrue(array_key_exists('iv', $header)); + self::assertTrue(array_key_exists('tag', $header)); + self::assertNotNull($header['iv']); + self::assertNotNull($header['tag']); + self::assertEquals($cek, $aeskw->unwrapKey($key, $wrapped_cek, $header)); } } diff --git a/tests/Unit/Algorithm/AESKWKeyEncryptionTest.php b/tests/Unit/Algorithm/AESKWKeyEncryptionTest.php index 412038ea..34f16f2d 100644 --- a/tests/Unit/Algorithm/AESKWKeyEncryptionTest.php +++ b/tests/Unit/Algorithm/AESKWKeyEncryptionTest.php @@ -19,7 +19,7 @@ * @group AESKW * @group Unit */ -class AESKWKeyEncryptionTest extends \PHPUnit_Framework_TestCase +class AESKWKeyEncryptionTest extends \Jose\Test\BaseTestCase { public function testA128KW() { @@ -35,8 +35,8 @@ public function testA128KW() $wrapped_cek = $aeskw->wrapKey($key, $cek, $header, $header); - $this->assertEquals($wrapped_cek, hex2bin('11826840774D993FF9C2FA02CCA3CEA0E93B1E1CF96361F93EA6DC2F345194E7B30F964C79F9E61D')); - $this->assertEquals($cek, $aeskw->unwrapKey($key, $wrapped_cek, $header)); + self::assertEquals($wrapped_cek, hex2bin('11826840774D993FF9C2FA02CCA3CEA0E93B1E1CF96361F93EA6DC2F345194E7B30F964C79F9E61D')); + self::assertEquals($cek, $aeskw->unwrapKey($key, $wrapped_cek, $header)); } /** @@ -71,8 +71,8 @@ public function testA192KW() $wrapped_cek = $aeskw->wrapKey($key, $cek, $header, $header); - $this->assertEquals($wrapped_cek, hex2bin('08861E000AABFA4479C7191F9DC51CCA37C50F16CC14441C6EA4980CFCE0F41D9285758C6F74AC6D')); - $this->assertEquals($cek, $aeskw->unwrapKey($key, $wrapped_cek, $header)); + self::assertEquals($wrapped_cek, hex2bin('08861E000AABFA4479C7191F9DC51CCA37C50F16CC14441C6EA4980CFCE0F41D9285758C6F74AC6D')); + self::assertEquals($cek, $aeskw->unwrapKey($key, $wrapped_cek, $header)); } public function testA256KW() @@ -89,8 +89,8 @@ public function testA256KW() $wrapped_cek = $aeskw->wrapKey($key, $cek, $header, $header); - $this->assertEquals($wrapped_cek, hex2bin('28C9F404C4B810F4CBCCB35CFB87F8263F5786E2D80ED326CBC7F0E71A99F43BFB988B9B7A02DD21')); - $this->assertEquals($cek, $aeskw->unwrapKey($key, $wrapped_cek, $header)); + self::assertEquals($wrapped_cek, hex2bin('28C9F404C4B810F4CBCCB35CFB87F8263F5786E2D80ED326CBC7F0E71A99F43BFB988B9B7A02DD21')); + self::assertEquals($cek, $aeskw->unwrapKey($key, $wrapped_cek, $header)); } /** diff --git a/tests/Unit/Algorithm/DirAlgorithmTest.php b/tests/Unit/Algorithm/DirAlgorithmBaseTest.php similarity index 86% rename from tests/Unit/Algorithm/DirAlgorithmTest.php rename to tests/Unit/Algorithm/DirAlgorithmBaseTest.php index c2b883b8..e75ae818 100644 --- a/tests/Unit/Algorithm/DirAlgorithmTest.php +++ b/tests/Unit/Algorithm/DirAlgorithmBaseTest.php @@ -12,14 +12,14 @@ use Base64Url\Base64Url; use Jose\Algorithm\KeyEncryption\Dir; use Jose\Object\JWK; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; /** * Class DirAlgorithmTest. * * @group Unit */ -class DirAlgorithmTest extends TestCase +class DirAlgorithmBaseTest extends BaseTestCase { /** * @expectedException \InvalidArgumentException @@ -45,6 +45,6 @@ public function testValidCEK() $dir = new Dir(); - $this->assertEquals('ABCD', $dir->getCEK($key)); + self::assertEquals('ABCD', $dir->getCEK($key)); } } diff --git a/tests/Unit/Algorithm/ECDHESKeyAgreementTest.php b/tests/Unit/Algorithm/ECDHESKeyAgreementTest.php index 5467b05f..6d6c7df4 100644 --- a/tests/Unit/Algorithm/ECDHESKeyAgreementTest.php +++ b/tests/Unit/Algorithm/ECDHESKeyAgreementTest.php @@ -23,7 +23,7 @@ * @group ECDHES * @group Unit */ -class ECDHESKeyAgreementTest extends \PHPUnit_Framework_TestCase +class ECDHESKeyAgreementTest extends \Jose\Test\BaseTestCase { /** * @see https://tools.ietf.org/html/rfc7518#appendix-C @@ -46,11 +46,11 @@ public function testGetAgreementKey() $additional_header_values = []; $ecdh_es->getAgreementKey(128, 'A128GCM', $receiver, $header, $additional_header_values); - $this->assertTrue(array_key_exists('epk', $additional_header_values)); - $this->assertTrue(array_key_exists('kty', $additional_header_values['epk'])); - $this->assertTrue(array_key_exists('crv', $additional_header_values['epk'])); - $this->assertTrue(array_key_exists('x', $additional_header_values['epk'])); - $this->assertTrue(array_key_exists('y', $additional_header_values['epk'])); + self::assertTrue(array_key_exists('epk', $additional_header_values)); + self::assertTrue(array_key_exists('kty', $additional_header_values['epk'])); + self::assertTrue(array_key_exists('crv', $additional_header_values['epk'])); + self::assertTrue(array_key_exists('x', $additional_header_values['epk'])); + self::assertTrue(array_key_exists('y', $additional_header_values['epk'])); } public function testGetAgreementKeyWithA128KeyWrap() @@ -80,14 +80,14 @@ public function testGetAgreementKeyWithA128KeyWrap() $ecdh_es = new ECDHESA128KW(); $encrypted_cek = $ecdh_es->wrapAgreementKey($public, $cek, 128, $header, $header); - $this->assertTrue(array_key_exists('epk', $header)); - $this->assertTrue(array_key_exists('crv', $header['epk'])); - $this->assertTrue(array_key_exists('kty', $header['epk'])); - $this->assertTrue(array_key_exists('x', $header['epk'])); - $this->assertTrue(array_key_exists('y', $header['epk'])); - $this->assertEquals('P-256', $header['epk']['crv']); - $this->assertEquals('EC', $header['epk']['kty']); - $this->assertEquals($cek, $ecdh_es->unwrapAgreementKey($private, $encrypted_cek, 128, $header)); + self::assertTrue(array_key_exists('epk', $header)); + self::assertTrue(array_key_exists('crv', $header['epk'])); + self::assertTrue(array_key_exists('kty', $header['epk'])); + self::assertTrue(array_key_exists('x', $header['epk'])); + self::assertTrue(array_key_exists('y', $header['epk'])); + self::assertEquals('P-256', $header['epk']['crv']); + self::assertEquals('EC', $header['epk']['kty']); + self::assertEquals($cek, $ecdh_es->unwrapAgreementKey($private, $encrypted_cek, 128, $header)); } public function testGetAgreementKeyWithA192KeyWrap() @@ -117,14 +117,14 @@ public function testGetAgreementKeyWithA192KeyWrap() $ecdh_es = new ECDHESA192KW(); $encrypted_cek = $ecdh_es->wrapAgreementKey($public, $cek, 192, $header, $header); - $this->assertTrue(array_key_exists('epk', $header)); - $this->assertTrue(array_key_exists('crv', $header['epk'])); - $this->assertTrue(array_key_exists('kty', $header['epk'])); - $this->assertTrue(array_key_exists('x', $header['epk'])); - $this->assertTrue(array_key_exists('y', $header['epk'])); - $this->assertEquals('P-256', $header['epk']['crv']); - $this->assertEquals('EC', $header['epk']['kty']); - $this->assertEquals($cek, $ecdh_es->unwrapAgreementKey($private, $encrypted_cek, 192, $header)); + self::assertTrue(array_key_exists('epk', $header)); + self::assertTrue(array_key_exists('crv', $header['epk'])); + self::assertTrue(array_key_exists('kty', $header['epk'])); + self::assertTrue(array_key_exists('x', $header['epk'])); + self::assertTrue(array_key_exists('y', $header['epk'])); + self::assertEquals('P-256', $header['epk']['crv']); + self::assertEquals('EC', $header['epk']['kty']); + self::assertEquals($cek, $ecdh_es->unwrapAgreementKey($private, $encrypted_cek, 192, $header)); } public function testGetAgreementKeyWithA256KeyWrap() @@ -154,14 +154,14 @@ public function testGetAgreementKeyWithA256KeyWrap() $ecdh_es = new ECDHESA256KW(); $encrypted_cek = $ecdh_es->wrapAgreementKey($public, $cek, 256, $header, $header); - $this->assertTrue(array_key_exists('epk', $header)); - $this->assertTrue(array_key_exists('crv', $header['epk'])); - $this->assertTrue(array_key_exists('kty', $header['epk'])); - $this->assertTrue(array_key_exists('x', $header['epk'])); - $this->assertTrue(array_key_exists('y', $header['epk'])); - $this->assertEquals('P-256', $header['epk']['crv']); - $this->assertEquals('EC', $header['epk']['kty']); - $this->assertEquals($cek, $ecdh_es->unwrapAgreementKey($private, $encrypted_cek, 256, $header)); + self::assertTrue(array_key_exists('epk', $header)); + self::assertTrue(array_key_exists('crv', $header['epk'])); + self::assertTrue(array_key_exists('kty', $header['epk'])); + self::assertTrue(array_key_exists('x', $header['epk'])); + self::assertTrue(array_key_exists('y', $header['epk'])); + self::assertEquals('P-256', $header['epk']['crv']); + self::assertEquals('EC', $header['epk']['kty']); + self::assertEquals($cek, $ecdh_es->unwrapAgreementKey($private, $encrypted_cek, 256, $header)); } /** @@ -262,7 +262,7 @@ public function testGetAgreementKeyWithX25519Curve() $agreement_key_from_sender = $ecdh_es->getAgreementKey(128, 'A128GCM', $receiver_public_key, $header, $additional_header_values); $agreement_key_from_receiver = $ecdh_es->getAgreementKey(128, 'A128GCM', $receiver_private_key, array_merge($header, $additional_header_values)); - $this->assertTrue(array_key_exists('epk', $additional_header_values)); - $this->assertEquals($agreement_key_from_receiver, $agreement_key_from_sender); + self::assertTrue(array_key_exists('epk', $additional_header_values)); + self::assertEquals($agreement_key_from_receiver, $agreement_key_from_sender); } } diff --git a/tests/Unit/Algorithm/ECDSASignatureTest.php b/tests/Unit/Algorithm/ECDSASignatureTest.php index fc662d41..9b23f05a 100644 --- a/tests/Unit/Algorithm/ECDSASignatureTest.php +++ b/tests/Unit/Algorithm/ECDSASignatureTest.php @@ -22,7 +22,7 @@ * * The values of these tests come from the JWS specification */ -class ECDSASignatureTest extends \PHPUnit_Framework_TestCase +class ECDSASignatureTest extends \Jose\Test\BaseTestCase { /** * @expectedException \InvalidArgumentException @@ -56,8 +56,8 @@ public function testES256Verify() $sign = $ecdsa->sign($key, $data); - $this->assertTrue($ecdsa->verify($key, $data, $sign)); - $this->assertTrue($ecdsa->verify($key, $data, Base64Url::decode($signature))); + self::assertTrue($ecdsa->verify($key, $data, $sign)); + self::assertTrue($ecdsa->verify($key, $data, Base64Url::decode($signature))); } public function testES256SignVerify() @@ -75,7 +75,7 @@ public function testES256SignVerify() $data = 'eyJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ'; $signature = $ecdsa->sign($key, $data); - $this->assertTrue($ecdsa->verify($key, $data, $signature)); + self::assertTrue($ecdsa->verify($key, $data, $signature)); } /** @@ -106,7 +106,7 @@ public function testES256SignAndVerify() $data = 'Live long and Prosper.'; $signature = $ecdsa->sign($private_key, $data); - $this->assertTrue($ecdsa->verify($public_key, $data, $signature)); + self::assertTrue($ecdsa->verify($public_key, $data, $signature)); } public function testES384SignAndVerify() @@ -118,7 +118,7 @@ public function testES384SignAndVerify() $data = 'Live long and Prosper.'; $signature = $ecdsa->sign($private_key, $data); - $this->assertTrue($ecdsa->verify($public_key, $data, $signature)); + self::assertTrue($ecdsa->verify($public_key, $data, $signature)); } public function testES512SignAndVerify() @@ -130,7 +130,7 @@ public function testES512SignAndVerify() $data = 'Live long and Prosper.'; $signature = $ecdsa->sign($private_key, $data); - $this->assertTrue($ecdsa->verify($public_key, $data, $signature)); + self::assertTrue($ecdsa->verify($public_key, $data, $signature)); } public function testHS512Verify() @@ -149,8 +149,8 @@ public function testHS512Verify() $sign = $ecdsa->sign($key, $data); - $this->assertTrue($ecdsa->verify($key, $data, $sign)); - $this->assertTrue($ecdsa->verify($key, $data, Base64Url::decode($signature))); + self::assertTrue($ecdsa->verify($key, $data, $sign)); + self::assertTrue($ecdsa->verify($key, $data, Base64Url::decode($signature))); } public function testHS512SignVerify() @@ -168,7 +168,7 @@ public function testHS512SignVerify() $data = 'eyJhbGciOiJFUzUxMiJ9.UGF5bG9hZA'; $signature = $ecdsa->sign($key, $data); - $this->assertTrue($ecdsa->verify($key, $data, $signature)); + self::assertTrue($ecdsa->verify($key, $data, $signature)); } public function testBadSignature() @@ -185,6 +185,6 @@ public function testBadSignature() $data = 'eyJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ'; $signature = 'DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3'; - $this->assertFalse($ecdsa->verify($key, $data, Base64Url::decode($signature))); + self::assertFalse($ecdsa->verify($key, $data, Base64Url::decode($signature))); } } diff --git a/tests/Unit/Algorithm/EdDSASignatureTest.php b/tests/Unit/Algorithm/EdDSASignatureBaseTest.php similarity index 85% rename from tests/Unit/Algorithm/EdDSASignatureTest.php rename to tests/Unit/Algorithm/EdDSASignatureBaseTest.php index 1965f97d..56903c25 100644 --- a/tests/Unit/Algorithm/EdDSASignatureTest.php +++ b/tests/Unit/Algorithm/EdDSASignatureBaseTest.php @@ -15,7 +15,7 @@ use Jose\Loader; use Jose\Object\JWK; use Jose\Object\JWSInterface; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; use Jose\Verifier; /** @@ -24,7 +24,7 @@ * @group EdDSA * @group Unit */ -class EdDSASignatureTest extends TestCase +class EdDSASignatureBaseTest extends BaseTestCase { /** * @see https://tools.ietf.org/html/draft-ietf-jose-cfrg-curves-00#appendix-A.5 @@ -70,14 +70,14 @@ public function testEdDSASignAndVerifyAlgorithm() $jws = JWSFactory::createJWSToCompactJSON($input, $key, $header); - $this->assertEquals('eyJhbGciOiJFZERTQSJ9.RXhhbXBsZSBvZiBFZDI1NTE5IHNpZ25pbmc.hgyY0il_MGCjP0JzlnLWG1PPOt7-09PGcvMg3AIbQR6dWbhijcNR4ki4iylGjg5BhVsPt9g7sVvpAr_MuM0KAg', $jws); + self::assertEquals('eyJhbGciOiJFZERTQSJ9.RXhhbXBsZSBvZiBFZDI1NTE5IHNpZ25pbmc.hgyY0il_MGCjP0JzlnLWG1PPOt7-09PGcvMg3AIbQR6dWbhijcNR4ki4iylGjg5BhVsPt9g7sVvpAr_MuM0KAg', $jws); $loader = new Loader(); $loaded = $loader->load($jws); $verifier = Verifier::createVerifier(['EdDSA']); - $this->assertInstanceOf(JWSInterface::class, $loaded); - $this->assertEquals(1, $loaded->countSignatures()); + self::assertInstanceOf(JWSInterface::class, $loaded); + self::assertEquals(1, $loaded->countSignatures()); $verifier->verifyWithKey($loaded, $key); } } diff --git a/tests/Unit/Algorithm/HMACSignatureTest.php b/tests/Unit/Algorithm/HMACSignatureTest.php index 8c894e6d..5ddce404 100644 --- a/tests/Unit/Algorithm/HMACSignatureTest.php +++ b/tests/Unit/Algorithm/HMACSignatureTest.php @@ -20,7 +20,7 @@ * @group HMAC * @group Unit */ -class HMACSignatureTest extends \PHPUnit_Framework_TestCase +class HMACSignatureTest extends \Jose\Test\BaseTestCase { /** * @expectedException \InvalidArgumentException @@ -47,7 +47,7 @@ public function testSignatureHasBadBadLength() $hmac = new HS256(); $data = 'Live long and Prosper.'; - $this->assertFalse($hmac->verify($key, $data, hex2bin('326eb338c465d3587f3349df0b96ba81'))); + self::assertFalse($hmac->verify($key, $data, hex2bin('326eb338c465d3587f3349df0b96ba81'))); } public function testHS256SignAndVerify() @@ -61,8 +61,8 @@ public function testHS256SignAndVerify() $signature = $hmac->sign($key, $data); - $this->assertEquals(hex2bin('89f750759cb8ad9315d7ec6bd8d5dc5899e0a97bc12f9e355f383776f53f025c'), $signature); - $this->assertTrue($hmac->verify($key, $data, $signature)); + self::assertEquals(hex2bin('89f750759cb8ad9315d7ec6bd8d5dc5899e0a97bc12f9e355f383776f53f025c'), $signature); + self::assertTrue($hmac->verify($key, $data, $signature)); } public function testHS384SignAndVerify() @@ -76,8 +76,8 @@ public function testHS384SignAndVerify() $signature = $hmac->sign($key, $data); - $this->assertEquals(hex2bin('8985f2c6efef1c1b9baf7d7b0b17ce6db65184044bdeaa01296fe6d61900224fc783f4bb7b7aadfdfb4d0663b1284e66'), $signature); - $this->assertTrue($hmac->verify($key, $data, $signature)); + self::assertEquals(hex2bin('8985f2c6efef1c1b9baf7d7b0b17ce6db65184044bdeaa01296fe6d61900224fc783f4bb7b7aadfdfb4d0663b1284e66'), $signature); + self::assertTrue($hmac->verify($key, $data, $signature)); } public function testHS512SignAndVerify() @@ -91,7 +91,7 @@ public function testHS512SignAndVerify() $signature = $hmac->sign($key, $data); - $this->assertEquals(hex2bin('6f91ca09dc2e655d089f1018fb447f16c68d65f32f54ea84542edb1db5dfbbda141cbb41741b7383a7dff6af56be564fd74a8857eab6a680094bbcb41b2f29e1'), $signature); - $this->assertTrue($hmac->verify($key, $data, $signature)); + self::assertEquals(hex2bin('6f91ca09dc2e655d089f1018fb447f16c68d65f32f54ea84542edb1db5dfbbda141cbb41741b7383a7dff6af56be564fd74a8857eab6a680094bbcb41b2f29e1'), $signature); + self::assertTrue($hmac->verify($key, $data, $signature)); } } diff --git a/tests/Unit/Algorithm/JWAManagerTest.php b/tests/Unit/Algorithm/JWAManagerBaseTest.php similarity index 68% rename from tests/Unit/Algorithm/JWAManagerTest.php rename to tests/Unit/Algorithm/JWAManagerBaseTest.php index a24b59f6..d10ddbb6 100644 --- a/tests/Unit/Algorithm/JWAManagerTest.php +++ b/tests/Unit/Algorithm/JWAManagerBaseTest.php @@ -13,7 +13,7 @@ use Jose\Algorithm\JWAManager; use Jose\Algorithm\Signature\ES384; use Jose\Factory\AlgorithmManagerFactory; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; /** * Class JWAManagerTest. @@ -21,32 +21,32 @@ * @group JWA * @group Unit */ -class JWAManagerTest extends TestCase +class JWAManagerBaseTest extends BaseTestCase { public function testAlgorithmIsSupported() { $jwa_manager = AlgorithmManagerFactory::createAlgorithmManager(['ES256', 'ES384']); - $this->assertTrue($jwa_manager->isAlgorithmSupported('ES256')); - $this->assertTrue($jwa_manager->isAlgorithmSupported('ES384')); + self::assertTrue($jwa_manager->isAlgorithmSupported('ES256')); + self::assertTrue($jwa_manager->isAlgorithmSupported('ES384')); - $this->assertFalse($jwa_manager->isAlgorithmSupported('ES512')); - $this->assertFalse($jwa_manager->isAlgorithmSupported('HS384')); + self::assertFalse($jwa_manager->isAlgorithmSupported('ES512')); + self::assertFalse($jwa_manager->isAlgorithmSupported('HS384')); - $this->assertEquals(['ES256', 'ES384'], $jwa_manager->listAlgorithms()); - $this->assertInstanceOf(JWAInterface::class, $jwa_manager->getAlgorithm('ES256')); - $this->assertInstanceOf(JWAInterface::class, $jwa_manager->getAlgorithms()['ES256']); + self::assertEquals(['ES256', 'ES384'], $jwa_manager->listAlgorithms()); + self::assertInstanceOf(JWAInterface::class, $jwa_manager->getAlgorithm('ES256')); + self::assertInstanceOf(JWAInterface::class, $jwa_manager->getAlgorithms()['ES256']); $jwa_manager->removeAlgorithm('ES256'); $jwa_manager->removeAlgorithm('ES256'); - $this->assertNull($jwa_manager->getAlgorithm('ES256')); - $this->assertEquals(['ES384'], $jwa_manager->listAlgorithms()); + self::assertNull($jwa_manager->getAlgorithm('ES256')); + self::assertEquals(['ES384'], $jwa_manager->listAlgorithms()); $jwa_manager->removeAlgorithm(new ES384()); - $this->assertNull($jwa_manager->getAlgorithm('HS384')); - $this->assertEquals([], $jwa_manager->listAlgorithms()); + self::assertNull($jwa_manager->getAlgorithm('HS384')); + self::assertEquals([], $jwa_manager->listAlgorithms()); } /** @@ -100,6 +100,6 @@ public function testAllAlgorithms() ]; $jwa_manager = AlgorithmManagerFactory::createAlgorithmManager($algorithms); - $this->assertEquals($algorithms, $jwa_manager->listAlgorithms()); + self::assertEquals($algorithms, $jwa_manager->listAlgorithms()); } } diff --git a/tests/Unit/Algorithm/NoneSignatureTest.php b/tests/Unit/Algorithm/NoneSignatureBaseTest.php similarity index 69% rename from tests/Unit/Algorithm/NoneSignatureTest.php rename to tests/Unit/Algorithm/NoneSignatureBaseTest.php index 82ac5303..420df247 100644 --- a/tests/Unit/Algorithm/NoneSignatureTest.php +++ b/tests/Unit/Algorithm/NoneSignatureBaseTest.php @@ -14,7 +14,7 @@ use Jose\Object\JWK; use Jose\Object\JWSInterface; use Jose\Signer; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; /** * Class NoneSignatureTest. @@ -22,7 +22,7 @@ * @group None * @group Unit */ -class NoneSignatureTest extends TestCase +class NoneSignatureBaseTest extends BaseTestCase { public function testNoneSignAndVerifyAlgorithm() { @@ -35,8 +35,8 @@ public function testNoneSignAndVerifyAlgorithm() $signature = $none->sign($key, $data); - $this->assertEquals($signature, ''); - $this->assertTrue($none->verify($key, $data, $signature)); + self::assertEquals($signature, ''); + self::assertTrue($none->verify($key, $data, $signature)); } /** @@ -67,19 +67,19 @@ public function testNoneSignAndVerifyComplete() $signer = Signer::createSigner(['none']); $signer->sign($jws); - $this->assertEquals(1, $jws->countSignatures()); + self::assertEquals(1, $jws->countSignatures()); $compact = $jws->toCompactJSON(0); - $this->assertTrue(is_string($compact)); + self::assertTrue(is_string($compact)); $loader = new Loader(); $result = $loader->load($compact); - $this->assertInstanceOf(JWSInterface::class, $result); + self::assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals('Live long and Prosper.', $result->getPayload()); - $this->assertEquals(1, $result->countSignatures()); - $this->assertTrue($result->getSignature(0)->hasProtectedHeader('alg')); - $this->assertEquals('none', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertEquals('Live long and Prosper.', $result->getPayload()); + self::assertEquals(1, $result->countSignatures()); + self::assertTrue($result->getSignature(0)->hasProtectedHeader('alg')); + self::assertEquals('none', $result->getSignature(0)->getProtectedHeader('alg')); } } diff --git a/tests/Unit/Algorithm/PBES2_HS_AESKWKeyEncryptionTest.php b/tests/Unit/Algorithm/PBES2_HS_AESKWKeyEncryptionTest.php index 51da33b1..4d46eb14 100644 --- a/tests/Unit/Algorithm/PBES2_HS_AESKWKeyEncryptionTest.php +++ b/tests/Unit/Algorithm/PBES2_HS_AESKWKeyEncryptionTest.php @@ -21,7 +21,7 @@ * @group PBES2HSAESKW * @group Unit */ -class PBES2_HS_AESKWKeyEncryptionTest extends \PHPUnit_Framework_TestCase +class PBES2_HS_AESKWKeyEncryptionTest extends \Jose\Test\BaseTestCase { /** * @see https://tools.ietf.org/html/rfc7517#appendix-C @@ -46,7 +46,7 @@ public function testPBES2HS256A128KW() $wrapped_cek = Base64Url::decode('TrqXOwuNUfDV9VPTNbyGvEJ9JMjefAVn-TR1uIxR9p6hsRQh9Tk7BA'); - $this->assertEquals($expected_cek, $pbes2->unwrapKey($key, $wrapped_cek, $header)); + self::assertEquals($expected_cek, $pbes2->unwrapKey($key, $wrapped_cek, $header)); } public function testPBES2HS256A128KW_Bis() @@ -65,9 +65,9 @@ public function testPBES2HS256A128KW_Bis() $pbes2 = new PBES2HS256A128KW(); $encrypted_cek = $pbes2->wrapKey($key, $cek, $header, $header); - $this->assertTrue(isset($header['p2s'])); - $this->assertEquals(4096, $header['p2c']); - $this->assertEquals($cek, $pbes2->unwrapKey($key, $encrypted_cek, $header)); + self::assertTrue(isset($header['p2s'])); + self::assertEquals(4096, $header['p2c']); + self::assertEquals($cek, $pbes2->unwrapKey($key, $encrypted_cek, $header)); } public function testPBES2HS384A192KW() @@ -86,9 +86,9 @@ public function testPBES2HS384A192KW() $pbes2 = new PBES2HS384A192KW(); $encrypted_cek = $pbes2->wrapKey($key, $cek, $header, $header); - $this->assertTrue(isset($header['p2s'])); - $this->assertEquals(4096, $header['p2c']); - $this->assertEquals($cek, $pbes2->unwrapKey($key, $encrypted_cek, $header)); + self::assertTrue(isset($header['p2s'])); + self::assertEquals(4096, $header['p2c']); + self::assertEquals($cek, $pbes2->unwrapKey($key, $encrypted_cek, $header)); } public function testPBES2HS512A256KW() @@ -107,9 +107,9 @@ public function testPBES2HS512A256KW() $pbes2 = new PBES2HS512A256KW(); $encrypted_cek = $pbes2->wrapKey($key, $cek, $header, $header); - $this->assertTrue(isset($header['p2s'])); - $this->assertEquals(4096, $header['p2c']); - $this->assertEquals($cek, $pbes2->unwrapKey($key, $encrypted_cek, $header)); + self::assertTrue(isset($header['p2s'])); + self::assertEquals(4096, $header['p2c']); + self::assertEquals($cek, $pbes2->unwrapKey($key, $encrypted_cek, $header)); } /** diff --git a/tests/Unit/Algorithm/RSAKeyEncryptionTest.php b/tests/Unit/Algorithm/RSAKeyEncryptionBaseTest.php similarity index 87% rename from tests/Unit/Algorithm/RSAKeyEncryptionTest.php rename to tests/Unit/Algorithm/RSAKeyEncryptionBaseTest.php index cccd463b..e42b9c2a 100644 --- a/tests/Unit/Algorithm/RSAKeyEncryptionTest.php +++ b/tests/Unit/Algorithm/RSAKeyEncryptionBaseTest.php @@ -17,14 +17,14 @@ use Jose\Loader; use Jose\Object\JWEInterface; use Jose\Object\JWK; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; /** * Class RSAKeyEncryptionTest. * * @group Unit */ -class RSAKeyEncryptionTest extends TestCase +class RSAKeyEncryptionBaseTest extends BaseTestCase { /** * @expectedException \InvalidArgumentException @@ -75,8 +75,8 @@ public function testRSA1_5EncryptionAndDecryption() $additional_headers = []; $encrypted = $rsa1_5->encryptKey($jwk, $cek, $header, $additional_headers); - $this->assertEquals($cek, $rsa1_5->decryptKey($jwk, $encrypted, $header)); - $this->assertEquals($cek, $rsa1_5->decryptKey($jwk, $from_specification, $header)); + self::assertEquals($cek, $rsa1_5->decryptKey($jwk, $encrypted, $header)); + self::assertEquals($cek, $rsa1_5->decryptKey($jwk, $from_specification, $header)); } /** @@ -109,8 +109,8 @@ public function testRSAOAEPEncryptionAndDecryption() $additional_headers = []; $encrypted = $rsa_oaep->encryptKey($jwk, $cek, $header, $additional_headers); - $this->assertEquals($cek, $rsa_oaep->decryptKey($jwk, $encrypted, $header)); - $this->assertEquals($cek, $rsa_oaep->decryptKey($jwk, $from_specification, $header)); + self::assertEquals($cek, $rsa_oaep->decryptKey($jwk, $encrypted, $header)); + self::assertEquals($cek, $rsa_oaep->decryptKey($jwk, $from_specification, $header)); } /** @@ -141,7 +141,7 @@ public function testRSAOAEP256EncryptionAndDecryption() $additional_headers = []; $encrypted = $rsa_oaep_256->encryptKey($jwk, $cek, $header, $additional_headers); - $this->assertEquals($cek, $rsa_oaep_256->decryptKey($jwk, $encrypted, $header)); + self::assertEquals($cek, $rsa_oaep_256->decryptKey($jwk, $encrypted, $header)); } /** @@ -154,15 +154,15 @@ public function testLoadJWK1() $loader = new Loader(); $loaded = $loader->load('eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.OKOawDo13gRp2ojaHV7LFpZcgV7T6DVZKTyKOMTYUmKoTCVJRgckCL9kiMT03JGeipsEdY3mx_etLbbWSrFr05kLzcSr4qKAq7YN7e9jwQRb23nfa6c9d-StnImGyFDbSv04uVuxIp5Zms1gNxKKK2Da14B8S4rzVRltdYwam_lDp5XnZAYpQdb76FdIKLaVmqgfwX7XWRxv2322i-vDxRfqNzo_tETKzpVLzfiwQyeyPGLBIO56YJ7eObdv0je81860ppamavo35UgoRdbYaBcoh9QcfylQr66oc6vFWXRcZ_ZT2LawVCWTIy3brGPi6UklfCpIMfIjf7iGdXKHzg.48V1_ALb6US04U3b.5eym8TW_c8SuK0ltJ3rpYIzOeDQz7TALvtu6UG9oMo4vpzs9tX_EFShS8iB7j6jiSdiwkIr3ajwQzaBtQD_A.XFBoMYUZodetZdvTiFvSkQ'); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('RSA-OAEP', $loaded->getSharedProtectedHeader('alg')); - $this->assertEquals('A256GCM', $loaded->getSharedProtectedHeader('enc')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('RSA-OAEP', $loaded->getSharedProtectedHeader('alg')); + self::assertEquals('A256GCM', $loaded->getSharedProtectedHeader('enc')); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getPrivateKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertEquals('The true sign of intelligence is not knowledge but imagination.', $loaded->getPayload()); + self::assertEquals(0, $index); + self::assertEquals('The true sign of intelligence is not knowledge but imagination.', $loaded->getPayload()); } /** @@ -175,13 +175,13 @@ public function testLoadJWK2() $loader = new Loader(); $loaded = $loader->load('eyJhbGciOiJSU0ExXzUiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0.UGhIOguC7IuEvf_NPVaXsGMoLOmwvc1GyqlIKOK1nN94nHPoltGRhWhw7Zx0-kFm1NJn8LE9XShH59_i8J0PH5ZZyNfGy2xGdULU7sHNF6Gp2vPLgNZ__deLKxGHZ7PcHALUzoOegEI-8E66jX2E4zyJKx-YxzZIItRzC5hlRirb6Y5Cl_p-ko3YvkkysZIFNPccxRU7qve1WYPxqbb2Yw8kZqa2rMWI5ng8OtvzlV7elprCbuPhcCdZ6XDP0_F8rkXds2vE4X-ncOIM8hAYHHi29NX0mcKiRaD0-D-ljQTP-cFPgwCp6X-nZZd9OHBv-B3oWh2TbqmScqXMR4gp_A.AxY8DCtDaGlsbGljb3RoZQ.KDlTtXchhZTGufMYmOYGS4HffxPSUrfmqCHXaI9wOGY.9hH0vgRfYgPnAHOd8stkvw'); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getPrivateKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertEquals('Live long and prosper.', $loaded->getPayload()); + self::assertEquals(0, $index); + self::assertEquals('Live long and prosper.', $loaded->getPayload()); } /** @@ -194,14 +194,14 @@ public function testLoadJWK3() $loader = new Loader(); $loaded = $loader->load('eyJhbGciOiJBMTI4S1ciLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0.6KB707dM9YTIgHtLvtgWQ8mKwboJW3of9locizkDTHzBC2IlrT1oOQ.AxY8DCtDaGlsbGljb3RoZQ.KDlTtXchhZTGufMYmOYGS4HffxPSUrfmqCHXaI9wOGY.U0m_YmjN04DJvceFICbCVQ'); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('A128KW', $loaded->getSharedProtectedHeader('alg')); - $this->assertEquals('A128CBC-HS256', $loaded->getSharedProtectedHeader('enc')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('A128KW', $loaded->getSharedProtectedHeader('alg')); + self::assertEquals('A128CBC-HS256', $loaded->getSharedProtectedHeader('enc')); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getSymmetricKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertEquals('Live long and prosper.', $loaded->getPayload()); + self::assertEquals(0, $index); + self::assertEquals('Live long and prosper.', $loaded->getPayload()); } } diff --git a/tests/Unit/Algorithm/RSAKeyWithoutAllPrimesTest.php b/tests/Unit/Algorithm/RSAKeyWithoutAllPrimesTest.php index 467a46cc..9c4d9622 100644 --- a/tests/Unit/Algorithm/RSAKeyWithoutAllPrimesTest.php +++ b/tests/Unit/Algorithm/RSAKeyWithoutAllPrimesTest.php @@ -22,7 +22,7 @@ * @group RSA2 * @group Unit */ -class RSAKeyWithoutAllPrimesTest extends \PHPUnit_Framework_TestCase +class RSAKeyWithoutAllPrimesTest extends \Jose\Test\BaseTestCase { /** * @param string $signature_algorithm @@ -39,7 +39,7 @@ public function testSignatureAlgorithms($signature_algorithm) $loader = new Loader(); - $this->assertInstanceOf(JWSInterface::class, $loader->loadAndVerifySignatureUsingKey($jwt, $key, [$signature_algorithm])); + self::assertInstanceOf(JWSInterface::class, $loader->loadAndVerifySignatureUsingKey($jwt, $key, [$signature_algorithm])); } /** @@ -84,7 +84,7 @@ public function testEncryptionAlgorithms($encryption_algorithm) $loader = new Loader(); - $this->assertInstanceOf(JWEInterface::class, $loader->loadAndDecryptUsingKey($jwt, $key, [$encryption_algorithm], ['A256GCM'])); + self::assertInstanceOf(JWEInterface::class, $loader->loadAndDecryptUsingKey($jwt, $key, [$encryption_algorithm], ['A256GCM'])); } /** @@ -102,7 +102,7 @@ public function testEncryptionAlgorithmsWithMinimalRsaKey($encryption_algorithm) $loader = new Loader(); - $this->assertInstanceOf(JWEInterface::class, $loader->loadAndDecryptUsingKey($jwt, $key, [$encryption_algorithm], ['A256GCM'])); + self::assertInstanceOf(JWEInterface::class, $loader->loadAndDecryptUsingKey($jwt, $key, [$encryption_algorithm], ['A256GCM'])); } /** diff --git a/tests/Unit/Algorithm/RSASignatureTest.php b/tests/Unit/Algorithm/RSASignatureBaseTest.php similarity index 80% rename from tests/Unit/Algorithm/RSASignatureTest.php rename to tests/Unit/Algorithm/RSASignatureBaseTest.php index 9b107101..68c71d4b 100644 --- a/tests/Unit/Algorithm/RSASignatureTest.php +++ b/tests/Unit/Algorithm/RSASignatureBaseTest.php @@ -24,7 +24,7 @@ use Jose\Object\JWK; use Jose\Object\JWSInterface; use Jose\Signer; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; use Jose\Verifier; /** @@ -33,7 +33,7 @@ * @group RSA * @group Unit */ -class RSASignatureTest extends TestCase +class RSASignatureBaseTest extends BaseTestCase { /** * @expectedException \InvalidArgumentException @@ -87,8 +87,8 @@ public function testRS256Sign() $signature = $rsa->sign($key, $data); - $this->assertEquals('FD6TkoJhFl399fPVg9dkr7-bNAPNqNdLrXQohL5zQ62EdFRNrvaK3uYY8CV-G8mxWavuPc2p2FaYijhOTaGXpsatpQNAeO6E7VRX8FkXOUk3ehfN6ODKdhFX943uXZOziRiJVEBt2YEUaVqbwNcLbQysgwrIT8XIlQ4hFSojEbLcF55az4k8sgj8v_YFv28cZUCZP2nlT49uqSjalcACmqdMmfs7sEUKDsGlNA31wpHss9mKBfulMNuJVSRdLx7ZFWTSuvbfx0GtFL5l2VzkE_7KV7CfO-IlKeyi-Uonnj_c_wjqldd-_RKm_7nk5o7picfbrApFaKgFqWv3ag9wPA', Base64Url::encode($signature)); - $this->assertTrue($rsa->verify($key, $data, $signature)); + self::assertEquals('FD6TkoJhFl399fPVg9dkr7-bNAPNqNdLrXQohL5zQ62EdFRNrvaK3uYY8CV-G8mxWavuPc2p2FaYijhOTaGXpsatpQNAeO6E7VRX8FkXOUk3ehfN6ODKdhFX943uXZOziRiJVEBt2YEUaVqbwNcLbQysgwrIT8XIlQ4hFSojEbLcF55az4k8sgj8v_YFv28cZUCZP2nlT49uqSjalcACmqdMmfs7sEUKDsGlNA31wpHss9mKBfulMNuJVSRdLx7ZFWTSuvbfx0GtFL5l2VzkE_7KV7CfO-IlKeyi-Uonnj_c_wjqldd-_RKm_7nk5o7picfbrApFaKgFqWv3ag9wPA', Base64Url::encode($signature)); + self::assertTrue($rsa->verify($key, $data, $signature)); } public function testRS384Sign() @@ -109,8 +109,8 @@ public function testRS384Sign() $signature = $rsa->sign($key, $data); - $this->assertEquals('ZjdgGhfRAxhhl0CQhQY_ZZz2kKFxtGHtYHpaGGZTzGU5n26qEboaSXFqJW_qWceYfl3C_EWZFJrRH3YI0QF6DyfX2ILfRBi4FXf7GxuSW9lrBtDR2Qen8fDQZ-PHbtFXs_eRVx6D9h_LmTFyDaND9aFj1eiVp7CpHIPq0k9lwErDPsZ6yBwVyzbHyVBL0xUJdGbHXUC5QLzCKWBrX23O0Xm7SOKb6DcdACa_JsLcoOtczjplk8rdpx0W8QlugE_O6j1Aq4pxcjjA8IP5hU6t6cK1GVabnZtoG-lKKl95V1wKRou0Kr0X-KHaIbYOW8IyuzJVppTUBwM5tnuMb5zLEA', Base64Url::encode($signature)); - $this->assertTrue($rsa->verify($key, $data, $signature)); + self::assertEquals('ZjdgGhfRAxhhl0CQhQY_ZZz2kKFxtGHtYHpaGGZTzGU5n26qEboaSXFqJW_qWceYfl3C_EWZFJrRH3YI0QF6DyfX2ILfRBi4FXf7GxuSW9lrBtDR2Qen8fDQZ-PHbtFXs_eRVx6D9h_LmTFyDaND9aFj1eiVp7CpHIPq0k9lwErDPsZ6yBwVyzbHyVBL0xUJdGbHXUC5QLzCKWBrX23O0Xm7SOKb6DcdACa_JsLcoOtczjplk8rdpx0W8QlugE_O6j1Aq4pxcjjA8IP5hU6t6cK1GVabnZtoG-lKKl95V1wKRou0Kr0X-KHaIbYOW8IyuzJVppTUBwM5tnuMb5zLEA', Base64Url::encode($signature)); + self::assertTrue($rsa->verify($key, $data, $signature)); } public function testRS512Sign() @@ -131,8 +131,8 @@ public function testRS512Sign() $signature = $rsa->sign($key, $data); - $this->assertEquals('YJucnqnY8ZmHTqGWm59y_1GG54MZgW0dRRR25iTrCZP_OdybajIgMbfKh2ckubhOxDsavdKHTnnmayIBAWPwEIZWeg__Et97GarlofDQ3YymTTVo8HofI74Oy2mwNzD2_u6SWC5Ow_o4uC_-P2acQBmSOLP9xQ2tQwGujjam8KWvoY6F_QyRzOVFo1ETWVTlWLYycInw9GbbovfwvHiJ0EDp-BDN-RDG8VNEwzVCWRMf6zn6GaTntTnMRP6wtHZt4fBlC33DFIzpHdtFZi2EfJwDkJOWtWn4ss6MyaN4FZHsqH4g78ZzHx06EvnD6Q73Q4sfHN8U9xVzmMwOOiThkA', Base64Url::encode($signature)); - $this->assertTrue($rsa->verify($key, $data, $signature)); + self::assertEquals('YJucnqnY8ZmHTqGWm59y_1GG54MZgW0dRRR25iTrCZP_OdybajIgMbfKh2ckubhOxDsavdKHTnnmayIBAWPwEIZWeg__Et97GarlofDQ3YymTTVo8HofI74Oy2mwNzD2_u6SWC5Ow_o4uC_-P2acQBmSOLP9xQ2tQwGujjam8KWvoY6F_QyRzOVFo1ETWVTlWLYycInw9GbbovfwvHiJ0EDp-BDN-RDG8VNEwzVCWRMf6zn6GaTntTnMRP6wtHZt4fBlC33DFIzpHdtFZi2EfJwDkJOWtWn4ss6MyaN4FZHsqH4g78ZzHx06EvnD6Q73Q4sfHN8U9xVzmMwOOiThkA', Base64Url::encode($signature)); + self::assertTrue($rsa->verify($key, $data, $signature)); } public function testPS256Sign() @@ -153,7 +153,7 @@ public function testPS256Sign() $signature = $rsa->sign($key, $data); - $this->assertTrue($rsa->verify($key, $data, $signature)); + self::assertTrue($rsa->verify($key, $data, $signature)); } public function testPS384Sign() @@ -174,7 +174,7 @@ public function testPS384Sign() $signature = $rsa->sign($key, $data); - $this->assertTrue($rsa->verify($key, $data, $signature)); + self::assertTrue($rsa->verify($key, $data, $signature)); } public function testPS512Sign() @@ -195,7 +195,7 @@ public function testPS512Sign() $signature = $rsa->sign($key, $data); - $this->assertTrue($rsa->verify($key, $data, $signature)); + self::assertTrue($rsa->verify($key, $data, $signature)); } public function testCompleteRS256Sign() @@ -230,14 +230,14 @@ public function testCompleteRS256Sign() $signer->sign($jws); - $this->assertEquals('eyJhbGciOiJSUzI1NiIsImp3ayI6eyJrdHkiOiJSU0EiLCJuIjoidHBTMVptZlZLVlA1S29mSWhNQlAwdFNXYzRxbGg2Zm0ybHJaU2t1S3hVakVhV2p6WlN6czcyZ0VJR3hyYVd1c01kb1J1VjU0eHNXUnlmNUtlWlQwUy1JNVBybGUzSWRpM2dJQ2lPNE53dk1rNkp3U0JjSld3bVNMRkVLeVVTbkIyQ3RmaUdjMF81clFDcGNFdF9EbjVpTS1CTm43ZnFwb0xJYmtzOHJYS1VJajgtcU1WcWtUWHNFS2VLaW5FMjN0MXlrTWxkc05hYU9ILWh2R3RpNUp0MkRNbkgxSmpvWGREWGZ4dlNQXzBnalVZYjBla3R1ZFlGWG9BNndla21ReUplSW12Z3g0TXl6MUk0aUh0a1lfQ3A3SjRNbjFlalo2SE5teXZvVEVfNE91WTF1Q2VZdjRVeVhGYzFzMXVVeVl0ajR6NTdxc0hHc1M0ZFEzQTJNSnN3IiwiZSI6IkFRQUIifX0.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.QyRlOCcNBMvCEkJRCQA71y2bVX690g0A6wsC2YXf9_VxOYK-g9-xy-1KjghVXkDPe1gDvYSYnL9oWs1PaFKV0_-ijvvJQE6_5pheKTfIVN3Qbkzjxsm4qXTeChBI5MKeBR8z8iWLFT4xPO8NkelwbS2tSUCHrejio6lDDlWhsqSUP8NjHJhqCSZuCDGu3fMMA24cZrYev3tQRc7HHjyi3q_17NZri7feBd7w3NEDkJp7wT_ZclJrYoucHIo1ypaDPJtM-W1-W-lAVREka6Xq4Bg60zdSZ83ODRQTP_IwQrv7hrIcbrRwn1Za_ORZPRPQDP0CMgkb7TkWDZnbPsAzlQ', $jws->toCompactJSON(0)); + self::assertEquals('eyJhbGciOiJSUzI1NiIsImp3ayI6eyJrdHkiOiJSU0EiLCJuIjoidHBTMVptZlZLVlA1S29mSWhNQlAwdFNXYzRxbGg2Zm0ybHJaU2t1S3hVakVhV2p6WlN6czcyZ0VJR3hyYVd1c01kb1J1VjU0eHNXUnlmNUtlWlQwUy1JNVBybGUzSWRpM2dJQ2lPNE53dk1rNkp3U0JjSld3bVNMRkVLeVVTbkIyQ3RmaUdjMF81clFDcGNFdF9EbjVpTS1CTm43ZnFwb0xJYmtzOHJYS1VJajgtcU1WcWtUWHNFS2VLaW5FMjN0MXlrTWxkc05hYU9ILWh2R3RpNUp0MkRNbkgxSmpvWGREWGZ4dlNQXzBnalVZYjBla3R1ZFlGWG9BNndla21ReUplSW12Z3g0TXl6MUk0aUh0a1lfQ3A3SjRNbjFlalo2SE5teXZvVEVfNE91WTF1Q2VZdjRVeVhGYzFzMXVVeVl0ajR6NTdxc0hHc1M0ZFEzQTJNSnN3IiwiZSI6IkFRQUIifX0.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.QyRlOCcNBMvCEkJRCQA71y2bVX690g0A6wsC2YXf9_VxOYK-g9-xy-1KjghVXkDPe1gDvYSYnL9oWs1PaFKV0_-ijvvJQE6_5pheKTfIVN3Qbkzjxsm4qXTeChBI5MKeBR8z8iWLFT4xPO8NkelwbS2tSUCHrejio6lDDlWhsqSUP8NjHJhqCSZuCDGu3fMMA24cZrYev3tQRc7HHjyi3q_17NZri7feBd7w3NEDkJp7wT_ZclJrYoucHIo1ypaDPJtM-W1-W-lAVREka6Xq4Bg60zdSZ83ODRQTP_IwQrv7hrIcbrRwn1Za_ORZPRPQDP0CMgkb7TkWDZnbPsAzlQ', $jws->toCompactJSON(0)); $loader = new Loader(); $result = $loader->load($jws->toCompactJSON(0)); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals('Live long and Prosper.', $result->getPayload()); - $this->assertEquals(1, $result->countSignatures()); - $this->assertEquals('RS256', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertEquals('Live long and Prosper.', $result->getPayload()); + self::assertEquals(1, $result->countSignatures()); + self::assertEquals('RS256', $result->getSignature(0)->getProtectedHeader('alg')); } public function testCompleteRS256SignWithDetachedPayload() @@ -272,14 +272,14 @@ public function testCompleteRS256SignWithDetachedPayload() $signer->sign($jws); - $this->assertEquals('eyJhbGciOiJSUzI1NiIsImp3ayI6eyJrdHkiOiJSU0EiLCJuIjoidHBTMVptZlZLVlA1S29mSWhNQlAwdFNXYzRxbGg2Zm0ybHJaU2t1S3hVakVhV2p6WlN6czcyZ0VJR3hyYVd1c01kb1J1VjU0eHNXUnlmNUtlWlQwUy1JNVBybGUzSWRpM2dJQ2lPNE53dk1rNkp3U0JjSld3bVNMRkVLeVVTbkIyQ3RmaUdjMF81clFDcGNFdF9EbjVpTS1CTm43ZnFwb0xJYmtzOHJYS1VJajgtcU1WcWtUWHNFS2VLaW5FMjN0MXlrTWxkc05hYU9ILWh2R3RpNUp0MkRNbkgxSmpvWGREWGZ4dlNQXzBnalVZYjBla3R1ZFlGWG9BNndla21ReUplSW12Z3g0TXl6MUk0aUh0a1lfQ3A3SjRNbjFlalo2SE5teXZvVEVfNE91WTF1Q2VZdjRVeVhGYzFzMXVVeVl0ajR6NTdxc0hHc1M0ZFEzQTJNSnN3IiwiZSI6IkFRQUIifX0..QyRlOCcNBMvCEkJRCQA71y2bVX690g0A6wsC2YXf9_VxOYK-g9-xy-1KjghVXkDPe1gDvYSYnL9oWs1PaFKV0_-ijvvJQE6_5pheKTfIVN3Qbkzjxsm4qXTeChBI5MKeBR8z8iWLFT4xPO8NkelwbS2tSUCHrejio6lDDlWhsqSUP8NjHJhqCSZuCDGu3fMMA24cZrYev3tQRc7HHjyi3q_17NZri7feBd7w3NEDkJp7wT_ZclJrYoucHIo1ypaDPJtM-W1-W-lAVREka6Xq4Bg60zdSZ83ODRQTP_IwQrv7hrIcbrRwn1Za_ORZPRPQDP0CMgkb7TkWDZnbPsAzlQ', $jws->toCompactJSON(0)); + self::assertEquals('eyJhbGciOiJSUzI1NiIsImp3ayI6eyJrdHkiOiJSU0EiLCJuIjoidHBTMVptZlZLVlA1S29mSWhNQlAwdFNXYzRxbGg2Zm0ybHJaU2t1S3hVakVhV2p6WlN6czcyZ0VJR3hyYVd1c01kb1J1VjU0eHNXUnlmNUtlWlQwUy1JNVBybGUzSWRpM2dJQ2lPNE53dk1rNkp3U0JjSld3bVNMRkVLeVVTbkIyQ3RmaUdjMF81clFDcGNFdF9EbjVpTS1CTm43ZnFwb0xJYmtzOHJYS1VJajgtcU1WcWtUWHNFS2VLaW5FMjN0MXlrTWxkc05hYU9ILWh2R3RpNUp0MkRNbkgxSmpvWGREWGZ4dlNQXzBnalVZYjBla3R1ZFlGWG9BNndla21ReUplSW12Z3g0TXl6MUk0aUh0a1lfQ3A3SjRNbjFlalo2SE5teXZvVEVfNE91WTF1Q2VZdjRVeVhGYzFzMXVVeVl0ajR6NTdxc0hHc1M0ZFEzQTJNSnN3IiwiZSI6IkFRQUIifX0..QyRlOCcNBMvCEkJRCQA71y2bVX690g0A6wsC2YXf9_VxOYK-g9-xy-1KjghVXkDPe1gDvYSYnL9oWs1PaFKV0_-ijvvJQE6_5pheKTfIVN3Qbkzjxsm4qXTeChBI5MKeBR8z8iWLFT4xPO8NkelwbS2tSUCHrejio6lDDlWhsqSUP8NjHJhqCSZuCDGu3fMMA24cZrYev3tQRc7HHjyi3q_17NZri7feBd7w3NEDkJp7wT_ZclJrYoucHIo1ypaDPJtM-W1-W-lAVREka6Xq4Bg60zdSZ83ODRQTP_IwQrv7hrIcbrRwn1Za_ORZPRPQDP0CMgkb7TkWDZnbPsAzlQ', $jws->toCompactJSON(0)); $loader = new Loader(); $result = $loader->load($jws->toCompactJSON(0)); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertNull($result->getPayload()); - $this->assertEquals(1, $result->countSignatures()); - $this->assertEquals('RS256', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertNull($result->getPayload()); + self::assertEquals(1, $result->countSignatures()); + self::assertEquals('RS256', $result->getSignature(0)->getProtectedHeader('alg')); } public function testCompleteRS384Sign() @@ -314,14 +314,14 @@ public function testCompleteRS384Sign() $signer->sign($jws); - $this->assertEquals('eyJhbGciOiJSUzM4NCIsImp3ayI6eyJrdHkiOiJSU0EiLCJuIjoidHBTMVptZlZLVlA1S29mSWhNQlAwdFNXYzRxbGg2Zm0ybHJaU2t1S3hVakVhV2p6WlN6czcyZ0VJR3hyYVd1c01kb1J1VjU0eHNXUnlmNUtlWlQwUy1JNVBybGUzSWRpM2dJQ2lPNE53dk1rNkp3U0JjSld3bVNMRkVLeVVTbkIyQ3RmaUdjMF81clFDcGNFdF9EbjVpTS1CTm43ZnFwb0xJYmtzOHJYS1VJajgtcU1WcWtUWHNFS2VLaW5FMjN0MXlrTWxkc05hYU9ILWh2R3RpNUp0MkRNbkgxSmpvWGREWGZ4dlNQXzBnalVZYjBla3R1ZFlGWG9BNndla21ReUplSW12Z3g0TXl6MUk0aUh0a1lfQ3A3SjRNbjFlalo2SE5teXZvVEVfNE91WTF1Q2VZdjRVeVhGYzFzMXVVeVl0ajR6NTdxc0hHc1M0ZFEzQTJNSnN3IiwiZSI6IkFRQUIifX0.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.gsBhyBOEDPpHBR8OM2Xb5tybKGeijREZN-smEkvI2188pytujFevbDQJ10afbcdjh5LNKO7U_VD3hGPrC7MIkdtJw4c2d0JnVyhiZT5sFnncnCFjll-Y9GkK7a7jWJJTgF_5LmVEeJSFEEgwT1Stxb-TtZCGqc5ExYizLiuQ2IGB6Sq-hTkpWAXJfmHchE_TxV9A4iLWCMTVM6LsLV6NzDtf2a0iu9XvN1MEdzqM7FNdqNCGN43FveTA0hX8OoFfB2ZjYAjbixUCT4VVI2PuuRyu_Lr8cA73eisolBQLQemPyrCo1s560v2tKD7ICS8Teo1PCJ4HnCuO8bvufI2dKA', $jws->toCompactJSON(0)); + self::assertEquals('eyJhbGciOiJSUzM4NCIsImp3ayI6eyJrdHkiOiJSU0EiLCJuIjoidHBTMVptZlZLVlA1S29mSWhNQlAwdFNXYzRxbGg2Zm0ybHJaU2t1S3hVakVhV2p6WlN6czcyZ0VJR3hyYVd1c01kb1J1VjU0eHNXUnlmNUtlWlQwUy1JNVBybGUzSWRpM2dJQ2lPNE53dk1rNkp3U0JjSld3bVNMRkVLeVVTbkIyQ3RmaUdjMF81clFDcGNFdF9EbjVpTS1CTm43ZnFwb0xJYmtzOHJYS1VJajgtcU1WcWtUWHNFS2VLaW5FMjN0MXlrTWxkc05hYU9ILWh2R3RpNUp0MkRNbkgxSmpvWGREWGZ4dlNQXzBnalVZYjBla3R1ZFlGWG9BNndla21ReUplSW12Z3g0TXl6MUk0aUh0a1lfQ3A3SjRNbjFlalo2SE5teXZvVEVfNE91WTF1Q2VZdjRVeVhGYzFzMXVVeVl0ajR6NTdxc0hHc1M0ZFEzQTJNSnN3IiwiZSI6IkFRQUIifX0.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.gsBhyBOEDPpHBR8OM2Xb5tybKGeijREZN-smEkvI2188pytujFevbDQJ10afbcdjh5LNKO7U_VD3hGPrC7MIkdtJw4c2d0JnVyhiZT5sFnncnCFjll-Y9GkK7a7jWJJTgF_5LmVEeJSFEEgwT1Stxb-TtZCGqc5ExYizLiuQ2IGB6Sq-hTkpWAXJfmHchE_TxV9A4iLWCMTVM6LsLV6NzDtf2a0iu9XvN1MEdzqM7FNdqNCGN43FveTA0hX8OoFfB2ZjYAjbixUCT4VVI2PuuRyu_Lr8cA73eisolBQLQemPyrCo1s560v2tKD7ICS8Teo1PCJ4HnCuO8bvufI2dKA', $jws->toCompactJSON(0)); $loader = new Loader(); $result = $loader->load($jws->toCompactJSON(0)); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals('Live long and Prosper.', $result->getPayload()); - $this->assertEquals(1, $result->countSignatures()); - $this->assertEquals('RS384', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertEquals('Live long and Prosper.', $result->getPayload()); + self::assertEquals(1, $result->countSignatures()); + self::assertEquals('RS384', $result->getSignature(0)->getProtectedHeader('alg')); } public function testCompleteRS512Sign() @@ -356,15 +356,15 @@ public function testCompleteRS512Sign() $signer->sign($jws); - $this->assertEquals('eyJhbGciOiJSUzUxMiIsImp3ayI6eyJrdHkiOiJSU0EiLCJuIjoidHBTMVptZlZLVlA1S29mSWhNQlAwdFNXYzRxbGg2Zm0ybHJaU2t1S3hVakVhV2p6WlN6czcyZ0VJR3hyYVd1c01kb1J1VjU0eHNXUnlmNUtlWlQwUy1JNVBybGUzSWRpM2dJQ2lPNE53dk1rNkp3U0JjSld3bVNMRkVLeVVTbkIyQ3RmaUdjMF81clFDcGNFdF9EbjVpTS1CTm43ZnFwb0xJYmtzOHJYS1VJajgtcU1WcWtUWHNFS2VLaW5FMjN0MXlrTWxkc05hYU9ILWh2R3RpNUp0MkRNbkgxSmpvWGREWGZ4dlNQXzBnalVZYjBla3R1ZFlGWG9BNndla21ReUplSW12Z3g0TXl6MUk0aUh0a1lfQ3A3SjRNbjFlalo2SE5teXZvVEVfNE91WTF1Q2VZdjRVeVhGYzFzMXVVeVl0ajR6NTdxc0hHc1M0ZFEzQTJNSnN3IiwiZSI6IkFRQUIifX0.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.OMttEbx9fWoJl4gJwp8m249P87nNENhy5RzH84S1iR8b-upQNy8dqHoIVsQ6qINDjDL5YTl4UWvChIr5AO433LjNUimIeEp2cfiqrszTTwhv-EF3Lp3Ft9NmTb-3ZWvDo1WwwUrD0qro7bynaz5O06DxQfTROcrC6hNX05y6nW_-21exs2_w2OoOWA0Ebx9ev1ayZJh1AQ6q18Ajb0Gk1RST1PFjz0Sk_YiUIYRSVJzgv2Lf7R_Lyi5A5OkIfLOyJmKBi6m0FOLoynq_fT96wCbf5Nkhx-RiuFEcefGhgDav7Wfim3zA3ZAHeNWe58BZOf-8v1kXsV-yd6zQlVa8iw', $jws->toCompactJSON(0)); + self::assertEquals('eyJhbGciOiJSUzUxMiIsImp3ayI6eyJrdHkiOiJSU0EiLCJuIjoidHBTMVptZlZLVlA1S29mSWhNQlAwdFNXYzRxbGg2Zm0ybHJaU2t1S3hVakVhV2p6WlN6czcyZ0VJR3hyYVd1c01kb1J1VjU0eHNXUnlmNUtlWlQwUy1JNVBybGUzSWRpM2dJQ2lPNE53dk1rNkp3U0JjSld3bVNMRkVLeVVTbkIyQ3RmaUdjMF81clFDcGNFdF9EbjVpTS1CTm43ZnFwb0xJYmtzOHJYS1VJajgtcU1WcWtUWHNFS2VLaW5FMjN0MXlrTWxkc05hYU9ILWh2R3RpNUp0MkRNbkgxSmpvWGREWGZ4dlNQXzBnalVZYjBla3R1ZFlGWG9BNndla21ReUplSW12Z3g0TXl6MUk0aUh0a1lfQ3A3SjRNbjFlalo2SE5teXZvVEVfNE91WTF1Q2VZdjRVeVhGYzFzMXVVeVl0ajR6NTdxc0hHc1M0ZFEzQTJNSnN3IiwiZSI6IkFRQUIifX0.TGl2ZSBsb25nIGFuZCBQcm9zcGVyLg.OMttEbx9fWoJl4gJwp8m249P87nNENhy5RzH84S1iR8b-upQNy8dqHoIVsQ6qINDjDL5YTl4UWvChIr5AO433LjNUimIeEp2cfiqrszTTwhv-EF3Lp3Ft9NmTb-3ZWvDo1WwwUrD0qro7bynaz5O06DxQfTROcrC6hNX05y6nW_-21exs2_w2OoOWA0Ebx9ev1ayZJh1AQ6q18Ajb0Gk1RST1PFjz0Sk_YiUIYRSVJzgv2Lf7R_Lyi5A5OkIfLOyJmKBi6m0FOLoynq_fT96wCbf5Nkhx-RiuFEcefGhgDav7Wfim3zA3ZAHeNWe58BZOf-8v1kXsV-yd6zQlVa8iw', $jws->toCompactJSON(0)); $loader = new Loader(); $result = $loader->load($jws->toCompactJSON(0)); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals('Live long and Prosper.', $result->getPayload()); - $this->assertEquals(1, $result->countSignatures()); - $this->assertEquals('RS512', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertEquals('Live long and Prosper.', $result->getPayload()); + self::assertEquals(1, $result->countSignatures()); + self::assertEquals('RS512', $result->getSignature(0)->getProtectedHeader('alg')); } public function testCompletePS256Sign() @@ -404,10 +404,10 @@ public function testCompletePS256Sign() $loader = new Loader(); $result = $loader->load($jws->toCompactJSON(0)); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals('Live long and Prosper.', $result->getPayload()); - $this->assertEquals(1, $result->countSignatures()); - $this->assertEquals('PS256', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertEquals('Live long and Prosper.', $result->getPayload()); + self::assertEquals(1, $result->countSignatures()); + self::assertEquals('PS256', $result->getSignature(0)->getProtectedHeader('alg')); } public function testCompletePS384Sign() @@ -445,10 +445,10 @@ public function testCompletePS384Sign() $loader = new Loader(); $result = $loader->load($jws->toCompactJSON(0)); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals('Live long and Prosper.', $result->getPayload()); - $this->assertEquals(1, $result->countSignatures()); - $this->assertEquals('PS384', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertEquals('Live long and Prosper.', $result->getPayload()); + self::assertEquals(1, $result->countSignatures()); + self::assertEquals('PS384', $result->getSignature(0)->getProtectedHeader('alg')); } public function testCompletePS512Sign() @@ -486,10 +486,10 @@ public function testCompletePS512Sign() $loader = new Loader(); $result = $loader->load($jws->toCompactJSON(0)); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals('Live long and Prosper.', $result->getPayload()); - $this->assertEquals(1, $result->countSignatures()); - $this->assertEquals('PS512', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertEquals('Live long and Prosper.', $result->getPayload()); + self::assertEquals(1, $result->countSignatures()); + self::assertEquals('PS512', $result->getSignature(0)->getProtectedHeader('alg')); } /** @@ -502,15 +502,15 @@ public function testLoadJWEFromRFC7516() $loader = new Loader(); $loaded = $loader->load('eyJhbGciOiJSU0ExXzUiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0.UGhIOguC7IuEvf_NPVaXsGMoLOmwvc1GyqlIKOK1nN94nHPoltGRhWhw7Zx0-kFm1NJn8LE9XShH59_i8J0PH5ZZyNfGy2xGdULU7sHNF6Gp2vPLgNZ__deLKxGHZ7PcHALUzoOegEI-8E66jX2E4zyJKx-YxzZIItRzC5hlRirb6Y5Cl_p-ko3YvkkysZIFNPccxRU7qve1WYPxqbb2Yw8kZqa2rMWI5ng8OtvzlV7elprCbuPhcCdZ6XDP0_F8rkXds2vE4X-ncOIM8hAYHHi29NX0mcKiRaD0-D-ljQTP-cFPgwCp6X-nZZd9OHBv-B3oWh2TbqmScqXMR4gp_A.AxY8DCtDaGlsbGljb3RoZQ.KDlTtXchhZTGufMYmOYGS4HffxPSUrfmqCHXaI9wOGY.9hH0vgRfYgPnAHOd8stkvw'); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('RSA1_5', $loaded->getSharedProtectedHeader('alg')); - $this->assertEquals('A128CBC-HS256', $loaded->getSharedProtectedHeader('enc')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('RSA1_5', $loaded->getSharedProtectedHeader('alg')); + self::assertEquals('A128CBC-HS256', $loaded->getSharedProtectedHeader('enc')); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getPrivateKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertEquals('Live long and prosper.', $loaded->getPayload()); + self::assertEquals(0, $index); + self::assertEquals('Live long and prosper.', $loaded->getPayload()); } /** @@ -523,18 +523,18 @@ public function testLoadJWEJSONSerialization() $loader = new Loader(); $loaded = $loader->load('{"protected":"eyJlbmMiOiJBMTI4Q0JDLUhTMjU2In0","unprotected":{"jku":"https://server.example.com/keys.jwks"},"recipients":[{"header":{"alg":"RSA1_5","kid":"2011-04-29"},"encrypted_key":"UGhIOguC7IuEvf_NPVaXsGMoLOmwvc1GyqlIKOK1nN94nHPoltGRhWhw7Zx0-kFm1NJn8LE9XShH59_i8J0PH5ZZyNfGy2xGdULU7sHNF6Gp2vPLgNZ__deLKxGHZ7PcHALUzoOegEI-8E66jX2E4zyJKx-YxzZIItRzC5hlRirb6Y5Cl_p-ko3YvkkysZIFNPccxRU7qve1WYPxqbb2Yw8kZqa2rMWI5ng8OtvzlV7elprCbuPhcCdZ6XDP0_F8rkXds2vE4X-ncOIM8hAYHHi29NX0mcKiRaD0-D-ljQTP-cFPgwCp6X-nZZd9OHBv-B3oWh2TbqmScqXMR4gp_A"},{"header":{"alg":"A128KW","kid":"7"},"encrypted_key":"6KB707dM9YTIgHtLvtgWQ8mKwboJW3of9locizkDTHzBC2IlrT1oOQ"}],"iv":"AxY8DCtDaGlsbGljb3RoZQ","ciphertext":"KDlTtXchhZTGufMYmOYGS4HffxPSUrfmqCHXaI9wOGY","tag":"Mz-VPPyU4RlcuYv1IwIvzw"}'); - $this->assertEquals(2, $loaded->countRecipients()); + self::assertEquals(2, $loaded->countRecipients()); - $this->assertInstanceOf(JWEInterface::class, $loaded); - $this->assertEquals('A128CBC-HS256', $loaded->getSharedProtectedHeader('enc')); - $this->assertEquals('RSA1_5', $loaded->getRecipient(0)->getHeader('alg')); - $this->assertEquals('A128KW', $loaded->getRecipient(1)->getHeader('alg')); - $this->assertNull($loaded->getPayload()); + self::assertInstanceOf(JWEInterface::class, $loaded); + self::assertEquals('A128CBC-HS256', $loaded->getSharedProtectedHeader('enc')); + self::assertEquals('RSA1_5', $loaded->getRecipient(0)->getHeader('alg')); + self::assertEquals('A128KW', $loaded->getRecipient(1)->getHeader('alg')); + self::assertNull($loaded->getPayload()); $decrypter->decryptUsingKeySet($loaded, $this->getPrivateKeySet(), $index); - $this->assertEquals(0, $index); - $this->assertEquals('Live long and prosper.', $loaded->getPayload()); + self::assertEquals(0, $index); + self::assertEquals('Live long and prosper.', $loaded->getPayload()); } /** @@ -545,15 +545,15 @@ public function testLoadJWSJSONSerialization() $loader = new Loader(); $result = $loader->load('{"payload":"eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ","signatures":[{"protected":"eyJhbGciOiJSUzI1NiJ9","header":{"kid":"2010-12-29"},"signature":"cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6LbgGY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw"},{"protected":"eyJhbGciOiJFUzI1NiJ9","header":{"kid":"e9bc097a-ce51-4036-9562-d2ade882db0d"},"signature":"DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q"}]}'); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals(['iss' => 'joe', 'exp' => 1300819380, 'http://example.com/is_root' => true], $result->getPayload()); - $this->assertEquals(2, $result->countSignatures()); - $this->assertEquals('RS256', $result->getSignature(0)->getProtectedHeader('alg')); - $this->assertEquals('ES256', $result->getSignature(1)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertEquals(['iss' => 'joe', 'exp' => 1300819380, 'http://example.com/is_root' => true], $result->getPayload()); + self::assertEquals(2, $result->countSignatures()); + self::assertEquals('RS256', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertEquals('ES256', $result->getSignature(1)->getProtectedHeader('alg')); - $this->assertTrue($result->hasClaims()); - $this->assertTrue($result->hasClaim('iss')); - $this->assertEquals('joe', $result->getClaim('iss')); + self::assertTrue($result->hasClaims()); + self::assertTrue($result->hasClaim('iss')); + self::assertEquals('joe', $result->getClaim('iss')); } /** @@ -566,10 +566,10 @@ public function testLoadJWSJSONSerializationWithDetachedPayload() $loader = new Loader(); $result = $loader->load('{"signatures":[{"protected":"eyJhbGciOiJSUzI1NiJ9","header":{"kid":"2010-12-29"},"signature":"cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6LbgGY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw"},{"protected":"eyJhbGciOiJFUzI1NiJ9","header":{"kid":"e9bc097a-ce51-4036-9562-d2ade882db0d"},"signature":"DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q"}]}'); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals(2, $result->countSignatures()); - $this->assertEquals('RS256', $result->getSignature(0)->getProtectedHeader('alg')); - $this->assertEquals('ES256', $result->getSignature(1)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertEquals(2, $result->countSignatures()); + self::assertEquals('RS256', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertEquals('ES256', $result->getSignature(1)->getProtectedHeader('alg')); $verifier->verifyWithKeySet($result, $this->getPrivateKeySet(), Base64Url::decode('eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ')); } @@ -584,9 +584,9 @@ public function testLoadJWSJSONSerializationWithDetachedPayloadAndPayloadInJWS() $loader = new Loader(); $result = $loader->load('{"payload":"eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ","signatures":[{"protected":"eyJhbGciOiJSUzI1NiJ9","header":{"kid":"2010-12-29"},"signature":"cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6LbgGY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw"},{"protected":"eyJhbGciOiJFUzI1NiJ9","header":{"kid":"e9bc097a-ce51-4036-9562-d2ade882db0d"},"signature":"DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q"}]}'); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals(2, $result->countSignatures()); - $this->assertEquals('RS256', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertEquals(2, $result->countSignatures()); + self::assertEquals('RS256', $result->getSignature(0)->getProtectedHeader('alg')); $verifier->verifyWithKeySet($result, $this->getPrivateKeySet(), 'eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ'); } @@ -619,10 +619,10 @@ public function testLoadIETFExample1() $loader = new Loader(); $result = $loader->load('eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk'); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals(['iss' => 'joe', 'exp' => 1300819380, 'http://example.com/is_root' => true], $result->getPayload()); - $this->assertEquals(1, $result->countSignatures()); - $this->assertEquals('HS256', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertEquals(['iss' => 'joe', 'exp' => 1300819380, 'http://example.com/is_root' => true], $result->getPayload()); + self::assertEquals(1, $result->countSignatures()); + self::assertEquals('HS256', $result->getSignature(0)->getProtectedHeader('alg')); } /** @@ -633,10 +633,10 @@ public function testLoadIETFExample2() $loader = new Loader(); $result = $loader->load('eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6LbgGY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw'); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals(['iss' => 'joe', 'exp' => 1300819380, 'http://example.com/is_root' => true], $result->getPayload()); - $this->assertEquals(1, $result->countSignatures()); - $this->assertEquals('RS256', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertEquals(['iss' => 'joe', 'exp' => 1300819380, 'http://example.com/is_root' => true], $result->getPayload()); + self::assertEquals(1, $result->countSignatures()); + self::assertEquals('RS256', $result->getSignature(0)->getProtectedHeader('alg')); } /** @@ -647,10 +647,10 @@ public function testLoadIETFExample3() $loader = new Loader(); $result = $loader->load('eyJhbGciOiJFUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q'); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals(['iss' => 'joe', 'exp' => 1300819380, 'http://example.com/is_root' => true], $result->getPayload()); - $this->assertEquals(1, $result->countSignatures()); - $this->assertEquals('ES256', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertEquals(['iss' => 'joe', 'exp' => 1300819380, 'http://example.com/is_root' => true], $result->getPayload()); + self::assertEquals(1, $result->countSignatures()); + self::assertEquals('ES256', $result->getSignature(0)->getProtectedHeader('alg')); } /** @@ -661,16 +661,16 @@ public function testLoadIETFExample4() $loader = new Loader(); $result = $loader->load('eyJhbGciOiJFUzUxMiJ9.UGF5bG9hZA.AdwMgeerwtHoh-l192l60hp9wAHZFVJbLfD_UxMi70cwnZOYaRI1bKPWROc-mZZqwqT2SI-KGDKB34XO0aw_7XdtAG8GaSwFKdCAPZgoXD2YBJZCPEX3xKpRwcdOO8KpEHwJjyqOgzDO7iKvU8vcnwNrmxYbSW9ERBXukOXolLzeO_Jn'); - $this->assertInstanceOf(JWSInterface::class, $result); - $this->assertEquals('Payload', $result->getPayload()); - $this->assertEquals(1, $result->countSignatures()); - $this->assertEquals('ES512', $result->getSignature(0)->getProtectedHeader('alg')); + self::assertInstanceOf(JWSInterface::class, $result); + self::assertEquals('Payload', $result->getPayload()); + self::assertEquals(1, $result->countSignatures()); + self::assertEquals('ES512', $result->getSignature(0)->getProtectedHeader('alg')); } public function testCertificateConversion() { $details = KeyConverter::loadFromKeyFile('file://'.__DIR__.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'Keys'.DIRECTORY_SEPARATOR.'RSA'.DIRECTORY_SEPARATOR.'private.encrypted.key', 'tests'); - $this->assertEquals($details, [ + self::assertEquals($details, [ 'kty' => 'RSA', 'n' => 'tpS1ZmfVKVP5KofIhMBP0tSWc4qlh6fm2lrZSkuKxUjEaWjzZSzs72gEIGxraWusMdoRuV54xsWRyf5KeZT0S-I5Prle3Idi3gICiO4NwvMk6JwSBcJWwmSLFEKyUSnB2CtfiGc0_5rQCpcEt_Dn5iM-BNn7fqpoLIbks8rXKUIj8-qMVqkTXsEKeKinE23t1ykMldsNaaOH-hvGti5Jt2DMnH1JjoXdDXfxvSP_0gjUYb0ektudYFXoA6wekmQyJeImvgx4Myz1I4iHtkY_Cp7J4Mn1ejZ6HNmyvoTE_4OuY1uCeYv4UyXFc1s1uUyYtj4z57qsHGsS4dQ3A2MJsw', 'e' => 'AQAB', @@ -683,7 +683,7 @@ public function testCertificateConversion() ]); $details = KeyConverter::loadFromKeyFile('file://'.__DIR__.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'Keys'.DIRECTORY_SEPARATOR.'RSA'.DIRECTORY_SEPARATOR.'public.key'); - $this->assertEquals($details, [ + self::assertEquals($details, [ 'kty' => 'RSA', 'n' => 'tpS1ZmfVKVP5KofIhMBP0tSWc4qlh6fm2lrZSkuKxUjEaWjzZSzs72gEIGxraWusMdoRuV54xsWRyf5KeZT0S-I5Prle3Idi3gICiO4NwvMk6JwSBcJWwmSLFEKyUSnB2CtfiGc0_5rQCpcEt_Dn5iM-BNn7fqpoLIbks8rXKUIj8-qMVqkTXsEKeKinE23t1ykMldsNaaOH-hvGti5Jt2DMnH1JjoXdDXfxvSP_0gjUYb0ektudYFXoA6wekmQyJeImvgx4Myz1I4iHtkY_Cp7J4Mn1ejZ6HNmyvoTE_4OuY1uCeYv4UyXFc1s1uUyYtj4z57qsHGsS4dQ3A2MJsw', 'e' => 'AQAB', diff --git a/tests/Unit/Certificates/CertificateTest.php b/tests/Unit/Certificates/CertificateTest.php index 74d856cb..ae4eafe1 100644 --- a/tests/Unit/Certificates/CertificateTest.php +++ b/tests/Unit/Certificates/CertificateTest.php @@ -21,7 +21,7 @@ * @group Certificate * @group Unit */ -class CertificateTest extends \PHPUnit_Framework_TestCase +class CertificateTest extends \Jose\Test\BaseTestCase { /** * @expectedException \InvalidArgumentException @@ -47,7 +47,7 @@ public function testLoadCertificate($file, array $expected_values) { $result = KeyConverter::loadKeyFromCertificateFile($file); - $this->assertEquals($expected_values, $result); + self::assertEquals($expected_values, $result); } public function dataLoadCertificate() @@ -247,7 +247,7 @@ public function testLoadX5CParameter() $certificate = \Jose\Factory\JWKFactory::createFromX5C($key->get('x5c'), ['use' => 'sig', 'kid' => '1b94c']); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'use' => 'sig', 'kid' => '1b94c', diff --git a/tests/Unit/Compression/CompressionTest.php b/tests/Unit/Compression/CompressionTest.php index b25a0355..cdafda08 100644 --- a/tests/Unit/Compression/CompressionTest.php +++ b/tests/Unit/Compression/CompressionTest.php @@ -20,7 +20,7 @@ * * @group Unit */ -class CompressionTest extends \PHPUnit_Framework_TestCase +class CompressionTest extends \Jose\Test\BaseTestCase { public function testGetValidCompressionAlgorithm() { @@ -30,7 +30,7 @@ public function testGetValidCompressionAlgorithm() $manager->addCompressionAlgorithm(new ZLib()); $compression = $manager->getCompressionAlgorithm('DEF'); - $this->assertInstanceOf(CompressionInterface::class, $compression); + self::assertInstanceOf(CompressionInterface::class, $compression); } public function testGetInvalidCompressionAlgorithm() @@ -41,7 +41,7 @@ public function testGetInvalidCompressionAlgorithm() $manager->addCompressionAlgorithm(new ZLib()); $compression = $manager->getCompressionAlgorithm('FOO'); - $this->assertNull($compression); + self::assertNull($compression); } public function testDeflate() @@ -51,8 +51,8 @@ public function testDeflate() $data = 'Live long and Prosper.'; $compressed = $compression->compress($data); $uncompressed = $compression->uncompress($compressed); - $this->assertNotNull($compressed); - $this->assertSame($data, $uncompressed); + self::assertNotNull($compressed); + self::assertSame($data, $uncompressed); } public function testGZip() @@ -62,8 +62,8 @@ public function testGZip() $data = 'Live long and Prosper.'; $compressed = $compression->compress($data); $uncompressed = $compression->uncompress($compressed); - $this->assertNotNull($compressed); - $this->assertSame($data, $uncompressed); + self::assertNotNull($compressed); + self::assertSame($data, $uncompressed); } public function testZLib() @@ -73,8 +73,8 @@ public function testZLib() $data = 'Live long and Prosper.'; $compressed = $compression->compress($data); $uncompressed = $compression->uncompress($compressed); - $this->assertNotNull($compressed); - $this->assertSame($data, $uncompressed); + self::assertNotNull($compressed); + self::assertSame($data, $uncompressed); } /** diff --git a/tests/Unit/Keys/ECKeysTest.php b/tests/Unit/Keys/ECKeysBaseTest.php similarity index 83% rename from tests/Unit/Keys/ECKeysTest.php rename to tests/Unit/Keys/ECKeysBaseTest.php index 48757d5d..a385598e 100644 --- a/tests/Unit/Keys/ECKeysTest.php +++ b/tests/Unit/Keys/ECKeysBaseTest.php @@ -11,13 +11,13 @@ use Jose\KeyConverter\ECKey; use Jose\KeyConverter\KeyConverter; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; /** * @group ECKeys * @group Unit */ -class ECKeysTest extends TestCase +class ECKeysBaseTest extends BaseTestCase { /** * @expectedException \InvalidArgumentException @@ -37,7 +37,7 @@ public function testLoadPrivateEC256KeyGenerateByAPN() { $pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'private.es256.from.APN.key'); $details = KeyConverter::loadFromKey($pem); - $this->assertEquals($details, [ + self::assertEquals($details, [ 'kty' => 'EC', 'crv' => 'P-256', 'd' => '13n3isfsEktzl-CtH5ECpRrKk-40prVuCbldkP77gak', @@ -50,7 +50,7 @@ public function testLoadPublicEC256Key() { $pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'public.es256.key'); $details = KeyConverter::loadFromKey($pem); - $this->assertEquals($details, [ + self::assertEquals($details, [ 'kty' => 'EC', 'crv' => 'P-256', 'x' => 'vuYsP-QnrqAbM7Iyhzjt08hFSuzapyojCB_gFsBt65U', @@ -59,7 +59,7 @@ public function testLoadPublicEC256Key() $ec_key = new ECKey($details); - $this->assertEquals(str_replace("\r\n", PHP_EOL, $pem), $ec_key->toPEM()); + self::assertEquals(str_replace("\r\n", PHP_EOL, $pem), $ec_key->toPEM()); } public function testLoadPrivateEC256Key() @@ -67,7 +67,7 @@ public function testLoadPrivateEC256Key() $private_pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'private.es256.key'); $public_pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'public.es256.key'); $details = KeyConverter::loadFromKey($private_pem); - $this->assertEquals($details, [ + self::assertEquals($details, [ 'kty' => 'EC', 'crv' => 'P-256', 'd' => 'q_VkzNnxTG39jHB0qkwA_SeVXud7yCHT7kb7kZv-0xQ', @@ -77,8 +77,8 @@ public function testLoadPrivateEC256Key() $ec_key = new ECKey($details); - $this->assertEquals(str_replace("\r\n", PHP_EOL, $private_pem), $ec_key->toPEM()); - $this->assertEquals(str_replace("\r\n", PHP_EOL, $public_pem), ECKey::toPublic($ec_key)->toPEM()); + self::assertEquals(str_replace("\r\n", PHP_EOL, $private_pem), $ec_key->toPEM()); + self::assertEquals(str_replace("\r\n", PHP_EOL, $public_pem), ECKey::toPublic($ec_key)->toPEM()); } public function testLoadEncryptedPrivateEC256Key() @@ -86,7 +86,7 @@ public function testLoadEncryptedPrivateEC256Key() $private_pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'private.es256.encrypted.key'); $public_pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'public.es256.key'); $details = KeyConverter::loadFromKey($private_pem, 'test'); - $this->assertEquals($details, [ + self::assertEquals($details, [ 'kty' => 'EC', 'crv' => 'P-256', 'd' => 'q_VkzNnxTG39jHB0qkwA_SeVXud7yCHT7kb7kZv-0xQ', @@ -95,7 +95,7 @@ public function testLoadEncryptedPrivateEC256Key() ]); $ec_key = new ECKey($details); - $this->assertEquals(str_replace("\r\n", PHP_EOL, $public_pem), ECKey::toPublic($ec_key)->toPEM()); + self::assertEquals(str_replace("\r\n", PHP_EOL, $public_pem), ECKey::toPublic($ec_key)->toPEM()); } /** @@ -111,7 +111,7 @@ public function testLoadPublicEC384Key() { $pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'public.es384.key'); $details = KeyConverter::loadFromKey($pem); - $this->assertEquals($details, [ + self::assertEquals($details, [ 'kty' => 'EC', 'crv' => 'P-384', 'x' => '6f-XZsg2Tvn0EoEapQ-ylMYNtsm8CPf0cb8HI2EkfY9Bqpt3QMzwlM7mVsFRmaMZ', @@ -120,7 +120,7 @@ public function testLoadPublicEC384Key() $ec_key = new ECKey($details); - $this->assertEquals(str_replace("\r\n", PHP_EOL, $pem), $ec_key->toPEM()); + self::assertEquals(str_replace("\r\n", PHP_EOL, $pem), $ec_key->toPEM()); } public function testLoadPrivateEC384Key() @@ -128,7 +128,7 @@ public function testLoadPrivateEC384Key() $private_pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'private.es384.key'); $public_pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'public.es384.key'); $details = KeyConverter::loadFromKey($private_pem); - $this->assertEquals($details, [ + self::assertEquals($details, [ 'kty' => 'EC', 'crv' => 'P-384', 'd' => 'pcSSXrbeZEOaBIs7IwqcU9M_OOM81XhZuOHoGgmS_2PdECwcdQcXzv7W8-lYL0cr', @@ -138,8 +138,8 @@ public function testLoadPrivateEC384Key() $ec_key = new ECKey($details); - $this->assertEquals(str_replace("\r\n", PHP_EOL, $private_pem), $ec_key->toPEM()); - $this->assertEquals(str_replace("\r\n", PHP_EOL, $public_pem), ECKey::toPublic($ec_key)->toPEM()); + self::assertEquals(str_replace("\r\n", PHP_EOL, $private_pem), $ec_key->toPEM()); + self::assertEquals(str_replace("\r\n", PHP_EOL, $public_pem), ECKey::toPublic($ec_key)->toPEM()); } public function testLoadEncryptedPrivateEC384Key() @@ -147,7 +147,7 @@ public function testLoadEncryptedPrivateEC384Key() $private_pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'private.es384.encrypted.key'); $public_pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'public.es384.key'); $details = KeyConverter::loadFromKey($private_pem, 'test'); - $this->assertEquals($details, [ + self::assertEquals($details, [ 'kty' => 'EC', 'crv' => 'P-384', 'd' => 'pcSSXrbeZEOaBIs7IwqcU9M_OOM81XhZuOHoGgmS_2PdECwcdQcXzv7W8-lYL0cr', @@ -156,14 +156,14 @@ public function testLoadEncryptedPrivateEC384Key() ]); $ec_key = new ECKey($details); - $this->assertEquals(str_replace("\r\n", PHP_EOL, $public_pem), ECKey::toPublic($ec_key)->toPEM()); + self::assertEquals(str_replace("\r\n", PHP_EOL, $public_pem), ECKey::toPublic($ec_key)->toPEM()); } public function testLoadPublicEC512Key() { $pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'public.es512.key'); $details = KeyConverter::loadFromKey($pem); - $this->assertEquals($details, [ + self::assertEquals($details, [ 'kty' => 'EC', 'crv' => 'P-521', 'x' => 'AVpvo7TGpQk5P7ZLo0qkBpaT-fFDv6HQrWElBKMxcrJd_mRNapweATsVv83YON4lTIIRXzgGkmWeqbDr6RQO-1cS', @@ -172,7 +172,7 @@ public function testLoadPublicEC512Key() $ec_key = new ECKey($details); - $this->assertEquals(str_replace("\r\n", PHP_EOL, $pem), $ec_key->toPEM()); + self::assertEquals(str_replace("\r\n", PHP_EOL, $pem), $ec_key->toPEM()); } public function testLoadPrivateEC512Key() @@ -180,7 +180,7 @@ public function testLoadPrivateEC512Key() $private_pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'private.es512.key'); $public_pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'public.es512.key'); $details = KeyConverter::loadFromKey($private_pem); - $this->assertEquals($details, [ + self::assertEquals($details, [ 'kty' => 'EC', 'crv' => 'P-521', 'd' => 'Fp6KFKRiHIdR_7PP2VKxz6OkS_phyoQqwzv2I89-8zP7QScrx5r8GFLcN5mCCNJt3rN3SIgI4XoIQbNePlAj6vE', @@ -190,8 +190,8 @@ public function testLoadPrivateEC512Key() $ec_key = new ECKey($details); - $this->assertEquals(str_replace("\r\n", PHP_EOL, $private_pem), $ec_key->toPEM()); - $this->assertEquals(str_replace("\r\n", PHP_EOL, $public_pem), ECKey::toPublic($ec_key)->toPEM()); + self::assertEquals(str_replace("\r\n", PHP_EOL, $private_pem), $ec_key->toPEM()); + self::assertEquals(str_replace("\r\n", PHP_EOL, $public_pem), ECKey::toPublic($ec_key)->toPEM()); } public function testLoadEncryptedPrivateEC512Key() @@ -199,7 +199,7 @@ public function testLoadEncryptedPrivateEC512Key() $private_pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'private.es512.encrypted.key'); $public_pem = file_get_contents('file://'.__DIR__.DIRECTORY_SEPARATOR.'EC'.DIRECTORY_SEPARATOR.'public.es512.key'); $details = KeyConverter::loadFromKey($private_pem, 'test'); - $this->assertEquals($details, [ + self::assertEquals($details, [ 'kty' => 'EC', 'crv' => 'P-521', 'd' => 'Fp6KFKRiHIdR_7PP2VKxz6OkS_phyoQqwzv2I89-8zP7QScrx5r8GFLcN5mCCNJt3rN3SIgI4XoIQbNePlAj6vE', @@ -209,7 +209,7 @@ public function testLoadEncryptedPrivateEC512Key() $ec_key = new ECKey($details); - $this->assertEquals(str_replace("\r\n", PHP_EOL, $public_pem), ECKey::toPublic($ec_key)->toPEM()); + self::assertEquals(str_replace("\r\n", PHP_EOL, $public_pem), ECKey::toPublic($ec_key)->toPEM()); } public function testConvertPrivateKeyToPublic() @@ -227,7 +227,7 @@ public function testConvertPrivateKeyToPublic() $public_ec_key = ECKey::toPublic($private_ec_key); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'EC', 'kid' => 'Foo', 'crv' => 'P-256', diff --git a/tests/Unit/Keys/NoneKeysBaseTest.php b/tests/Unit/Keys/NoneKeysBaseTest.php new file mode 100644 index 00000000..8989a291 --- /dev/null +++ b/tests/Unit/Keys/NoneKeysBaseTest.php @@ -0,0 +1,67 @@ + 'none', + 'alg' => 'none', + 'use' => 'sig', + 'kid' => '2011-04-29', + ]); + + self::assertEquals('{"kty":"none","alg":"none","use":"sig","kid":"2011-04-29"}', json_encode($key)); + self::assertEquals('BC69Ls25CLRh1KQrXvQAAB22oyuW3eQabDSMdv9xMNk', $key->thumbprint('sha256')); + self::assertEquals('hCnBo6v87V-Gz5Bp7eoFTrdvkGA', $key->thumbprint('sha1')); + self::assertEquals('JI3gujreJtPt2gzxlbGnLQ', $key->thumbprint('md5')); + } + + public function testCreateNoneKey() + { + $key = JWKFactory::createNoneKey(['kid' => 'NONE_KEY']); + + self::assertEquals('none', $key->get('kty')); + self::assertEquals('none', $key->get('alg')); + self::assertEquals('sig', $key->get('use')); + self::assertEquals('NONE_KEY', $key->get('kid')); + + self::assertEquals('BC69Ls25CLRh1KQrXvQAAB22oyuW3eQabDSMdv9xMNk', $key->thumbprint('sha256')); + self::assertEquals('hCnBo6v87V-Gz5Bp7eoFTrdvkGA', $key->thumbprint('sha1')); + self::assertEquals('JI3gujreJtPt2gzxlbGnLQ', $key->thumbprint('md5')); + } + + public function testCreateNoneKey2() + { + $key = JWKFactory::createKey(['kty' => 'none', 'kid' => 'NONE_KEY']); + + self::assertEquals('none', $key->get('kty')); + self::assertEquals('none', $key->get('alg')); + self::assertEquals('sig', $key->get('use')); + self::assertEquals('NONE_KEY', $key->get('kid')); + + self::assertEquals('BC69Ls25CLRh1KQrXvQAAB22oyuW3eQabDSMdv9xMNk', $key->thumbprint('sha256')); + self::assertEquals('hCnBo6v87V-Gz5Bp7eoFTrdvkGA', $key->thumbprint('sha1')); + self::assertEquals('JI3gujreJtPt2gzxlbGnLQ', $key->thumbprint('md5')); + } +} diff --git a/tests/Unit/Keys/NoneKeysTest.php b/tests/Unit/Keys/NoneKeysTest.php deleted file mode 100644 index 8b4c8586..00000000 --- a/tests/Unit/Keys/NoneKeysTest.php +++ /dev/null @@ -1,67 +0,0 @@ - 'none', - 'alg' => 'none', - 'use' => 'sig', - 'kid' => '2011-04-29', - ]); - - $this->assertEquals('{"kty":"none","alg":"none","use":"sig","kid":"2011-04-29"}', json_encode($key)); - $this->assertEquals('BC69Ls25CLRh1KQrXvQAAB22oyuW3eQabDSMdv9xMNk', $key->thumbprint('sha256')); - $this->assertEquals('hCnBo6v87V-Gz5Bp7eoFTrdvkGA', $key->thumbprint('sha1')); - $this->assertEquals('JI3gujreJtPt2gzxlbGnLQ', $key->thumbprint('md5')); - } - - public function testCreateNoneKey() - { - $key = JWKFactory::createNoneKey(['kid' => 'NONE_KEY']); - - $this->assertEquals('none', $key->get('kty')); - $this->assertEquals('none', $key->get('alg')); - $this->assertEquals('sig', $key->get('use')); - $this->assertEquals('NONE_KEY', $key->get('kid')); - - $this->assertEquals('BC69Ls25CLRh1KQrXvQAAB22oyuW3eQabDSMdv9xMNk', $key->thumbprint('sha256')); - $this->assertEquals('hCnBo6v87V-Gz5Bp7eoFTrdvkGA', $key->thumbprint('sha1')); - $this->assertEquals('JI3gujreJtPt2gzxlbGnLQ', $key->thumbprint('md5')); - } - - public function testCreateNoneKey2() - { - $key = JWKFactory::createKey(['kty' => 'none', 'kid' => 'NONE_KEY']); - - $this->assertEquals('none', $key->get('kty')); - $this->assertEquals('none', $key->get('alg')); - $this->assertEquals('sig', $key->get('use')); - $this->assertEquals('NONE_KEY', $key->get('kid')); - - $this->assertEquals('BC69Ls25CLRh1KQrXvQAAB22oyuW3eQabDSMdv9xMNk', $key->thumbprint('sha256')); - $this->assertEquals('hCnBo6v87V-Gz5Bp7eoFTrdvkGA', $key->thumbprint('sha1')); - $this->assertEquals('JI3gujreJtPt2gzxlbGnLQ', $key->thumbprint('md5')); - } -} diff --git a/tests/Unit/Keys/OKPKeysTest.php b/tests/Unit/Keys/OKPKeysBaseTest.php similarity index 67% rename from tests/Unit/Keys/OKPKeysTest.php rename to tests/Unit/Keys/OKPKeysBaseTest.php index b3be7a82..810c12f9 100644 --- a/tests/Unit/Keys/OKPKeysTest.php +++ b/tests/Unit/Keys/OKPKeysBaseTest.php @@ -10,13 +10,13 @@ */ use Jose\Factory\JWKFactory; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; /** * @group OKPKeys * @group Unit */ -class OKPKeysTest extends TestCase +class OKPKeysBaseTest extends BaseTestCase { /** * @expectedException \InvalidArgumentException @@ -42,12 +42,12 @@ public function testCreateOKPKeyWithCurveX25519() ] ); - $this->assertEquals('OKP', $jwk->get('kty')); - $this->assertTrue($jwk->has('x')); - $this->assertTrue($jwk->has('d')); - $this->assertEquals('KEY', $jwk->get('kid')); - $this->assertEquals('ECDH-ES', $jwk->get('alg')); - $this->assertEquals('enc', $jwk->get('use')); + self::assertEquals('OKP', $jwk->get('kty')); + self::assertTrue($jwk->has('x')); + self::assertTrue($jwk->has('d')); + self::assertEquals('KEY', $jwk->get('kid')); + self::assertEquals('ECDH-ES', $jwk->get('alg')); + self::assertEquals('enc', $jwk->get('use')); } public function testCreateOKPKeyWithCurveEd25519() @@ -65,11 +65,11 @@ public function testCreateOKPKeyWithCurveEd25519() ] ); - $this->assertEquals('OKP', $jwk->get('kty')); - $this->assertTrue($jwk->has('x')); - $this->assertTrue($jwk->has('d')); - $this->assertEquals('KEY', $jwk->get('kid')); - $this->assertEquals('EdDSA', $jwk->get('alg')); - $this->assertEquals('sig', $jwk->get('use')); + self::assertEquals('OKP', $jwk->get('kty')); + self::assertTrue($jwk->has('x')); + self::assertTrue($jwk->has('d')); + self::assertEquals('KEY', $jwk->get('kid')); + self::assertEquals('EdDSA', $jwk->get('alg')); + self::assertEquals('sig', $jwk->get('use')); } } diff --git a/tests/Unit/Keys/OctKeysTest.php b/tests/Unit/Keys/OctKeysBaseTest.php similarity index 79% rename from tests/Unit/Keys/OctKeysTest.php rename to tests/Unit/Keys/OctKeysBaseTest.php index 439cc237..58bd2e32 100644 --- a/tests/Unit/Keys/OctKeysTest.php +++ b/tests/Unit/Keys/OctKeysBaseTest.php @@ -10,13 +10,13 @@ */ use Jose\Factory\JWKFactory; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; /** * @group OctKeys * @group Unit */ -class OctKeysTest extends TestCase +class OctKeysBaseTest extends BaseTestCase { /** * @expectedException \InvalidArgumentException @@ -31,7 +31,7 @@ public function testCreateOctKey() { $jwk = JWKFactory::createOctKey(['size' => 64]); - $this->assertEquals('oct', $jwk->get('kty')); - $this->assertTrue($jwk->has('k')); + self::assertEquals('oct', $jwk->get('kty')); + self::assertTrue($jwk->has('k')); } } diff --git a/tests/Unit/Keys/RSAKeysTest.php b/tests/Unit/Keys/RSAKeysBaseTest.php similarity index 91% rename from tests/Unit/Keys/RSAKeysTest.php rename to tests/Unit/Keys/RSAKeysBaseTest.php index 8ae571dd..d60ca9b1 100644 --- a/tests/Unit/Keys/RSAKeysTest.php +++ b/tests/Unit/Keys/RSAKeysBaseTest.php @@ -12,13 +12,13 @@ use Jose\Factory\JWKFactory; use Jose\KeyConverter\RSAKey; use Jose\Object\JWK; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; /** * @group RSAKeys * @group Unit */ -class RSAKeysTest extends TestCase +class RSAKeysBaseTest extends BaseTestCase { /** * @see https://tools.ietf.org/html/rfc7638#section-3.1 @@ -33,7 +33,7 @@ public function testKeyThumbprint() 'kid' => '2011-04-29', ]); - $this->assertEquals('NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs', $key->thumbprint('sha256')); + self::assertEquals('NzbLsXh8uDCcd-6MNwXF4W_7noWXFZAfHkxZsRGC9Xs', $key->thumbprint('sha256')); } /** @@ -82,12 +82,12 @@ public function testLoadPublicRSAKeyFromPEM() $file = 'file://'.__DIR__.DIRECTORY_SEPARATOR.'RSA'.DIRECTORY_SEPARATOR.'public.key'; $rsa_key = new RSAKey($file); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'n' => 'tpS1ZmfVKVP5KofIhMBP0tSWc4qlh6fm2lrZSkuKxUjEaWjzZSzs72gEIGxraWusMdoRuV54xsWRyf5KeZT0S-I5Prle3Idi3gICiO4NwvMk6JwSBcJWwmSLFEKyUSnB2CtfiGc0_5rQCpcEt_Dn5iM-BNn7fqpoLIbks8rXKUIj8-qMVqkTXsEKeKinE23t1ykMldsNaaOH-hvGti5Jt2DMnH1JjoXdDXfxvSP_0gjUYb0ektudYFXoA6wekmQyJeImvgx4Myz1I4iHtkY_Cp7J4Mn1ejZ6HNmyvoTE_4OuY1uCeYv4UyXFc1s1uUyYtj4z57qsHGsS4dQ3A2MJsw', 'e' => 'AQAB', ], $rsa_key->toArray()); - $this->assertFalse($rsa_key->isPrivate()); + self::assertFalse($rsa_key->isPrivate()); } public function testLoadPublicRSAKeyFromJWK() @@ -101,14 +101,14 @@ public function testLoadPublicRSAKeyFromJWK() ]); $rsa_key = new RSAKey($jwk); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'n' => 'tpS1ZmfVKVP5KofIhMBP0tSWc4qlh6fm2lrZSkuKxUjEaWjzZSzs72gEIGxraWusMdoRuV54xsWRyf5KeZT0S-I5Prle3Idi3gICiO4NwvMk6JwSBcJWwmSLFEKyUSnB2CtfiGc0_5rQCpcEt_Dn5iM-BNn7fqpoLIbks8rXKUIj8-qMVqkTXsEKeKinE23t1ykMldsNaaOH-hvGti5Jt2DMnH1JjoXdDXfxvSP_0gjUYb0ektudYFXoA6wekmQyJeImvgx4Myz1I4iHtkY_Cp7J4Mn1ejZ6HNmyvoTE_4OuY1uCeYv4UyXFc1s1uUyYtj4z57qsHGsS4dQ3A2MJsw', 'e' => 'AQAB', 'use' => 'sig', 'key_ops' => ['sign', 'verify'], ], $rsa_key->toArray()); - $this->assertFalse($rsa_key->isPrivate()); + self::assertFalse($rsa_key->isPrivate()); } public function testLoadPublicRSAKeyFromValues() @@ -119,12 +119,12 @@ public function testLoadPublicRSAKeyFromValues() 'e' => 'AQAB', ]); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'n' => 'tpS1ZmfVKVP5KofIhMBP0tSWc4qlh6fm2lrZSkuKxUjEaWjzZSzs72gEIGxraWusMdoRuV54xsWRyf5KeZT0S-I5Prle3Idi3gICiO4NwvMk6JwSBcJWwmSLFEKyUSnB2CtfiGc0_5rQCpcEt_Dn5iM-BNn7fqpoLIbks8rXKUIj8-qMVqkTXsEKeKinE23t1ykMldsNaaOH-hvGti5Jt2DMnH1JjoXdDXfxvSP_0gjUYb0ektudYFXoA6wekmQyJeImvgx4Myz1I4iHtkY_Cp7J4Mn1ejZ6HNmyvoTE_4OuY1uCeYv4UyXFc1s1uUyYtj4z57qsHGsS4dQ3A2MJsw', 'e' => 'AQAB', ], $rsa_key->toArray()); - $this->assertFalse($rsa_key->isPrivate()); + self::assertFalse($rsa_key->isPrivate()); } public function testLoadPrivateRSAKey() @@ -132,7 +132,7 @@ public function testLoadPrivateRSAKey() $file = 'file://'.__DIR__.DIRECTORY_SEPARATOR.'RSA'.DIRECTORY_SEPARATOR.'private.key'; $rsa_key = new RSAKey($file); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'n' => '33WRDEG5rN7daMgI2N5H8cPwTeQPOnz34uG2fe0yKyHjJDGE2XoESRpu5LelSPdYM_r4AWMFWoDWPd-7xaq7uFEkM8c6zaQIgj4uEiq-pBMvH-e805SFbYOKYqfQe4eeXAk4OrQwcUkSrlGskf6YUaw_3IwbPgzEDTgTZFVtQlE', 'e' => 'AQAB', @@ -143,15 +143,15 @@ public function testLoadPrivateRSAKey() 'dq' => 'JV2pC7CB50QeZx7C02h3jZyuObC9YHEEoxOXr9ZPjPBVvjV5S6NVajQsdEu4Kgr_8YOqaWgiHovcxTwyqcgZvQ', 'qi' => 'VZykPj-ugKQxuWTSE-hA-nJqkl7FzjfzHte4QYUSHLHFq6oLlHhgUoJ_4oFLaBmCvgZLAFRDDD6pnd5Fgzt9ow', ], $rsa_key->toArray()); - $this->assertTrue($rsa_key->isPrivate()); + self::assertTrue($rsa_key->isPrivate()); $public_key = RSAKey::toPublic($rsa_key); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'n' => '33WRDEG5rN7daMgI2N5H8cPwTeQPOnz34uG2fe0yKyHjJDGE2XoESRpu5LelSPdYM_r4AWMFWoDWPd-7xaq7uFEkM8c6zaQIgj4uEiq-pBMvH-e805SFbYOKYqfQe4eeXAk4OrQwcUkSrlGskf6YUaw_3IwbPgzEDTgTZFVtQlE', 'e' => 'AQAB', ], $public_key->toArray()); - $this->assertFalse($public_key->isPrivate()); + self::assertFalse($public_key->isPrivate()); } public function testLoadPrivateRSAKeyFromJWK() @@ -169,7 +169,7 @@ public function testLoadPrivateRSAKeyFromJWK() ]); $rsa_key = new RSAKey($jwk); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'n' => '33WRDEG5rN7daMgI2N5H8cPwTeQPOnz34uG2fe0yKyHjJDGE2XoESRpu5LelSPdYM_r4AWMFWoDWPd-7xaq7uFEkM8c6zaQIgj4uEiq-pBMvH-e805SFbYOKYqfQe4eeXAk4OrQwcUkSrlGskf6YUaw_3IwbPgzEDTgTZFVtQlE', 'e' => 'AQAB', @@ -180,15 +180,15 @@ public function testLoadPrivateRSAKeyFromJWK() 'dq' => 'JV2pC7CB50QeZx7C02h3jZyuObC9YHEEoxOXr9ZPjPBVvjV5S6NVajQsdEu4Kgr_8YOqaWgiHovcxTwyqcgZvQ', 'qi' => 'VZykPj-ugKQxuWTSE-hA-nJqkl7FzjfzHte4QYUSHLHFq6oLlHhgUoJ_4oFLaBmCvgZLAFRDDD6pnd5Fgzt9ow', ], $rsa_key->toArray()); - $this->assertTrue($rsa_key->isPrivate()); + self::assertTrue($rsa_key->isPrivate()); $public_key = RSAKey::toPublic($rsa_key); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'n' => '33WRDEG5rN7daMgI2N5H8cPwTeQPOnz34uG2fe0yKyHjJDGE2XoESRpu5LelSPdYM_r4AWMFWoDWPd-7xaq7uFEkM8c6zaQIgj4uEiq-pBMvH-e805SFbYOKYqfQe4eeXAk4OrQwcUkSrlGskf6YUaw_3IwbPgzEDTgTZFVtQlE', 'e' => 'AQAB', ], $public_key->toArray()); - $this->assertFalse($public_key->isPrivate()); + self::assertFalse($public_key->isPrivate()); } public function testLoadPrivateRSAKeyFromValues() @@ -205,7 +205,7 @@ public function testLoadPrivateRSAKeyFromValues() 'qi' => 'VZykPj-ugKQxuWTSE-hA-nJqkl7FzjfzHte4QYUSHLHFq6oLlHhgUoJ_4oFLaBmCvgZLAFRDDD6pnd5Fgzt9ow', ]); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'n' => '33WRDEG5rN7daMgI2N5H8cPwTeQPOnz34uG2fe0yKyHjJDGE2XoESRpu5LelSPdYM_r4AWMFWoDWPd-7xaq7uFEkM8c6zaQIgj4uEiq-pBMvH-e805SFbYOKYqfQe4eeXAk4OrQwcUkSrlGskf6YUaw_3IwbPgzEDTgTZFVtQlE', 'e' => 'AQAB', @@ -217,15 +217,15 @@ public function testLoadPrivateRSAKeyFromValues() 'qi' => 'VZykPj-ugKQxuWTSE-hA-nJqkl7FzjfzHte4QYUSHLHFq6oLlHhgUoJ_4oFLaBmCvgZLAFRDDD6pnd5Fgzt9ow', ], $rsa_key->toArray()); - $this->assertTrue($rsa_key->isPrivate()); + self::assertTrue($rsa_key->isPrivate()); $public_key = RSAKey::toPublic($rsa_key); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'n' => '33WRDEG5rN7daMgI2N5H8cPwTeQPOnz34uG2fe0yKyHjJDGE2XoESRpu5LelSPdYM_r4AWMFWoDWPd-7xaq7uFEkM8c6zaQIgj4uEiq-pBMvH-e805SFbYOKYqfQe4eeXAk4OrQwcUkSrlGskf6YUaw_3IwbPgzEDTgTZFVtQlE', 'e' => 'AQAB', ], $public_key->toArray()); - $this->assertFalse($public_key->isPrivate()); + self::assertFalse($public_key->isPrivate()); } public function testConvertPrivateKeyToPublic() @@ -246,7 +246,7 @@ public function testConvertPrivateKeyToPublic() $public_ec_key = RSAKey::toPublic($private_ec_key); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'kid' => 'Foo', 'n' => '33WRDEG5rN7daMgI2N5H8cPwTeQPOnz34uG2fe0yKyHjJDGE2XoESRpu5LelSPdYM_r4AWMFWoDWPd-7xaq7uFEkM8c6zaQIgj4uEiq-pBMvH-e805SFbYOKYqfQe4eeXAk4OrQwcUkSrlGskf6YUaw_3IwbPgzEDTgTZFVtQlE', @@ -259,14 +259,14 @@ public function testCreateRSAKey() { $jwk = JWKFactory::createRSAKey(['size' => 384]); - $this->assertEquals('RSA', $jwk->get('kty')); - $this->assertTrue($jwk->has('p')); - $this->assertTrue($jwk->has('n')); - $this->assertTrue($jwk->has('q')); - $this->assertTrue($jwk->has('d')); - $this->assertTrue($jwk->has('dp')); - $this->assertTrue($jwk->has('dq')); - $this->assertTrue($jwk->has('qi')); + self::assertEquals('RSA', $jwk->get('kty')); + self::assertTrue($jwk->has('p')); + self::assertTrue($jwk->has('n')); + self::assertTrue($jwk->has('q')); + self::assertTrue($jwk->has('d')); + self::assertTrue($jwk->has('dp')); + self::assertTrue($jwk->has('dq')); + self::assertTrue($jwk->has('qi')); } public function testLoadPrivateRSAKeyFromMinimalValues() @@ -278,7 +278,7 @@ public function testLoadPrivateRSAKeyFromMinimalValues() 'd' => 'JSqz6ijkk3dfdSEA_0iMT_1HeIJ1ft4msZ6qw7_1JSCGQAALeZ1yM0QHO3uX-Jr7HC7v1rGVcwsonAhei2qu3rk-w_iCnRL6QkkMNBnDQycwaWpwGsMBFF-UqstOJNggE4AHX-aDnbd4wbKVvdX7ieehPngbPkHcJFdg_iSZCQNoajz6XfEruyIi7_IFXYEGmH_UyEbQkgNtriZysutgYdolUjo9flUlh20HbuV3NwsPjGyDG4dUMpNpdBpSuRHYKLX6h3FjeLhItBmhBfuL7d-G3EXwKlwfNXXYivqY5NQAkFNrRbvFlc_ARIws3zAfykPDIWGWFiPiN3H-hXMgAQ', ]); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'n' => 'gVf-iyhwLn2J2Up4EKjwdLYmk5n24gjGk4oQkCHVcE7j8wkS1iSzcu0ApVcMPLklEp_PWycZE12vL90gPeVjF2IPL_MKFL0b6Wy7A1f4kCDkKv7TDDjt1IIwbS-Jdp-2pG7bPb3tWjJUu6QZBLoXfRtW3cMDkQjXaVGixENORLAZs6qdu2MMKV94jetCiFd0JYCjxGVC0HW2OKnM21B_2R1NubOvMlWA7gypdpvmBYDGpkw4mjV3walWlCZObG7IH84Ovl7wOP8XLzqi2un4e6fNzy3rdp4OUSPYItF4ZX5qThWYY2R47Z5sbrZxHjNeDECKUeio0KPQNrgr6FSKSw', 'e' => 'AQAB', @@ -290,14 +290,14 @@ public function testLoadPrivateRSAKeyFromMinimalValues() 'qi' => 'bbFp1zSfnmmOUYUtbaKhmFofn0muf1PrnMGq6zeu8zruf3gK9Y1oDsUk54FlV0mNBO3_t3Zbw2752CLklt73zesVeF-Nsc1kDnx_WGf4YrQpLh5PvkEfT_wPbveKTTcVXiVxMPHHZ-n2kOe3oyShycSLP5_I_SYN-loZHu7QC_I', ], $rsa_key->toArray()); - $this->assertTrue($rsa_key->isPrivate()); + self::assertTrue($rsa_key->isPrivate()); $public_key = RSAKey::toPublic($rsa_key); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'n' => 'gVf-iyhwLn2J2Up4EKjwdLYmk5n24gjGk4oQkCHVcE7j8wkS1iSzcu0ApVcMPLklEp_PWycZE12vL90gPeVjF2IPL_MKFL0b6Wy7A1f4kCDkKv7TDDjt1IIwbS-Jdp-2pG7bPb3tWjJUu6QZBLoXfRtW3cMDkQjXaVGixENORLAZs6qdu2MMKV94jetCiFd0JYCjxGVC0HW2OKnM21B_2R1NubOvMlWA7gypdpvmBYDGpkw4mjV3walWlCZObG7IH84Ovl7wOP8XLzqi2un4e6fNzy3rdp4OUSPYItF4ZX5qThWYY2R47Z5sbrZxHjNeDECKUeio0KPQNrgr6FSKSw', 'e' => 'AQAB', ], $public_key->toArray()); - $this->assertFalse($public_key->isPrivate()); + self::assertFalse($public_key->isPrivate()); } } diff --git a/tests/Unit/Objects/JWETest.php b/tests/Unit/Objects/JWETest.php index 3cb236f5..f766b4dd 100644 --- a/tests/Unit/Objects/JWETest.php +++ b/tests/Unit/Objects/JWETest.php @@ -17,7 +17,7 @@ * @group JWE * @group Unit */ -class JWETest extends \PHPUnit_Framework_TestCase +class JWETest extends \Jose\Test\BaseTestCase { public function testJWE() { @@ -31,7 +31,7 @@ public function testJWE() ]; $jwe = JWEFactory::createJWE($claims); - $this->assertEquals(0, $jwe->countRecipients()); + self::assertEquals(0, $jwe->countRecipients()); } /** @@ -61,9 +61,9 @@ public function testAddAndGetSharedProtectedHeader() $jwe = JWEFactory::createJWE([]); $jwe = $jwe->withSharedProtectedHeader('foo', 'bar'); - $this->assertEquals(['foo' => 'bar'], $jwe->getSharedProtectedHeaders()); - $this->assertEquals('bar', $jwe->getSharedProtectedHeader('foo')); - $this->assertEquals('bar', $jwe->getSharedProtectedHeader('plic')); + self::assertEquals(['foo' => 'bar'], $jwe->getSharedProtectedHeaders()); + self::assertEquals('bar', $jwe->getSharedProtectedHeader('foo')); + self::assertEquals('bar', $jwe->getSharedProtectedHeader('plic')); } /** @@ -75,9 +75,9 @@ public function testAddSharedProtectedHeader() $jwe = JWEFactory::createJWE([]); $jwe = $jwe->withSharedHeader('foo', 'bar'); - $this->assertEquals(['foo' => 'bar'], $jwe->getSharedHeaders()); - $this->assertEquals('bar', $jwe->getSharedHeader('foo')); - $this->assertEquals('bar', $jwe->getSharedHeader('plic')); + self::assertEquals(['foo' => 'bar'], $jwe->getSharedHeaders()); + self::assertEquals('bar', $jwe->getSharedHeader('foo')); + self::assertEquals('bar', $jwe->getSharedHeader('plic')); } /** @@ -140,9 +140,9 @@ public function testRecipient() 'plic' => 'ploc', ]); - $this->assertEquals(1, $jwe->countRecipients()); - $this->assertEquals('bar', $jwe->getRecipient(0)->getHeader('foo')); - $this->assertEquals('ploc', $jwe->getRecipient(0)->getHeader('plic')); + self::assertEquals(1, $jwe->countRecipients()); + self::assertEquals('bar', $jwe->getRecipient(0)->getHeader('foo')); + self::assertEquals('ploc', $jwe->getRecipient(0)->getHeader('plic')); $jwe->getRecipient(0)->getHeader('var'); } } diff --git a/tests/Unit/Objects/JWKFactoryTest.php b/tests/Unit/Objects/JWKFactoryTest.php index f4ea85f6..ba1ca346 100644 --- a/tests/Unit/Objects/JWKFactoryTest.php +++ b/tests/Unit/Objects/JWKFactoryTest.php @@ -20,20 +20,20 @@ * @group JWKFactory * @group Unit */ -class JWKFactoryTest extends \PHPUnit_Framework_TestCase +class JWKFactoryTest extends \Jose\Test\BaseTestCase { public function testCreateFromECCertificateFileInDERFormat() { $result = JWKFactory::createFromCertificateFile(__DIR__.'/../Certificates/EC/DER/prime256v1-cert.der'); - $this->assertInstanceOf(JWKInterface::class, $result); - $this->assertEquals('{"kty":"EC","crv":"P-256","x":"xEsr_55aqgFXdrbRNz1_WSNI8UaSUxCka2kGEN1bXsI","y":"SM45Hsr9dnUR6Ox-TpmNv2fbDX4CoVo-3patMUpXANA","x5c":["MIIB0jCCAXegAwIBAgIJAK2o1kQ5JwpUMAoGCCqGSM49BAMCMEUxCzAJBgNVBAYT\nAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn\naXRzIFB0eSBMdGQwHhcNMTUxMTA4MTUxMTU2WhcNMTYxMTA3MTUxMTU2WjBFMQsw\nCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJu\nZXQgV2lkZ2l0cyBQdHkgTHRkMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExEsr\n\/55aqgFXdrbRNz1\/WSNI8UaSUxCka2kGEN1bXsJIzjkeyv12dRHo7H5OmY2\/Z9sN\nfgKhWj7elq0xSlcA0KNQME4wHQYDVR0OBBYEFKIGgCZoS388STT0qjoX\/swKYBXh\nMB8GA1UdIwQYMBaAFKIGgCZoS388STT0qjoX\/swKYBXhMAwGA1UdEwQFMAMBAf8w\nCgYIKoZIzj0EAwIDSQAwRgIhAK5OqQoBGR\/pj2NOb+PyRKK4k4d3Muj9z\/6LsJK+\nkkgUAiEA+FY4SWKv4mfe0gsOBId0Aah\/HtVZxDBe3bCXOQM8MMM="],"x5t":"ZnnaQDssCKJQZLp6zyHssIZOa7o","x5t#256":"v7VlokKTGL3anRk8Nl0VcqVC9u5j2Fb5tdlQntUgDT4"}', json_encode($result)); + self::assertInstanceOf(JWKInterface::class, $result); + self::assertEquals('{"kty":"EC","crv":"P-256","x":"xEsr_55aqgFXdrbRNz1_WSNI8UaSUxCka2kGEN1bXsI","y":"SM45Hsr9dnUR6Ox-TpmNv2fbDX4CoVo-3patMUpXANA","x5c":["MIIB0jCCAXegAwIBAgIJAK2o1kQ5JwpUMAoGCCqGSM49BAMCMEUxCzAJBgNVBAYT\nAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn\naXRzIFB0eSBMdGQwHhcNMTUxMTA4MTUxMTU2WhcNMTYxMTA3MTUxMTU2WjBFMQsw\nCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJu\nZXQgV2lkZ2l0cyBQdHkgTHRkMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExEsr\n\/55aqgFXdrbRNz1\/WSNI8UaSUxCka2kGEN1bXsJIzjkeyv12dRHo7H5OmY2\/Z9sN\nfgKhWj7elq0xSlcA0KNQME4wHQYDVR0OBBYEFKIGgCZoS388STT0qjoX\/swKYBXh\nMB8GA1UdIwQYMBaAFKIGgCZoS388STT0qjoX\/swKYBXhMAwGA1UdEwQFMAMBAf8w\nCgYIKoZIzj0EAwIDSQAwRgIhAK5OqQoBGR\/pj2NOb+PyRKK4k4d3Muj9z\/6LsJK+\nkkgUAiEA+FY4SWKv4mfe0gsOBId0Aah\/HtVZxDBe3bCXOQM8MMM="],"x5t":"ZnnaQDssCKJQZLp6zyHssIZOa7o","x5t#256":"v7VlokKTGL3anRk8Nl0VcqVC9u5j2Fb5tdlQntUgDT4"}', json_encode($result)); } public function testCreateFromKey() { $jwk = JWKFactory::createFromKey(file_get_contents(__DIR__.'/../Keys/EC/private.es256.encrypted.key'), 'test'); - $this->assertEquals('{"kty":"EC","crv":"P-256","d":"q_VkzNnxTG39jHB0qkwA_SeVXud7yCHT7kb7kZv-0xQ","x":"vuYsP-QnrqAbM7Iyhzjt08hFSuzapyojCB_gFsBt65U","y":"oq-E2K-X0kPeqGuKnhlXkxc5fnxomRSC6KLby7Ij8AE"}', json_encode($jwk)); + self::assertEquals('{"kty":"EC","crv":"P-256","d":"q_VkzNnxTG39jHB0qkwA_SeVXud7yCHT7kb7kZv-0xQ","x":"vuYsP-QnrqAbM7Iyhzjt08hFSuzapyojCB_gFsBt65U","y":"oq-E2K-X0kPeqGuKnhlXkxc5fnxomRSC6KLby7Ij8AE"}', json_encode($jwk)); } public function testCreateFromResource() @@ -42,88 +42,88 @@ public function testCreateFromResource() $jwk = JWKFactory::createFromX509Resource($res); - $this->assertInstanceOf(JWKInterface::class, $jwk); - $this->assertEquals('{"kty":"RSA","n":"xgEGvHk-U_RY0j9l3MP7o-S2a6uf4XaRBhu1ztdCHz8tMG8Kj4_qJmgsSZQD17sRctHGBTUJWp4CLtBwCf0zAGVzySwUkcHSu1_2mZ_w7Nr0TQHKeWr_j8pvXH534DKEvugr21DAHbi4c654eLUL-JW_wJJYqJh7qHM3W3Fh7ys","e":"AQAB","x5c":["MIICVjCCAb8CAg37MA0GCSqGSIb3DQEBBQUAMIGbMQswCQYDVQQGEwJKUDEOMAwG\nA1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxETAPBgNVBAoTCEZyYW5rNERE\nMRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWBgNVBAMTD0ZyYW5rNEREIFdl\nYiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmcmFuazRkZC5jb20wHhcNMTIw\nODIyMDUyNzIzWhcNMTcwODIxMDUyNzIzWjBKMQswCQYDVQQGEwJKUDEOMAwGA1UE\nCAwFVG9reW8xETAPBgNVBAoMCEZyYW5rNEREMRgwFgYDVQQDDA93d3cuZXhhbXBs\nZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMYBBrx5PlP0WNI\/ZdzD\n+6Pktmurn+F2kQYbtc7XQh8\/LTBvCo+P6iZoLEmUA9e7EXLRxgU1CVqeAi7QcAn9\nMwBlc8ksFJHB0rtf9pmf8Oza9E0Bynlq\/4\/Kb1x+d+AyhL7oK9tQwB24uHOueHi1\nC\/iVv8CSWKiYe6hzN1txYe8rAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAASPdjigJ\nkXCqKWpnZ\/Oc75EUcMi6HztaW8abUMlYXPIgkV2F7YanHOB7K4f7OOLjiz8DTPFf\njC9UeuErhaA\/zzWi8ewMTFZW\/WshOrm3fNvcMrMLKtH534JKvcdMg6qIdjTFINIr\nevnAhf0cwULaebn+lMs8Pdl7y37+sfluVok="],"x5t":"4bK45ewZ00Wk-a_shpTw2cCqJc8","x5t#256":"5F5GTPOxBGAOsVyuYzqUBjri0R2YDTiDowiQbs6oGgU"}', json_encode($jwk)); + self::assertInstanceOf(JWKInterface::class, $jwk); + self::assertEquals('{"kty":"RSA","n":"xgEGvHk-U_RY0j9l3MP7o-S2a6uf4XaRBhu1ztdCHz8tMG8Kj4_qJmgsSZQD17sRctHGBTUJWp4CLtBwCf0zAGVzySwUkcHSu1_2mZ_w7Nr0TQHKeWr_j8pvXH534DKEvugr21DAHbi4c654eLUL-JW_wJJYqJh7qHM3W3Fh7ys","e":"AQAB","x5c":["MIICVjCCAb8CAg37MA0GCSqGSIb3DQEBBQUAMIGbMQswCQYDVQQGEwJKUDEOMAwG\nA1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxETAPBgNVBAoTCEZyYW5rNERE\nMRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWBgNVBAMTD0ZyYW5rNEREIFdl\nYiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmcmFuazRkZC5jb20wHhcNMTIw\nODIyMDUyNzIzWhcNMTcwODIxMDUyNzIzWjBKMQswCQYDVQQGEwJKUDEOMAwGA1UE\nCAwFVG9reW8xETAPBgNVBAoMCEZyYW5rNEREMRgwFgYDVQQDDA93d3cuZXhhbXBs\nZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMYBBrx5PlP0WNI\/ZdzD\n+6Pktmurn+F2kQYbtc7XQh8\/LTBvCo+P6iZoLEmUA9e7EXLRxgU1CVqeAi7QcAn9\nMwBlc8ksFJHB0rtf9pmf8Oza9E0Bynlq\/4\/Kb1x+d+AyhL7oK9tQwB24uHOueHi1\nC\/iVv8CSWKiYe6hzN1txYe8rAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAASPdjigJ\nkXCqKWpnZ\/Oc75EUcMi6HztaW8abUMlYXPIgkV2F7YanHOB7K4f7OOLjiz8DTPFf\njC9UeuErhaA\/zzWi8ewMTFZW\/WshOrm3fNvcMrMLKtH534JKvcdMg6qIdjTFINIr\nevnAhf0cwULaebn+lMs8Pdl7y37+sfluVok="],"x5t":"4bK45ewZ00Wk-a_shpTw2cCqJc8","x5t#256":"5F5GTPOxBGAOsVyuYzqUBjri0R2YDTiDowiQbs6oGgU"}', json_encode($jwk)); } public function testCreateFromECCertificateFileInPEMFormat() { $result = JWKFactory::createFromCertificateFile(__DIR__.'/../Certificates/EC/PEM/prime256v1-cert.pem'); - $this->assertInstanceOf(JWKInterface::class, $result); - $this->assertEquals('{"kty":"EC","crv":"P-256","x":"xEsr_55aqgFXdrbRNz1_WSNI8UaSUxCka2kGEN1bXsI","y":"SM45Hsr9dnUR6Ox-TpmNv2fbDX4CoVo-3patMUpXANA","x5c":["MIIB0jCCAXegAwIBAgIJAK2o1kQ5JwpUMAoGCCqGSM49BAMCMEUxCzAJBgNVBAYT\nAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn\naXRzIFB0eSBMdGQwHhcNMTUxMTA4MTUxMTU2WhcNMTYxMTA3MTUxMTU2WjBFMQsw\nCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJu\nZXQgV2lkZ2l0cyBQdHkgTHRkMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExEsr\n\/55aqgFXdrbRNz1\/WSNI8UaSUxCka2kGEN1bXsJIzjkeyv12dRHo7H5OmY2\/Z9sN\nfgKhWj7elq0xSlcA0KNQME4wHQYDVR0OBBYEFKIGgCZoS388STT0qjoX\/swKYBXh\nMB8GA1UdIwQYMBaAFKIGgCZoS388STT0qjoX\/swKYBXhMAwGA1UdEwQFMAMBAf8w\nCgYIKoZIzj0EAwIDSQAwRgIhAK5OqQoBGR\/pj2NOb+PyRKK4k4d3Muj9z\/6LsJK+\nkkgUAiEA+FY4SWKv4mfe0gsOBId0Aah\/HtVZxDBe3bCXOQM8MMM="],"x5t":"ZnnaQDssCKJQZLp6zyHssIZOa7o","x5t#256":"v7VlokKTGL3anRk8Nl0VcqVC9u5j2Fb5tdlQntUgDT4"}', json_encode($result)); + self::assertInstanceOf(JWKInterface::class, $result); + self::assertEquals('{"kty":"EC","crv":"P-256","x":"xEsr_55aqgFXdrbRNz1_WSNI8UaSUxCka2kGEN1bXsI","y":"SM45Hsr9dnUR6Ox-TpmNv2fbDX4CoVo-3patMUpXANA","x5c":["MIIB0jCCAXegAwIBAgIJAK2o1kQ5JwpUMAoGCCqGSM49BAMCMEUxCzAJBgNVBAYT\nAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn\naXRzIFB0eSBMdGQwHhcNMTUxMTA4MTUxMTU2WhcNMTYxMTA3MTUxMTU2WjBFMQsw\nCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJu\nZXQgV2lkZ2l0cyBQdHkgTHRkMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExEsr\n\/55aqgFXdrbRNz1\/WSNI8UaSUxCka2kGEN1bXsJIzjkeyv12dRHo7H5OmY2\/Z9sN\nfgKhWj7elq0xSlcA0KNQME4wHQYDVR0OBBYEFKIGgCZoS388STT0qjoX\/swKYBXh\nMB8GA1UdIwQYMBaAFKIGgCZoS388STT0qjoX\/swKYBXhMAwGA1UdEwQFMAMBAf8w\nCgYIKoZIzj0EAwIDSQAwRgIhAK5OqQoBGR\/pj2NOb+PyRKK4k4d3Muj9z\/6LsJK+\nkkgUAiEA+FY4SWKv4mfe0gsOBId0Aah\/HtVZxDBe3bCXOQM8MMM="],"x5t":"ZnnaQDssCKJQZLp6zyHssIZOa7o","x5t#256":"v7VlokKTGL3anRk8Nl0VcqVC9u5j2Fb5tdlQntUgDT4"}', json_encode($result)); } public function testCreateFrom32kRSACertificateFileInDERFormat() { $result = JWKFactory::createFromCertificateFile(__DIR__.'/../Certificates/RSA/DER/32k-rsa-example-cert.der'); - $this->assertInstanceOf(JWKInterface::class, $result); - $this->assertEquals('{"kty":"RSA","n":"qzPFsFIf3cSes25DloV3y3d8gKMcZVE_EQ_6e_MZnyqDbuOEP39yQs3aunzbZRoO8Xw8lLoJNduiKKsco7odI753kBvz1eLyke-sWBVZttbnYyz9AE3ZXfAb9rHW2AxgIqHNsQOsLJS_douGZwxawNdE90WM4QG80bDpkxxHfObtmZIbZoOFSeokDHA5jokQGzJ65t6ARtQOIht84pIlAr8RO0vCUiJ0R4TdAffbdIukMcVfSoZBlZJ_q-yBtPoqB1Nmr1x1FqCtR81NrEtdp7CUHy4yLIskMzHTwJL24dx8zPS9RBIAuR6HO6soQwQgKY5NYmyaZGuWDrzw0Lor9_jjcx3x7NlXEUffGyUdT_bZ6owsgd-SpvnbqXPXIf-u5JH7afSUuajytHnGVilQOpEg06B0F-AumUEx8vdLPczCx0CED11mhRhT1eRQPJlzxgqA22SN1Yz0P55R8QbfFYcflpEtZbHmdvwMSipEoEUyI8aA9z268oNVnnAGhG3cOqk8-4HOvtqZ9LIc8jUcQLtWX-PJav9EePnWuV6pFwzvKcwl09m08xIfIh9DvFVJz3Fks-X6c1tVo2Valftlj8fnlzu9WgownkwhM4KN2UpcHcff4G-v9zckhcpROSzZ1ax5mPOUMF6B2OVawMhf3li9A9JEpBDxVu2-gZU6NbhvfH1f4PdNPUnlasPylHn4qz4S6_V1fuxho-2O_V72w3V5FDBi-m2D9vDVQvJtuoiJxUEyOWaxsenuzoFlq3jNHwm0SiabwVjaMyre4qktmHopLuLX2ixME3rbTtaXLAaly-t2X6oS4nFyhwP9f_WbJb4Yh_RDxksPj1hR_4nH43NTYjZBlLDM0YRb4xRzFmATQOUhPou6LSUbl8Tl2z7WYFzlcKgHwkWRaTGUV8Sz_h-_IfgZDvCtyyLhzvWOmfJBhsV1nTbDrr8DivZGH5huBNH88v_gbCVw36aAjH8BnmcHQ0ImUUwXoiB1iWSWB3x1xdYnAyQf5RV2PK86wVc4EBRxW6MeJHWZr-kFgHtcwk2ys8MewL8xlKs1S64APAWtD-WsLGEnUVMfM5EuWjoS9kB4BI4DC6M0uyDjaCuFu80wMmWfx9C3-Y2x7l5Lw0G4gRcUk-F3ONtKfsxMqAmV6aUVkXmdkX5LLa105CpIVqflM40CPl5mlVGEFlTf9u0zclyQ0_-qWt78ZzkpolPj9XKHikdYA_DKbvtfgtgNC07GIwBctoQsOrKGOxigeWzrAwfS9S5Wt7hvcs2R0Y04rXoeSTPbHWLumsJYLxC2HPtam3IxQJzCljIOFB5Sqi9WLO5l_yjmUGS2Fzy5DkuyFuC3o79rB-Vu0zpHQ5sHdbyYkfvi3QZx4jLuj2ki-3_1Qj7RfVdd1yWeudnFUy5QGfWh3-VoaK9UIZ1EeX62owXTGNOJovn9yMdwbXmy75qrkPXadFQG3lnuqq_Ucd8ZAYJvwfQb6uhTSv1kSFCpxyyaSBYjLU44QDF6FRh_QHLMBM2DVasOT0hsF2UWsIXUneoJHk_qVZSRmj5EDaIrWAUEZfL_geiwcW3_L3Y9iaHMkB93fHNsVEpLmTO-vLHZHYN0c-kKNVBw_40xGZ5ZgPJlT4JZVvBKuB2ka2OsSLcRXZvzZZZTnrRHb_9dngGkFpI0gc6gFu2d1mPIIFp6JS7AJ4_sYKE4yxuGG7IsA4ErnNBEK9Sr1XSu0_KfcIv63dm_AybDg1vmqMLCl5EiP9OIFsWdIM42970PH9h8Ri7KUn0D53RSRVkV38NW312A2JYCHfEfbIxyibEIrsusib98x6Bedh-3BpsWyih2XlDT6AFwJdD0cc_Uf56Vqv9waUtsSx-1xBwliZ35MKq-IfV6hcLnFgLhxsqakV8aFLAEzI8Ulned6zjRAC28aaDOZcFdKEMD0wHPUW8-9UTQxAgug8otEITWSkKubyXbdofpVa9Xwjq1-jLb4eylqey0RokKrHO6B7F3KtUF8Zsm0mGEg7nvUhjEBFL3AqkLke5Nb_78uqb3tzZF3iO6ghENar9s1DUIYqNkbMSeh7smgER_PBUB0MGMqRnx8qcr5t5yBEurZ7qq7-LYoJOoc6UwaPrQN_AFRou4ugiRrxIrvOwrDPr4y2zoi9XKnBBuYMnt2AkGVCNIA0WOKgmex4x_2Nri2JlRieAPwNPfW5PLkyPVRfw0dNzhg7csMl1Wctdw1JpHJhgMswuhYhRWGyzYWE4ZU8lvQWqA42MOKfUixAV4LmEzGz2eRQSPGWjLC85-mcxf_vssmD-mbuJAjzlLDzzwllrTDCQrt18DftpAAHhD5hG2HmQH9RDzcS3sniIx4p2zyqBHVQsWM74BlQjbODjgHRHerTgxYaNmh4KRA38lmb9omrUhI2Q0Lj5CF2of_Apd7fo8u6LpBpdEtirkn_7-9vPPiGerClV6lSjoNi_I_hHCneAq-3KZq7hM5XliJPvUrws_m0X5n6_fazdk-gOohEuF0Aq_1I5633sS-DGrFyan2K7oeoBGQN994-kweTR0lLko14nC5wnvizbsv7sDUNJTjM7LMYIrhKEILTjjGQ6WuCkYhQuM4RAnx74jFIchW8pS1tEnUcIOyBWgFB9M2zdbNmJg7vH43mmX408jMYVKs9CQz2Y7Vu33S0dSp9sWxM1KUREFVy1xTbVgKNxLxOzXiLOjm_b4EifAHZh_KTf0POm5RESU-TSrO29y5puTHL-PLuOE30jrxXaKhW5UzmQLUMhBGI7geYP6fE6QxyUi0gD_tLdMmzxTlZiOXkE6HnBQ-3Ar54uA-RFUhnzU-XT3wm--eINsvqyrHCyLQlmM71aBXnMlH5g0NJjdm42XSecTopWfFCfcNe1-ufpUuMGGg0C3LxVN5fkTmB2_6gai0AHh4dNhefGkKCZ5OcSNtA_UUI1nKr_wgPTI4X1catN9RE9mMYhOt-I5gOVRCihxDcUcBl2apUaFK-jHPs5rABqhykbi_dOS-zy42I86Vcu4B-_0GNlRIPRLZWFIhNRy_kfCOq4kb4SK9DjTvHsaq6YWMoL9Jk3JiqvH4yrMZ6T-XEFdJ8DGSc41lo1YJwhFUu0eGbGFKxyUBrHv1l9ByPrqWaiepnBBsda4y8G3SoiCfndwkbvLeE5ykYgurPpkYX_bau2PqsoAkiJ_GmbitKpXD71C5PmzvzLvpxkgC6hQq-v4L4WLelADvBpeikX9k23qhR5H3mkzNeMZgHyoFisy161cDgOlcg64g6C2UzJKlb5C1tOlQwM3fdm7cjBJXOjuxgi8Ewx6ov90eeaqIEfFvnUu1_IC_tFve9P_Us21Ak53vwStlHueYHtedJsHg84C5Ppt_z1LFR3Hh8m1pOnlb3kJw5eGpvsXweZrIIN0cvwz-NZ_orIxjPxLf23wy-y-lhObK17BfX1g-p759XtRSaG4Rj_QedauXHAA-SKgvwAOY3kBuWo9Oxx73JbC1kov55TkecHj2lXO_o49O5LCOa_h0nHIVb3JIGWot11sF_6zwNzFM2WtHFNu7Iu9hllumC8rvz3HEbylvSPQYzBQKy8NSyC6T9wbH6cAYY-vl59q1J4DwBH3DHKoMAec8InlnBO_ekJa8SMdQMZxov0BaxJc0W__29w2Sza0cBsMslfpRIWRWMb4jNpyvCyEVxrGf7AakOl0_9P3JCQ2o8cuf-BGg_z_iQ3aTMYVWi_pWuxnhh5NchjQU8C3dxvnEd0Te9mmDlvZh-N9GULo0tlzHz3WZniUp7mxVQ3nkeS31M0LIIF3SetSMjXrGJ_4bzAnb3EjH44eFuvgOiJ8ChXLCmHLtIpFa0WSC6YVpBxqfPrxke-DyB2Lvz_46MSQ4iKvCFhdYWxBtwXCZDN5Dt4XFpMknL_VnuVU8a5_rRqpEebv_VF1pBZsvfTK6UXFWAApFvL4ebApuLsFInG3uk89N2SbenTTiBGWZWZjsEFsvf3iSFZdQ2bgKSLmJIsuXV1mUPkzGEr8SsPLDKhGNZBevtka-CfnukEPn7a3K_O5sYcccEtYwx0VNiC6dWu7B_-pflffa1m4pbhdg6KfykDO9_jU_LE692dhWUzbv977zGUlOnmsEMeqmSTo9V5Hv0UsEDGEjoe9piKidoZ8JdAq1WIpSBfW9M2wtkZHbi2nlaBnKJuTaaNs_nWjbG4y73hEqEqRlQMKrLsJU7rsmy3h6x6-J_tXfkKpWu_Z_PhR-ca2RV4ldwUNejBhBomg-6bcSq1lHXGTpwc0wSDmIUfE2W6ZZysaFpmGpTDFjTDqfeeAwwbzShK7Uc-OnJVNiQ5w1KALJNjXURSfI61vyWRBMtFHaC7t6ixwDfv6pqEa0xeDe4xf4Z1qdX1Zfs4xpdAyzZWmslUsXIYDtiTXq6NYGjnCEPYqneVGOWhP6re0UfzeqqB6p6_L42UoqFrrjU7jnEWRlz6gxdU9qOJgLX3u6CIYtN6b44tpsqA23fNBiuf4SqoYimbd2YVjXFRFFNZ2XqJ-wBqYcD5xIfudMN6W5cAD4p5cTQ11_-EqIp8rDxiWOs-PN8SQTIE7ZYQ6na-lSITpchNybreE9SqhzluoY71DN8oQuUJHonrAW5Hh_VroGBxpbO9XdNhw0XrC-S9iH9DDEUedanM2DznPUZsHHutG8H0K9AEyWRS01sAwrF73ZG57qy5IciYMHZuFbkY0lzwbF-vd15jgNfP4JTmZD2sVWwVgI7Qp9T2hd0uuZL_huHl2baRCyC_DSI9c6p3q9Ud_tBN_yCcNcUVx0rS6EGfzM8VYOGwyiBVBAgVDjBXiKBsUVWA3ljfOtYhLKBDHkqhvoQaczSI2fKX7L7cwgXeBdckoaNhno6mCpZBamuyBZ1Iy6TnguQi59MCCKdiczIpfeumbSDEovy2IbQmPqld_JI6WOufgldiITu3hXR5KNazan2mc3NrKu1SEXZpdzb4wJZZ26U_1xE2GLMJru05yZoVNEkN72DhagM1R5oqHwPzRcn3ahdYvUzDoP6UHEpa76A23lqafY7F98l66hmAnXXlEKzEVwthYoxWANYtVsxs9NktNJdNMB3OCMnCo9BWkefmjlrzMJSkBP_1mfxN2o3W1tMNXpk5OQPO20_eWPF3iYhobSo8fcxzXtw9bg1BXr0TADj0hl_z4jw93wVGGLlsA3qYstay0I9yJgHBZmhxc7V1JzNWdwxIDmRgA5eCm1ELVBxpIup9WGZlUs1rzwqXzI-37i7l3dwFfCf_i2g8m-gNQjuM6YqkSz-XKcn-sJEg1XSMhoB15sgYE9U-2Oe-_EGLK0dOU2zyHO40F8ghvhKWpuAcITX_QnEMremwsiCl0PEnGZ98BXzlRvd1MFNc0ZUwzN-wTVxs4jNkteNbp0MjIKA5Y6FiCEX6koNWY9cLXSNg4XG4IsWRQrfIn2WWFz_nhzlaZNm_NUM1kmKRREPmsvQ","e":"AQAB","x5c":["MIIR2jCCEUMCAg4EMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYDVQQGEwJKUDEOMAwG\nA1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxETAPBgNVBAoTCEZyYW5rNERE\nMRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWBgNVBAMTD0ZyYW5rNEREIFdl\nYiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmcmFuazRkZC5jb20wHhcNMTIx\nMDEwMTIxNzQ5WhcNMTcxMDA5MTIxNzQ5WjBKMQswCQYDVQQGDAJKUDEOMAwGA1UE\nCAwFVG9reW8xETAPBgNVBAoMCEZyYW5rNEREMRgwFgYDVQQDDA93d3cuZXhhbXBs\nZS5jb20wghAiMA0GCSqGSIb3DQEBAQUAA4IQDwAwghAKAoIQAQCrM8WwUh\/dxJ6z\nbkOWhXfLd3yAoxxlUT8RD\/p78xmfKoNu44Q\/f3JCzdq6fNtlGg7xfDyUugk126Io\nqxyjuh0jvneQG\/PV4vKR76xYFVm21udjLP0ATdld8Bv2sdbYDGAioc2xA6wslL92\ni4ZnDFrA10T3RYzhAbzRsOmTHEd85u2Zkhtmg4VJ6iQMcDmOiRAbMnrm3oBG1A4i\nG3zikiUCvxE7S8JSInRHhN0B99t0i6QxxV9KhkGVkn+r7IG0+ioHU2avXHUWoK1H\nzU2sS12nsJQfLjIsiyQzMdPAkvbh3HzM9L1EEgC5Hoc7qyhDBCApjk1ibJpka5YO\nvPDQuiv3+ONzHfHs2VcRR98bJR1P9tnqjCyB35Km+dupc9ch\/67kkftp9JS5qPK0\necZWKVA6kSDToHQX4C6ZQTHy90s9zMLHQIQPXWaFGFPV5FA8mXPGCoDbZI3VjPQ\/\nnlHxBt8Vhx+WkS1lseZ2\/AxKKkSgRTIjxoD3Pbryg1WecAaEbdw6qTz7gc6+2pn0\nshzyNRxAu1Zf48lq\/0R4+da5XqkXDO8pzCXT2bTzEh8iH0O8VUnPcWSz5fpzW1Wj\nZVqV+2WPx+eXO71aCjCeTCEzgo3ZSlwdx9\/gb6\/3NySFylE5LNnVrHmY85QwXoHY\n5VrAyF\/eWL0D0kSkEPFW7b6BlTo1uG98fV\/g9009SeVqw\/KUefirPhLr9XV+7GGj\n7Y79XvbDdXkUMGL6bYP28NVC8m26iInFQTI5ZrGx6e7OgWWreM0fCbRKJpvBWNoz\nKt7iqS2Yeiku4tfaLEwTettO1pcsBqXL63ZfqhLicXKHA\/1\/9ZslvhiH9EPGSw+P\nWFH\/icfjc1NiNkGUsMzRhFvjFHMWYBNA5SE+i7otJRuXxOXbPtZgXOVwqAfCRZFp\nMZRXxLP+H78h+BkO8K3LIuHO9Y6Z8kGGxXWdNsOuvwOK9kYfmG4E0fzy\/+BsJXDf\npoCMfwGeZwdDQiZRTBeiIHWJZJYHfHXF1icDJB\/lFXY8rzrBVzgQFHFbox4kdZmv\n6QWAe1zCTbKzwx7AvzGUqzVLrgA8Ba0P5awsYSdRUx8zkS5aOhL2QHgEjgMLozS7\nIONoK4W7zTAyZZ\/H0Lf5jbHuXkvDQbiBFxST4Xc420p+zEyoCZXppRWReZ2Rfkst\nrXTkKkhWp+UzjQI+XmaVUYQWVN\/27TNyXJDT\/6pa3vxnOSmiU+P1coeKR1gD8Mpu\n+1+C2A0LTsYjAFy2hCw6soY7GKB5bOsDB9L1Lla3uG9yzZHRjTiteh5JM9sdYu6a\nwlgvELYc+1qbcjFAnMKWMg4UHlKqL1Ys7mX\/KOZQZLYXPLkOS7IW4Lejv2sH5W7T\nOkdDmwd1vJiR++LdBnHiMu6PaSL7f\/VCPtF9V13XJZ652cVTLlAZ9aHf5Whor1Qh\nnUR5frajBdMY04mi+f3Ix3BtebLvmquQ9dp0VAbeWe6qr9Rx3xkBgm\/B9Bvq6FNK\n\/WRIUKnHLJpIFiMtTjhAMXoVGH9AcswEzYNVqw5PSGwXZRawhdSd6gkeT+pVlJGa\nPkQNoitYBQRl8v+B6LBxbf8vdj2JocyQH3d8c2xUSkuZM768sdkdg3Rz6Qo1UHD\/\njTEZnlmA8mVPgllW8Eq4HaRrY6xItxFdm\/NlllOetEdv\/12eAaQWkjSBzqAW7Z3W\nY8ggWnolLsAnj+xgoTjLG4YbsiwDgSuc0EQr1KvVdK7T8p9wi\/rd2b8DJsODW+ao\nwsKXkSI\/04gWxZ0gzjb3vQ8f2HxGLspSfQPndFJFWRXfw1bfXYDYlgId8R9sjHKJ\nsQiuy6yJv3zHoF52H7cGmxbKKHZeUNPoAXAl0PRxz9R\/npWq\/3BpS2xLH7XEHCWJ\nnfkwqr4h9XqFwucWAuHGypqRXxoUsATMjxSWd53rONEALbxpoM5lwV0oQwPTAc9R\nbz71RNDECC6Dyi0QhNZKQq5vJdt2h+lVr1fCOrX6Mtvh7KWp7LRGiQqsc7oHsXcq\n1QXxmybSYYSDue9SGMQEUvcCqQuR7k1v\/vy6pve3NkXeI7qCEQ1qv2zUNQhio2Rs\nxJ6HuyaARH88FQHQwYypGfHypyvm3nIES6tnuqrv4tigk6hzpTBo+tA38AVGi7i6\nCJGvEiu87CsM+vjLbOiL1cqcEG5gye3YCQZUI0gDRY4qCZ7HjH\/Y2uLYmVGJ4A\/A\n099bk8uTI9VF\/DR03OGDtywyXVZy13DUmkcmGAyzC6FiFFYbLNhYThlTyW9BaoDj\nYw4p9SLEBXguYTMbPZ5FBI8ZaMsLzn6ZzF\/++yyYP6Zu4kCPOUsPPPCWWtMMJCu3\nXwN+2kAAeEPmEbYeZAf1EPNxLeyeIjHinbPKoEdVCxYzvgGVCNs4OOAdEd6tODFh\no2aHgpEDfyWZv2iatSEjZDQuPkIXah\/8Cl3t+jy7oukGl0S2KuSf\/v7288+IZ6sK\nVXqVKOg2L8j+EcKd4Cr7cpmruEzleWIk+9SvCz+bRfmfr99rN2T6A6iES4XQCr\/U\njnrfexL4MasXJqfYruh6gEZA333j6TB5NHSUuSjXicLnCe+LNuy\/uwNQ0lOMzssx\ngiuEoQgtOOMZDpa4KRiFC4zhECfHviMUhyFbylLW0SdRwg7IFaAUH0zbN1s2YmDu\n8fjeaZfjTyMxhUqz0JDPZjtW7fdLR1Kn2xbEzUpREQVXLXFNtWAo3EvE7NeIs6Ob\n9vgSJ8AdmH8pN\/Q86blERJT5NKs7b3Lmm5Mcv48u44TfSOvFdoqFblTOZAtQyEEY\njuB5g\/p8TpDHJSLSAP+0t0ybPFOVmI5eQToecFD7cCvni4D5EVSGfNT5dPfCb754\ng2y+rKscLItCWYzvVoFecyUfmDQ0mN2bjZdJ5xOilZ8UJ9w17X65+lS4wYaDQLcv\nFU3l+ROYHb\/qBqLQAeHh02F58aQoJnk5xI20D9RQjWcqv\/CA9MjhfVxq031ET2Yx\niE634jmA5VEKKHENxRwGXZqlRoUr6Mc+zmsAGqHKRuL905L7PLjYjzpVy7gH7\/QY\n2VEg9EtlYUiE1HL+R8I6riRvhIr0ONO8exqrphYygv0mTcmKq8fjKsxnpP5cQV0n\nwMZJzjWWjVgnCEVS7R4ZsYUrHJQGse\/WX0HI+upZqJ6mcEGx1rjLwbdKiIJ+d3CR\nu8t4TnKRiC6s+mRhf9tq7Y+qygCSIn8aZuK0qlcPvULk+bO\/Mu+nGSALqFCr6\/gv\nhYt6UAO8Gl6KRf2TbeqFHkfeaTM14xmAfKgWKzLXrVwOA6VyDriDoLZTMkqVvkLW\n06VDAzd92btyMElc6O7GCLwTDHqi\/3R55qogR8W+dS7X8gL+0W970\/9SzbUCTne\/\nBK2Ue55ge150mweDzgLk+m3\/PUsVHceHybWk6eVveQnDl4am+xfB5msgg3Ry\/DP4\n1n+isjGM\/Et\/bfDL7L6WE5srXsF9fWD6nvn1e1FJobhGP9B51q5ccAD5IqC\/AA5j\neQG5aj07HHvclsLWSi\/nlOR5wePaVc7+jj07ksI5r+HScchVvckgZai3XWwX\/rPA\n3MUzZa0cU27si72GWW6YLyu\/PccRvKW9I9BjMFArLw1LILpP3BsfpwBhj6+Xn2rU\nngPAEfcMcqgwB5zwieWcE796QlrxIx1AxnGi\/QFrElzRb\/\/b3DZLNrRwGwyyV+lE\nhZFYxviM2nK8LIRXGsZ\/sBqQ6XT\/0\/ckJDajxy5\/4EaD\/P+JDdpMxhVaL+la7GeG\nHk1yGNBTwLd3G+cR3RN72aYOW9mH430ZQujS2XMfPdZmeJSnubFVDeeR5LfUzQsg\ngXdJ61IyNesYn\/hvMCdvcSMfjh4W6+A6InwKFcsKYcu0ikVrRZILphWkHGp8+vGR\n74PIHYu\/P\/joxJDiIq8IWF1hbEG3BcJkM3kO3hcWkyScv9We5VTxrn+tGqkR5u\/9\nUXWkFmy99MrpRcVYACkW8vh5sCm4uwUicbe6Tz03ZJt6dNOIEZZlZmOwQWy9\/eJI\nVl1DZuApIuYkiy5dXWZQ+TMYSvxKw8sMqEY1kF6+2Rr4J+e6QQ+ftrcr87mxhxxw\nS1jDHRU2ILp1a7sH\/6l+V99rWbiluF2Dop\/KQM73+NT8sTr3Z2FZTNu\/3vvMZSU6\neawQx6qZJOj1Xke\/RSwQMYSOh72mIqJ2hnwl0CrVYilIF9b0zbC2RkduLaeVoGco\nm5Npo2z+daNsbjLveESoSpGVAwqsuwlTuuybLeHrHr4n+1d+Qqla79n8+FH5xrZF\nXiV3BQ16MGEGiaD7ptxKrWUdcZOnBzTBIOYhR8TZbplnKxoWmYalMMWNMOp954DD\nBvNKErtRz46clU2JDnDUoAsk2NdRFJ8jrW\/JZEEy0UdoLu3qLHAN+\/qmoRrTF4N7\njF\/hnWp1fVl+zjGl0DLNlaayVSxchgO2JNero1gaOcIQ9iqd5UY5aE\/qt7RR\/N6q\noHqnr8vjZSioWuuNTuOcRZGXPqDF1T2o4mAtfe7oIhi03pvji2myoDbd80GK5\/hK\nqhiKZt3ZhWNcVEUU1nZeon7AGphwPnEh+50w3pblwAPinlxNDXX\/4SoinysPGJY6\nz483xJBMgTtlhDqdr6VIhOlyE3Jut4T1KqHOW6hjvUM3yhC5QkeiesBbkeH9WugY\nHGls71d02HDResL5L2If0MMRR51qczYPOc9Rmwce60bwfQr0ATJZFLTWwDCsXvdk\nbnurLkhyJgwdm4VuRjSXPBsX693XmOA18\/glOZkPaxVbBWAjtCn1PaF3S65kv+G4\neXZtpELIL8NIj1zqner1R3+0E3\/IJw1xRXHStLoQZ\/MzxVg4bDKIFUECBUOMFeIo\nGxRVYDeWN861iEsoEMeSqG+hBpzNIjZ8pfsvtzCBd4F1ySho2GejqYKlkFqa7IFn\nUjLpOeC5CLn0wIIp2JzMil966ZtIMSi\/LYhtCY+qV38kjpY65+CV2IhO7eFdHko1\nrNqfaZzc2sq7VIRdml3NvjAllnbpT\/XETYYswmu7TnJmhU0SQ3vYOFqAzVHmiofA\n\/NFyfdqF1i9TMOg\/pQcSlrvoDbeWpp9jsX3yXrqGYCddeUQrMRXC2FijFYA1i1Wz\nGz02S00l00wHc4IycKj0FaR5+aOWvMwlKQE\/\/WZ\/E3ajdbW0w1emTk5A87bT95Y8\nXeJiGhtKjx9zHNe3D1uDUFevRMAOPSGX\/PiPD3fBUYYuWwDepiy1rLQj3ImAcFma\nHFztXUnM1Z3DEgOZGADl4KbUQtUHGki6n1YZmVSzWvPCpfMj7fuLuXd3AV8J\/+La\nDyb6A1CO4zpiqRLP5cpyf6wkSDVdIyGgHXmyBgT1T7Y5778QYsrR05TbPIc7jQXy\nCG+Epam4BwhNf9CcQyt6bCyIKXQ8ScZn3wFfOVG93UwU1zRlTDM37BNXGziM2S14\n1unQyMgoDljoWIIRfqSg1Zj1wtdI2DhcbgixZFCt8ifZZYXP+eHOVpk2b81QzWSY\npFEQ+ay9AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEATPINk\/17H+RLz459iCVQAGes\n8kc5sxYj3CkMlWrGMiCxvsgu2kak6dCa0f3DfiVt54Fry7s0OklHiZmipoiF4RCt\nyJwUSAzRrZFAbkpDg8oIu4Ui\/Bt13kY7xON+u4m0IgkLZSE+8BSjMrfjVvVxe+qH\n5i7X\/ibUTDjgyfdA8XI="],"x5t":"KGApLybHWJmBwZGgBk07AlRD9nU","x5t#256":"YD12k6kc4xuh_5vEHMyyOFpGs6VqTyaKMlxg0Nt2crA"}', json_encode($result)); + self::assertInstanceOf(JWKInterface::class, $result); + self::assertEquals('{"kty":"RSA","n":"qzPFsFIf3cSes25DloV3y3d8gKMcZVE_EQ_6e_MZnyqDbuOEP39yQs3aunzbZRoO8Xw8lLoJNduiKKsco7odI753kBvz1eLyke-sWBVZttbnYyz9AE3ZXfAb9rHW2AxgIqHNsQOsLJS_douGZwxawNdE90WM4QG80bDpkxxHfObtmZIbZoOFSeokDHA5jokQGzJ65t6ARtQOIht84pIlAr8RO0vCUiJ0R4TdAffbdIukMcVfSoZBlZJ_q-yBtPoqB1Nmr1x1FqCtR81NrEtdp7CUHy4yLIskMzHTwJL24dx8zPS9RBIAuR6HO6soQwQgKY5NYmyaZGuWDrzw0Lor9_jjcx3x7NlXEUffGyUdT_bZ6owsgd-SpvnbqXPXIf-u5JH7afSUuajytHnGVilQOpEg06B0F-AumUEx8vdLPczCx0CED11mhRhT1eRQPJlzxgqA22SN1Yz0P55R8QbfFYcflpEtZbHmdvwMSipEoEUyI8aA9z268oNVnnAGhG3cOqk8-4HOvtqZ9LIc8jUcQLtWX-PJav9EePnWuV6pFwzvKcwl09m08xIfIh9DvFVJz3Fks-X6c1tVo2Valftlj8fnlzu9WgownkwhM4KN2UpcHcff4G-v9zckhcpROSzZ1ax5mPOUMF6B2OVawMhf3li9A9JEpBDxVu2-gZU6NbhvfH1f4PdNPUnlasPylHn4qz4S6_V1fuxho-2O_V72w3V5FDBi-m2D9vDVQvJtuoiJxUEyOWaxsenuzoFlq3jNHwm0SiabwVjaMyre4qktmHopLuLX2ixME3rbTtaXLAaly-t2X6oS4nFyhwP9f_WbJb4Yh_RDxksPj1hR_4nH43NTYjZBlLDM0YRb4xRzFmATQOUhPou6LSUbl8Tl2z7WYFzlcKgHwkWRaTGUV8Sz_h-_IfgZDvCtyyLhzvWOmfJBhsV1nTbDrr8DivZGH5huBNH88v_gbCVw36aAjH8BnmcHQ0ImUUwXoiB1iWSWB3x1xdYnAyQf5RV2PK86wVc4EBRxW6MeJHWZr-kFgHtcwk2ys8MewL8xlKs1S64APAWtD-WsLGEnUVMfM5EuWjoS9kB4BI4DC6M0uyDjaCuFu80wMmWfx9C3-Y2x7l5Lw0G4gRcUk-F3ONtKfsxMqAmV6aUVkXmdkX5LLa105CpIVqflM40CPl5mlVGEFlTf9u0zclyQ0_-qWt78ZzkpolPj9XKHikdYA_DKbvtfgtgNC07GIwBctoQsOrKGOxigeWzrAwfS9S5Wt7hvcs2R0Y04rXoeSTPbHWLumsJYLxC2HPtam3IxQJzCljIOFB5Sqi9WLO5l_yjmUGS2Fzy5DkuyFuC3o79rB-Vu0zpHQ5sHdbyYkfvi3QZx4jLuj2ki-3_1Qj7RfVdd1yWeudnFUy5QGfWh3-VoaK9UIZ1EeX62owXTGNOJovn9yMdwbXmy75qrkPXadFQG3lnuqq_Ucd8ZAYJvwfQb6uhTSv1kSFCpxyyaSBYjLU44QDF6FRh_QHLMBM2DVasOT0hsF2UWsIXUneoJHk_qVZSRmj5EDaIrWAUEZfL_geiwcW3_L3Y9iaHMkB93fHNsVEpLmTO-vLHZHYN0c-kKNVBw_40xGZ5ZgPJlT4JZVvBKuB2ka2OsSLcRXZvzZZZTnrRHb_9dngGkFpI0gc6gFu2d1mPIIFp6JS7AJ4_sYKE4yxuGG7IsA4ErnNBEK9Sr1XSu0_KfcIv63dm_AybDg1vmqMLCl5EiP9OIFsWdIM42970PH9h8Ri7KUn0D53RSRVkV38NW312A2JYCHfEfbIxyibEIrsusib98x6Bedh-3BpsWyih2XlDT6AFwJdD0cc_Uf56Vqv9waUtsSx-1xBwliZ35MKq-IfV6hcLnFgLhxsqakV8aFLAEzI8Ulned6zjRAC28aaDOZcFdKEMD0wHPUW8-9UTQxAgug8otEITWSkKubyXbdofpVa9Xwjq1-jLb4eylqey0RokKrHO6B7F3KtUF8Zsm0mGEg7nvUhjEBFL3AqkLke5Nb_78uqb3tzZF3iO6ghENar9s1DUIYqNkbMSeh7smgER_PBUB0MGMqRnx8qcr5t5yBEurZ7qq7-LYoJOoc6UwaPrQN_AFRou4ugiRrxIrvOwrDPr4y2zoi9XKnBBuYMnt2AkGVCNIA0WOKgmex4x_2Nri2JlRieAPwNPfW5PLkyPVRfw0dNzhg7csMl1Wctdw1JpHJhgMswuhYhRWGyzYWE4ZU8lvQWqA42MOKfUixAV4LmEzGz2eRQSPGWjLC85-mcxf_vssmD-mbuJAjzlLDzzwllrTDCQrt18DftpAAHhD5hG2HmQH9RDzcS3sniIx4p2zyqBHVQsWM74BlQjbODjgHRHerTgxYaNmh4KRA38lmb9omrUhI2Q0Lj5CF2of_Apd7fo8u6LpBpdEtirkn_7-9vPPiGerClV6lSjoNi_I_hHCneAq-3KZq7hM5XliJPvUrws_m0X5n6_fazdk-gOohEuF0Aq_1I5633sS-DGrFyan2K7oeoBGQN994-kweTR0lLko14nC5wnvizbsv7sDUNJTjM7LMYIrhKEILTjjGQ6WuCkYhQuM4RAnx74jFIchW8pS1tEnUcIOyBWgFB9M2zdbNmJg7vH43mmX408jMYVKs9CQz2Y7Vu33S0dSp9sWxM1KUREFVy1xTbVgKNxLxOzXiLOjm_b4EifAHZh_KTf0POm5RESU-TSrO29y5puTHL-PLuOE30jrxXaKhW5UzmQLUMhBGI7geYP6fE6QxyUi0gD_tLdMmzxTlZiOXkE6HnBQ-3Ar54uA-RFUhnzU-XT3wm--eINsvqyrHCyLQlmM71aBXnMlH5g0NJjdm42XSecTopWfFCfcNe1-ufpUuMGGg0C3LxVN5fkTmB2_6gai0AHh4dNhefGkKCZ5OcSNtA_UUI1nKr_wgPTI4X1catN9RE9mMYhOt-I5gOVRCihxDcUcBl2apUaFK-jHPs5rABqhykbi_dOS-zy42I86Vcu4B-_0GNlRIPRLZWFIhNRy_kfCOq4kb4SK9DjTvHsaq6YWMoL9Jk3JiqvH4yrMZ6T-XEFdJ8DGSc41lo1YJwhFUu0eGbGFKxyUBrHv1l9ByPrqWaiepnBBsda4y8G3SoiCfndwkbvLeE5ykYgurPpkYX_bau2PqsoAkiJ_GmbitKpXD71C5PmzvzLvpxkgC6hQq-v4L4WLelADvBpeikX9k23qhR5H3mkzNeMZgHyoFisy161cDgOlcg64g6C2UzJKlb5C1tOlQwM3fdm7cjBJXOjuxgi8Ewx6ov90eeaqIEfFvnUu1_IC_tFve9P_Us21Ak53vwStlHueYHtedJsHg84C5Ppt_z1LFR3Hh8m1pOnlb3kJw5eGpvsXweZrIIN0cvwz-NZ_orIxjPxLf23wy-y-lhObK17BfX1g-p759XtRSaG4Rj_QedauXHAA-SKgvwAOY3kBuWo9Oxx73JbC1kov55TkecHj2lXO_o49O5LCOa_h0nHIVb3JIGWot11sF_6zwNzFM2WtHFNu7Iu9hllumC8rvz3HEbylvSPQYzBQKy8NSyC6T9wbH6cAYY-vl59q1J4DwBH3DHKoMAec8InlnBO_ekJa8SMdQMZxov0BaxJc0W__29w2Sza0cBsMslfpRIWRWMb4jNpyvCyEVxrGf7AakOl0_9P3JCQ2o8cuf-BGg_z_iQ3aTMYVWi_pWuxnhh5NchjQU8C3dxvnEd0Te9mmDlvZh-N9GULo0tlzHz3WZniUp7mxVQ3nkeS31M0LIIF3SetSMjXrGJ_4bzAnb3EjH44eFuvgOiJ8ChXLCmHLtIpFa0WSC6YVpBxqfPrxke-DyB2Lvz_46MSQ4iKvCFhdYWxBtwXCZDN5Dt4XFpMknL_VnuVU8a5_rRqpEebv_VF1pBZsvfTK6UXFWAApFvL4ebApuLsFInG3uk89N2SbenTTiBGWZWZjsEFsvf3iSFZdQ2bgKSLmJIsuXV1mUPkzGEr8SsPLDKhGNZBevtka-CfnukEPn7a3K_O5sYcccEtYwx0VNiC6dWu7B_-pflffa1m4pbhdg6KfykDO9_jU_LE692dhWUzbv977zGUlOnmsEMeqmSTo9V5Hv0UsEDGEjoe9piKidoZ8JdAq1WIpSBfW9M2wtkZHbi2nlaBnKJuTaaNs_nWjbG4y73hEqEqRlQMKrLsJU7rsmy3h6x6-J_tXfkKpWu_Z_PhR-ca2RV4ldwUNejBhBomg-6bcSq1lHXGTpwc0wSDmIUfE2W6ZZysaFpmGpTDFjTDqfeeAwwbzShK7Uc-OnJVNiQ5w1KALJNjXURSfI61vyWRBMtFHaC7t6ixwDfv6pqEa0xeDe4xf4Z1qdX1Zfs4xpdAyzZWmslUsXIYDtiTXq6NYGjnCEPYqneVGOWhP6re0UfzeqqB6p6_L42UoqFrrjU7jnEWRlz6gxdU9qOJgLX3u6CIYtN6b44tpsqA23fNBiuf4SqoYimbd2YVjXFRFFNZ2XqJ-wBqYcD5xIfudMN6W5cAD4p5cTQ11_-EqIp8rDxiWOs-PN8SQTIE7ZYQ6na-lSITpchNybreE9SqhzluoY71DN8oQuUJHonrAW5Hh_VroGBxpbO9XdNhw0XrC-S9iH9DDEUedanM2DznPUZsHHutG8H0K9AEyWRS01sAwrF73ZG57qy5IciYMHZuFbkY0lzwbF-vd15jgNfP4JTmZD2sVWwVgI7Qp9T2hd0uuZL_huHl2baRCyC_DSI9c6p3q9Ud_tBN_yCcNcUVx0rS6EGfzM8VYOGwyiBVBAgVDjBXiKBsUVWA3ljfOtYhLKBDHkqhvoQaczSI2fKX7L7cwgXeBdckoaNhno6mCpZBamuyBZ1Iy6TnguQi59MCCKdiczIpfeumbSDEovy2IbQmPqld_JI6WOufgldiITu3hXR5KNazan2mc3NrKu1SEXZpdzb4wJZZ26U_1xE2GLMJru05yZoVNEkN72DhagM1R5oqHwPzRcn3ahdYvUzDoP6UHEpa76A23lqafY7F98l66hmAnXXlEKzEVwthYoxWANYtVsxs9NktNJdNMB3OCMnCo9BWkefmjlrzMJSkBP_1mfxN2o3W1tMNXpk5OQPO20_eWPF3iYhobSo8fcxzXtw9bg1BXr0TADj0hl_z4jw93wVGGLlsA3qYstay0I9yJgHBZmhxc7V1JzNWdwxIDmRgA5eCm1ELVBxpIup9WGZlUs1rzwqXzI-37i7l3dwFfCf_i2g8m-gNQjuM6YqkSz-XKcn-sJEg1XSMhoB15sgYE9U-2Oe-_EGLK0dOU2zyHO40F8ghvhKWpuAcITX_QnEMremwsiCl0PEnGZ98BXzlRvd1MFNc0ZUwzN-wTVxs4jNkteNbp0MjIKA5Y6FiCEX6koNWY9cLXSNg4XG4IsWRQrfIn2WWFz_nhzlaZNm_NUM1kmKRREPmsvQ","e":"AQAB","x5c":["MIIR2jCCEUMCAg4EMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYDVQQGEwJKUDEOMAwG\nA1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxETAPBgNVBAoTCEZyYW5rNERE\nMRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWBgNVBAMTD0ZyYW5rNEREIFdl\nYiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmcmFuazRkZC5jb20wHhcNMTIx\nMDEwMTIxNzQ5WhcNMTcxMDA5MTIxNzQ5WjBKMQswCQYDVQQGDAJKUDEOMAwGA1UE\nCAwFVG9reW8xETAPBgNVBAoMCEZyYW5rNEREMRgwFgYDVQQDDA93d3cuZXhhbXBs\nZS5jb20wghAiMA0GCSqGSIb3DQEBAQUAA4IQDwAwghAKAoIQAQCrM8WwUh\/dxJ6z\nbkOWhXfLd3yAoxxlUT8RD\/p78xmfKoNu44Q\/f3JCzdq6fNtlGg7xfDyUugk126Io\nqxyjuh0jvneQG\/PV4vKR76xYFVm21udjLP0ATdld8Bv2sdbYDGAioc2xA6wslL92\ni4ZnDFrA10T3RYzhAbzRsOmTHEd85u2Zkhtmg4VJ6iQMcDmOiRAbMnrm3oBG1A4i\nG3zikiUCvxE7S8JSInRHhN0B99t0i6QxxV9KhkGVkn+r7IG0+ioHU2avXHUWoK1H\nzU2sS12nsJQfLjIsiyQzMdPAkvbh3HzM9L1EEgC5Hoc7qyhDBCApjk1ibJpka5YO\nvPDQuiv3+ONzHfHs2VcRR98bJR1P9tnqjCyB35Km+dupc9ch\/67kkftp9JS5qPK0\necZWKVA6kSDToHQX4C6ZQTHy90s9zMLHQIQPXWaFGFPV5FA8mXPGCoDbZI3VjPQ\/\nnlHxBt8Vhx+WkS1lseZ2\/AxKKkSgRTIjxoD3Pbryg1WecAaEbdw6qTz7gc6+2pn0\nshzyNRxAu1Zf48lq\/0R4+da5XqkXDO8pzCXT2bTzEh8iH0O8VUnPcWSz5fpzW1Wj\nZVqV+2WPx+eXO71aCjCeTCEzgo3ZSlwdx9\/gb6\/3NySFylE5LNnVrHmY85QwXoHY\n5VrAyF\/eWL0D0kSkEPFW7b6BlTo1uG98fV\/g9009SeVqw\/KUefirPhLr9XV+7GGj\n7Y79XvbDdXkUMGL6bYP28NVC8m26iInFQTI5ZrGx6e7OgWWreM0fCbRKJpvBWNoz\nKt7iqS2Yeiku4tfaLEwTettO1pcsBqXL63ZfqhLicXKHA\/1\/9ZslvhiH9EPGSw+P\nWFH\/icfjc1NiNkGUsMzRhFvjFHMWYBNA5SE+i7otJRuXxOXbPtZgXOVwqAfCRZFp\nMZRXxLP+H78h+BkO8K3LIuHO9Y6Z8kGGxXWdNsOuvwOK9kYfmG4E0fzy\/+BsJXDf\npoCMfwGeZwdDQiZRTBeiIHWJZJYHfHXF1icDJB\/lFXY8rzrBVzgQFHFbox4kdZmv\n6QWAe1zCTbKzwx7AvzGUqzVLrgA8Ba0P5awsYSdRUx8zkS5aOhL2QHgEjgMLozS7\nIONoK4W7zTAyZZ\/H0Lf5jbHuXkvDQbiBFxST4Xc420p+zEyoCZXppRWReZ2Rfkst\nrXTkKkhWp+UzjQI+XmaVUYQWVN\/27TNyXJDT\/6pa3vxnOSmiU+P1coeKR1gD8Mpu\n+1+C2A0LTsYjAFy2hCw6soY7GKB5bOsDB9L1Lla3uG9yzZHRjTiteh5JM9sdYu6a\nwlgvELYc+1qbcjFAnMKWMg4UHlKqL1Ys7mX\/KOZQZLYXPLkOS7IW4Lejv2sH5W7T\nOkdDmwd1vJiR++LdBnHiMu6PaSL7f\/VCPtF9V13XJZ652cVTLlAZ9aHf5Whor1Qh\nnUR5frajBdMY04mi+f3Ix3BtebLvmquQ9dp0VAbeWe6qr9Rx3xkBgm\/B9Bvq6FNK\n\/WRIUKnHLJpIFiMtTjhAMXoVGH9AcswEzYNVqw5PSGwXZRawhdSd6gkeT+pVlJGa\nPkQNoitYBQRl8v+B6LBxbf8vdj2JocyQH3d8c2xUSkuZM768sdkdg3Rz6Qo1UHD\/\njTEZnlmA8mVPgllW8Eq4HaRrY6xItxFdm\/NlllOetEdv\/12eAaQWkjSBzqAW7Z3W\nY8ggWnolLsAnj+xgoTjLG4YbsiwDgSuc0EQr1KvVdK7T8p9wi\/rd2b8DJsODW+ao\nwsKXkSI\/04gWxZ0gzjb3vQ8f2HxGLspSfQPndFJFWRXfw1bfXYDYlgId8R9sjHKJ\nsQiuy6yJv3zHoF52H7cGmxbKKHZeUNPoAXAl0PRxz9R\/npWq\/3BpS2xLH7XEHCWJ\nnfkwqr4h9XqFwucWAuHGypqRXxoUsATMjxSWd53rONEALbxpoM5lwV0oQwPTAc9R\nbz71RNDECC6Dyi0QhNZKQq5vJdt2h+lVr1fCOrX6Mtvh7KWp7LRGiQqsc7oHsXcq\n1QXxmybSYYSDue9SGMQEUvcCqQuR7k1v\/vy6pve3NkXeI7qCEQ1qv2zUNQhio2Rs\nxJ6HuyaARH88FQHQwYypGfHypyvm3nIES6tnuqrv4tigk6hzpTBo+tA38AVGi7i6\nCJGvEiu87CsM+vjLbOiL1cqcEG5gye3YCQZUI0gDRY4qCZ7HjH\/Y2uLYmVGJ4A\/A\n099bk8uTI9VF\/DR03OGDtywyXVZy13DUmkcmGAyzC6FiFFYbLNhYThlTyW9BaoDj\nYw4p9SLEBXguYTMbPZ5FBI8ZaMsLzn6ZzF\/++yyYP6Zu4kCPOUsPPPCWWtMMJCu3\nXwN+2kAAeEPmEbYeZAf1EPNxLeyeIjHinbPKoEdVCxYzvgGVCNs4OOAdEd6tODFh\no2aHgpEDfyWZv2iatSEjZDQuPkIXah\/8Cl3t+jy7oukGl0S2KuSf\/v7288+IZ6sK\nVXqVKOg2L8j+EcKd4Cr7cpmruEzleWIk+9SvCz+bRfmfr99rN2T6A6iES4XQCr\/U\njnrfexL4MasXJqfYruh6gEZA333j6TB5NHSUuSjXicLnCe+LNuy\/uwNQ0lOMzssx\ngiuEoQgtOOMZDpa4KRiFC4zhECfHviMUhyFbylLW0SdRwg7IFaAUH0zbN1s2YmDu\n8fjeaZfjTyMxhUqz0JDPZjtW7fdLR1Kn2xbEzUpREQVXLXFNtWAo3EvE7NeIs6Ob\n9vgSJ8AdmH8pN\/Q86blERJT5NKs7b3Lmm5Mcv48u44TfSOvFdoqFblTOZAtQyEEY\njuB5g\/p8TpDHJSLSAP+0t0ybPFOVmI5eQToecFD7cCvni4D5EVSGfNT5dPfCb754\ng2y+rKscLItCWYzvVoFecyUfmDQ0mN2bjZdJ5xOilZ8UJ9w17X65+lS4wYaDQLcv\nFU3l+ROYHb\/qBqLQAeHh02F58aQoJnk5xI20D9RQjWcqv\/CA9MjhfVxq031ET2Yx\niE634jmA5VEKKHENxRwGXZqlRoUr6Mc+zmsAGqHKRuL905L7PLjYjzpVy7gH7\/QY\n2VEg9EtlYUiE1HL+R8I6riRvhIr0ONO8exqrphYygv0mTcmKq8fjKsxnpP5cQV0n\nwMZJzjWWjVgnCEVS7R4ZsYUrHJQGse\/WX0HI+upZqJ6mcEGx1rjLwbdKiIJ+d3CR\nu8t4TnKRiC6s+mRhf9tq7Y+qygCSIn8aZuK0qlcPvULk+bO\/Mu+nGSALqFCr6\/gv\nhYt6UAO8Gl6KRf2TbeqFHkfeaTM14xmAfKgWKzLXrVwOA6VyDriDoLZTMkqVvkLW\n06VDAzd92btyMElc6O7GCLwTDHqi\/3R55qogR8W+dS7X8gL+0W970\/9SzbUCTne\/\nBK2Ue55ge150mweDzgLk+m3\/PUsVHceHybWk6eVveQnDl4am+xfB5msgg3Ry\/DP4\n1n+isjGM\/Et\/bfDL7L6WE5srXsF9fWD6nvn1e1FJobhGP9B51q5ccAD5IqC\/AA5j\neQG5aj07HHvclsLWSi\/nlOR5wePaVc7+jj07ksI5r+HScchVvckgZai3XWwX\/rPA\n3MUzZa0cU27si72GWW6YLyu\/PccRvKW9I9BjMFArLw1LILpP3BsfpwBhj6+Xn2rU\nngPAEfcMcqgwB5zwieWcE796QlrxIx1AxnGi\/QFrElzRb\/\/b3DZLNrRwGwyyV+lE\nhZFYxviM2nK8LIRXGsZ\/sBqQ6XT\/0\/ckJDajxy5\/4EaD\/P+JDdpMxhVaL+la7GeG\nHk1yGNBTwLd3G+cR3RN72aYOW9mH430ZQujS2XMfPdZmeJSnubFVDeeR5LfUzQsg\ngXdJ61IyNesYn\/hvMCdvcSMfjh4W6+A6InwKFcsKYcu0ikVrRZILphWkHGp8+vGR\n74PIHYu\/P\/joxJDiIq8IWF1hbEG3BcJkM3kO3hcWkyScv9We5VTxrn+tGqkR5u\/9\nUXWkFmy99MrpRcVYACkW8vh5sCm4uwUicbe6Tz03ZJt6dNOIEZZlZmOwQWy9\/eJI\nVl1DZuApIuYkiy5dXWZQ+TMYSvxKw8sMqEY1kF6+2Rr4J+e6QQ+ftrcr87mxhxxw\nS1jDHRU2ILp1a7sH\/6l+V99rWbiluF2Dop\/KQM73+NT8sTr3Z2FZTNu\/3vvMZSU6\neawQx6qZJOj1Xke\/RSwQMYSOh72mIqJ2hnwl0CrVYilIF9b0zbC2RkduLaeVoGco\nm5Npo2z+daNsbjLveESoSpGVAwqsuwlTuuybLeHrHr4n+1d+Qqla79n8+FH5xrZF\nXiV3BQ16MGEGiaD7ptxKrWUdcZOnBzTBIOYhR8TZbplnKxoWmYalMMWNMOp954DD\nBvNKErtRz46clU2JDnDUoAsk2NdRFJ8jrW\/JZEEy0UdoLu3qLHAN+\/qmoRrTF4N7\njF\/hnWp1fVl+zjGl0DLNlaayVSxchgO2JNero1gaOcIQ9iqd5UY5aE\/qt7RR\/N6q\noHqnr8vjZSioWuuNTuOcRZGXPqDF1T2o4mAtfe7oIhi03pvji2myoDbd80GK5\/hK\nqhiKZt3ZhWNcVEUU1nZeon7AGphwPnEh+50w3pblwAPinlxNDXX\/4SoinysPGJY6\nz483xJBMgTtlhDqdr6VIhOlyE3Jut4T1KqHOW6hjvUM3yhC5QkeiesBbkeH9WugY\nHGls71d02HDResL5L2If0MMRR51qczYPOc9Rmwce60bwfQr0ATJZFLTWwDCsXvdk\nbnurLkhyJgwdm4VuRjSXPBsX693XmOA18\/glOZkPaxVbBWAjtCn1PaF3S65kv+G4\neXZtpELIL8NIj1zqner1R3+0E3\/IJw1xRXHStLoQZ\/MzxVg4bDKIFUECBUOMFeIo\nGxRVYDeWN861iEsoEMeSqG+hBpzNIjZ8pfsvtzCBd4F1ySho2GejqYKlkFqa7IFn\nUjLpOeC5CLn0wIIp2JzMil966ZtIMSi\/LYhtCY+qV38kjpY65+CV2IhO7eFdHko1\nrNqfaZzc2sq7VIRdml3NvjAllnbpT\/XETYYswmu7TnJmhU0SQ3vYOFqAzVHmiofA\n\/NFyfdqF1i9TMOg\/pQcSlrvoDbeWpp9jsX3yXrqGYCddeUQrMRXC2FijFYA1i1Wz\nGz02S00l00wHc4IycKj0FaR5+aOWvMwlKQE\/\/WZ\/E3ajdbW0w1emTk5A87bT95Y8\nXeJiGhtKjx9zHNe3D1uDUFevRMAOPSGX\/PiPD3fBUYYuWwDepiy1rLQj3ImAcFma\nHFztXUnM1Z3DEgOZGADl4KbUQtUHGki6n1YZmVSzWvPCpfMj7fuLuXd3AV8J\/+La\nDyb6A1CO4zpiqRLP5cpyf6wkSDVdIyGgHXmyBgT1T7Y5778QYsrR05TbPIc7jQXy\nCG+Epam4BwhNf9CcQyt6bCyIKXQ8ScZn3wFfOVG93UwU1zRlTDM37BNXGziM2S14\n1unQyMgoDljoWIIRfqSg1Zj1wtdI2DhcbgixZFCt8ifZZYXP+eHOVpk2b81QzWSY\npFEQ+ay9AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEATPINk\/17H+RLz459iCVQAGes\n8kc5sxYj3CkMlWrGMiCxvsgu2kak6dCa0f3DfiVt54Fry7s0OklHiZmipoiF4RCt\nyJwUSAzRrZFAbkpDg8oIu4Ui\/Bt13kY7xON+u4m0IgkLZSE+8BSjMrfjVvVxe+qH\n5i7X\/ibUTDjgyfdA8XI="],"x5t":"KGApLybHWJmBwZGgBk07AlRD9nU","x5t#256":"YD12k6kc4xuh_5vEHMyyOFpGs6VqTyaKMlxg0Nt2crA"}', json_encode($result)); } public function testCreateFrom32kRSACertificateFileInPEMFormat() { $result = JWKFactory::createFromCertificateFile(__DIR__.'/../Certificates/RSA/PEM/32k-rsa-example-cert.pem'); - $this->assertInstanceOf(JWKInterface::class, $result); - $this->assertEquals('{"kty":"RSA","n":"qzPFsFIf3cSes25DloV3y3d8gKMcZVE_EQ_6e_MZnyqDbuOEP39yQs3aunzbZRoO8Xw8lLoJNduiKKsco7odI753kBvz1eLyke-sWBVZttbnYyz9AE3ZXfAb9rHW2AxgIqHNsQOsLJS_douGZwxawNdE90WM4QG80bDpkxxHfObtmZIbZoOFSeokDHA5jokQGzJ65t6ARtQOIht84pIlAr8RO0vCUiJ0R4TdAffbdIukMcVfSoZBlZJ_q-yBtPoqB1Nmr1x1FqCtR81NrEtdp7CUHy4yLIskMzHTwJL24dx8zPS9RBIAuR6HO6soQwQgKY5NYmyaZGuWDrzw0Lor9_jjcx3x7NlXEUffGyUdT_bZ6owsgd-SpvnbqXPXIf-u5JH7afSUuajytHnGVilQOpEg06B0F-AumUEx8vdLPczCx0CED11mhRhT1eRQPJlzxgqA22SN1Yz0P55R8QbfFYcflpEtZbHmdvwMSipEoEUyI8aA9z268oNVnnAGhG3cOqk8-4HOvtqZ9LIc8jUcQLtWX-PJav9EePnWuV6pFwzvKcwl09m08xIfIh9DvFVJz3Fks-X6c1tVo2Valftlj8fnlzu9WgownkwhM4KN2UpcHcff4G-v9zckhcpROSzZ1ax5mPOUMF6B2OVawMhf3li9A9JEpBDxVu2-gZU6NbhvfH1f4PdNPUnlasPylHn4qz4S6_V1fuxho-2O_V72w3V5FDBi-m2D9vDVQvJtuoiJxUEyOWaxsenuzoFlq3jNHwm0SiabwVjaMyre4qktmHopLuLX2ixME3rbTtaXLAaly-t2X6oS4nFyhwP9f_WbJb4Yh_RDxksPj1hR_4nH43NTYjZBlLDM0YRb4xRzFmATQOUhPou6LSUbl8Tl2z7WYFzlcKgHwkWRaTGUV8Sz_h-_IfgZDvCtyyLhzvWOmfJBhsV1nTbDrr8DivZGH5huBNH88v_gbCVw36aAjH8BnmcHQ0ImUUwXoiB1iWSWB3x1xdYnAyQf5RV2PK86wVc4EBRxW6MeJHWZr-kFgHtcwk2ys8MewL8xlKs1S64APAWtD-WsLGEnUVMfM5EuWjoS9kB4BI4DC6M0uyDjaCuFu80wMmWfx9C3-Y2x7l5Lw0G4gRcUk-F3ONtKfsxMqAmV6aUVkXmdkX5LLa105CpIVqflM40CPl5mlVGEFlTf9u0zclyQ0_-qWt78ZzkpolPj9XKHikdYA_DKbvtfgtgNC07GIwBctoQsOrKGOxigeWzrAwfS9S5Wt7hvcs2R0Y04rXoeSTPbHWLumsJYLxC2HPtam3IxQJzCljIOFB5Sqi9WLO5l_yjmUGS2Fzy5DkuyFuC3o79rB-Vu0zpHQ5sHdbyYkfvi3QZx4jLuj2ki-3_1Qj7RfVdd1yWeudnFUy5QGfWh3-VoaK9UIZ1EeX62owXTGNOJovn9yMdwbXmy75qrkPXadFQG3lnuqq_Ucd8ZAYJvwfQb6uhTSv1kSFCpxyyaSBYjLU44QDF6FRh_QHLMBM2DVasOT0hsF2UWsIXUneoJHk_qVZSRmj5EDaIrWAUEZfL_geiwcW3_L3Y9iaHMkB93fHNsVEpLmTO-vLHZHYN0c-kKNVBw_40xGZ5ZgPJlT4JZVvBKuB2ka2OsSLcRXZvzZZZTnrRHb_9dngGkFpI0gc6gFu2d1mPIIFp6JS7AJ4_sYKE4yxuGG7IsA4ErnNBEK9Sr1XSu0_KfcIv63dm_AybDg1vmqMLCl5EiP9OIFsWdIM42970PH9h8Ri7KUn0D53RSRVkV38NW312A2JYCHfEfbIxyibEIrsusib98x6Bedh-3BpsWyih2XlDT6AFwJdD0cc_Uf56Vqv9waUtsSx-1xBwliZ35MKq-IfV6hcLnFgLhxsqakV8aFLAEzI8Ulned6zjRAC28aaDOZcFdKEMD0wHPUW8-9UTQxAgug8otEITWSkKubyXbdofpVa9Xwjq1-jLb4eylqey0RokKrHO6B7F3KtUF8Zsm0mGEg7nvUhjEBFL3AqkLke5Nb_78uqb3tzZF3iO6ghENar9s1DUIYqNkbMSeh7smgER_PBUB0MGMqRnx8qcr5t5yBEurZ7qq7-LYoJOoc6UwaPrQN_AFRou4ugiRrxIrvOwrDPr4y2zoi9XKnBBuYMnt2AkGVCNIA0WOKgmex4x_2Nri2JlRieAPwNPfW5PLkyPVRfw0dNzhg7csMl1Wctdw1JpHJhgMswuhYhRWGyzYWE4ZU8lvQWqA42MOKfUixAV4LmEzGz2eRQSPGWjLC85-mcxf_vssmD-mbuJAjzlLDzzwllrTDCQrt18DftpAAHhD5hG2HmQH9RDzcS3sniIx4p2zyqBHVQsWM74BlQjbODjgHRHerTgxYaNmh4KRA38lmb9omrUhI2Q0Lj5CF2of_Apd7fo8u6LpBpdEtirkn_7-9vPPiGerClV6lSjoNi_I_hHCneAq-3KZq7hM5XliJPvUrws_m0X5n6_fazdk-gOohEuF0Aq_1I5633sS-DGrFyan2K7oeoBGQN994-kweTR0lLko14nC5wnvizbsv7sDUNJTjM7LMYIrhKEILTjjGQ6WuCkYhQuM4RAnx74jFIchW8pS1tEnUcIOyBWgFB9M2zdbNmJg7vH43mmX408jMYVKs9CQz2Y7Vu33S0dSp9sWxM1KUREFVy1xTbVgKNxLxOzXiLOjm_b4EifAHZh_KTf0POm5RESU-TSrO29y5puTHL-PLuOE30jrxXaKhW5UzmQLUMhBGI7geYP6fE6QxyUi0gD_tLdMmzxTlZiOXkE6HnBQ-3Ar54uA-RFUhnzU-XT3wm--eINsvqyrHCyLQlmM71aBXnMlH5g0NJjdm42XSecTopWfFCfcNe1-ufpUuMGGg0C3LxVN5fkTmB2_6gai0AHh4dNhefGkKCZ5OcSNtA_UUI1nKr_wgPTI4X1catN9RE9mMYhOt-I5gOVRCihxDcUcBl2apUaFK-jHPs5rABqhykbi_dOS-zy42I86Vcu4B-_0GNlRIPRLZWFIhNRy_kfCOq4kb4SK9DjTvHsaq6YWMoL9Jk3JiqvH4yrMZ6T-XEFdJ8DGSc41lo1YJwhFUu0eGbGFKxyUBrHv1l9ByPrqWaiepnBBsda4y8G3SoiCfndwkbvLeE5ykYgurPpkYX_bau2PqsoAkiJ_GmbitKpXD71C5PmzvzLvpxkgC6hQq-v4L4WLelADvBpeikX9k23qhR5H3mkzNeMZgHyoFisy161cDgOlcg64g6C2UzJKlb5C1tOlQwM3fdm7cjBJXOjuxgi8Ewx6ov90eeaqIEfFvnUu1_IC_tFve9P_Us21Ak53vwStlHueYHtedJsHg84C5Ppt_z1LFR3Hh8m1pOnlb3kJw5eGpvsXweZrIIN0cvwz-NZ_orIxjPxLf23wy-y-lhObK17BfX1g-p759XtRSaG4Rj_QedauXHAA-SKgvwAOY3kBuWo9Oxx73JbC1kov55TkecHj2lXO_o49O5LCOa_h0nHIVb3JIGWot11sF_6zwNzFM2WtHFNu7Iu9hllumC8rvz3HEbylvSPQYzBQKy8NSyC6T9wbH6cAYY-vl59q1J4DwBH3DHKoMAec8InlnBO_ekJa8SMdQMZxov0BaxJc0W__29w2Sza0cBsMslfpRIWRWMb4jNpyvCyEVxrGf7AakOl0_9P3JCQ2o8cuf-BGg_z_iQ3aTMYVWi_pWuxnhh5NchjQU8C3dxvnEd0Te9mmDlvZh-N9GULo0tlzHz3WZniUp7mxVQ3nkeS31M0LIIF3SetSMjXrGJ_4bzAnb3EjH44eFuvgOiJ8ChXLCmHLtIpFa0WSC6YVpBxqfPrxke-DyB2Lvz_46MSQ4iKvCFhdYWxBtwXCZDN5Dt4XFpMknL_VnuVU8a5_rRqpEebv_VF1pBZsvfTK6UXFWAApFvL4ebApuLsFInG3uk89N2SbenTTiBGWZWZjsEFsvf3iSFZdQ2bgKSLmJIsuXV1mUPkzGEr8SsPLDKhGNZBevtka-CfnukEPn7a3K_O5sYcccEtYwx0VNiC6dWu7B_-pflffa1m4pbhdg6KfykDO9_jU_LE692dhWUzbv977zGUlOnmsEMeqmSTo9V5Hv0UsEDGEjoe9piKidoZ8JdAq1WIpSBfW9M2wtkZHbi2nlaBnKJuTaaNs_nWjbG4y73hEqEqRlQMKrLsJU7rsmy3h6x6-J_tXfkKpWu_Z_PhR-ca2RV4ldwUNejBhBomg-6bcSq1lHXGTpwc0wSDmIUfE2W6ZZysaFpmGpTDFjTDqfeeAwwbzShK7Uc-OnJVNiQ5w1KALJNjXURSfI61vyWRBMtFHaC7t6ixwDfv6pqEa0xeDe4xf4Z1qdX1Zfs4xpdAyzZWmslUsXIYDtiTXq6NYGjnCEPYqneVGOWhP6re0UfzeqqB6p6_L42UoqFrrjU7jnEWRlz6gxdU9qOJgLX3u6CIYtN6b44tpsqA23fNBiuf4SqoYimbd2YVjXFRFFNZ2XqJ-wBqYcD5xIfudMN6W5cAD4p5cTQ11_-EqIp8rDxiWOs-PN8SQTIE7ZYQ6na-lSITpchNybreE9SqhzluoY71DN8oQuUJHonrAW5Hh_VroGBxpbO9XdNhw0XrC-S9iH9DDEUedanM2DznPUZsHHutG8H0K9AEyWRS01sAwrF73ZG57qy5IciYMHZuFbkY0lzwbF-vd15jgNfP4JTmZD2sVWwVgI7Qp9T2hd0uuZL_huHl2baRCyC_DSI9c6p3q9Ud_tBN_yCcNcUVx0rS6EGfzM8VYOGwyiBVBAgVDjBXiKBsUVWA3ljfOtYhLKBDHkqhvoQaczSI2fKX7L7cwgXeBdckoaNhno6mCpZBamuyBZ1Iy6TnguQi59MCCKdiczIpfeumbSDEovy2IbQmPqld_JI6WOufgldiITu3hXR5KNazan2mc3NrKu1SEXZpdzb4wJZZ26U_1xE2GLMJru05yZoVNEkN72DhagM1R5oqHwPzRcn3ahdYvUzDoP6UHEpa76A23lqafY7F98l66hmAnXXlEKzEVwthYoxWANYtVsxs9NktNJdNMB3OCMnCo9BWkefmjlrzMJSkBP_1mfxN2o3W1tMNXpk5OQPO20_eWPF3iYhobSo8fcxzXtw9bg1BXr0TADj0hl_z4jw93wVGGLlsA3qYstay0I9yJgHBZmhxc7V1JzNWdwxIDmRgA5eCm1ELVBxpIup9WGZlUs1rzwqXzI-37i7l3dwFfCf_i2g8m-gNQjuM6YqkSz-XKcn-sJEg1XSMhoB15sgYE9U-2Oe-_EGLK0dOU2zyHO40F8ghvhKWpuAcITX_QnEMremwsiCl0PEnGZ98BXzlRvd1MFNc0ZUwzN-wTVxs4jNkteNbp0MjIKA5Y6FiCEX6koNWY9cLXSNg4XG4IsWRQrfIn2WWFz_nhzlaZNm_NUM1kmKRREPmsvQ","e":"AQAB","x5c":["MIIR2jCCEUMCAg4EMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYDVQQGEwJKUDEOMAwG\nA1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxETAPBgNVBAoTCEZyYW5rNERE\nMRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWBgNVBAMTD0ZyYW5rNEREIFdl\nYiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmcmFuazRkZC5jb20wHhcNMTIx\nMDEwMTIxNzQ5WhcNMTcxMDA5MTIxNzQ5WjBKMQswCQYDVQQGDAJKUDEOMAwGA1UE\nCAwFVG9reW8xETAPBgNVBAoMCEZyYW5rNEREMRgwFgYDVQQDDA93d3cuZXhhbXBs\nZS5jb20wghAiMA0GCSqGSIb3DQEBAQUAA4IQDwAwghAKAoIQAQCrM8WwUh\/dxJ6z\nbkOWhXfLd3yAoxxlUT8RD\/p78xmfKoNu44Q\/f3JCzdq6fNtlGg7xfDyUugk126Io\nqxyjuh0jvneQG\/PV4vKR76xYFVm21udjLP0ATdld8Bv2sdbYDGAioc2xA6wslL92\ni4ZnDFrA10T3RYzhAbzRsOmTHEd85u2Zkhtmg4VJ6iQMcDmOiRAbMnrm3oBG1A4i\nG3zikiUCvxE7S8JSInRHhN0B99t0i6QxxV9KhkGVkn+r7IG0+ioHU2avXHUWoK1H\nzU2sS12nsJQfLjIsiyQzMdPAkvbh3HzM9L1EEgC5Hoc7qyhDBCApjk1ibJpka5YO\nvPDQuiv3+ONzHfHs2VcRR98bJR1P9tnqjCyB35Km+dupc9ch\/67kkftp9JS5qPK0\necZWKVA6kSDToHQX4C6ZQTHy90s9zMLHQIQPXWaFGFPV5FA8mXPGCoDbZI3VjPQ\/\nnlHxBt8Vhx+WkS1lseZ2\/AxKKkSgRTIjxoD3Pbryg1WecAaEbdw6qTz7gc6+2pn0\nshzyNRxAu1Zf48lq\/0R4+da5XqkXDO8pzCXT2bTzEh8iH0O8VUnPcWSz5fpzW1Wj\nZVqV+2WPx+eXO71aCjCeTCEzgo3ZSlwdx9\/gb6\/3NySFylE5LNnVrHmY85QwXoHY\n5VrAyF\/eWL0D0kSkEPFW7b6BlTo1uG98fV\/g9009SeVqw\/KUefirPhLr9XV+7GGj\n7Y79XvbDdXkUMGL6bYP28NVC8m26iInFQTI5ZrGx6e7OgWWreM0fCbRKJpvBWNoz\nKt7iqS2Yeiku4tfaLEwTettO1pcsBqXL63ZfqhLicXKHA\/1\/9ZslvhiH9EPGSw+P\nWFH\/icfjc1NiNkGUsMzRhFvjFHMWYBNA5SE+i7otJRuXxOXbPtZgXOVwqAfCRZFp\nMZRXxLP+H78h+BkO8K3LIuHO9Y6Z8kGGxXWdNsOuvwOK9kYfmG4E0fzy\/+BsJXDf\npoCMfwGeZwdDQiZRTBeiIHWJZJYHfHXF1icDJB\/lFXY8rzrBVzgQFHFbox4kdZmv\n6QWAe1zCTbKzwx7AvzGUqzVLrgA8Ba0P5awsYSdRUx8zkS5aOhL2QHgEjgMLozS7\nIONoK4W7zTAyZZ\/H0Lf5jbHuXkvDQbiBFxST4Xc420p+zEyoCZXppRWReZ2Rfkst\nrXTkKkhWp+UzjQI+XmaVUYQWVN\/27TNyXJDT\/6pa3vxnOSmiU+P1coeKR1gD8Mpu\n+1+C2A0LTsYjAFy2hCw6soY7GKB5bOsDB9L1Lla3uG9yzZHRjTiteh5JM9sdYu6a\nwlgvELYc+1qbcjFAnMKWMg4UHlKqL1Ys7mX\/KOZQZLYXPLkOS7IW4Lejv2sH5W7T\nOkdDmwd1vJiR++LdBnHiMu6PaSL7f\/VCPtF9V13XJZ652cVTLlAZ9aHf5Whor1Qh\nnUR5frajBdMY04mi+f3Ix3BtebLvmquQ9dp0VAbeWe6qr9Rx3xkBgm\/B9Bvq6FNK\n\/WRIUKnHLJpIFiMtTjhAMXoVGH9AcswEzYNVqw5PSGwXZRawhdSd6gkeT+pVlJGa\nPkQNoitYBQRl8v+B6LBxbf8vdj2JocyQH3d8c2xUSkuZM768sdkdg3Rz6Qo1UHD\/\njTEZnlmA8mVPgllW8Eq4HaRrY6xItxFdm\/NlllOetEdv\/12eAaQWkjSBzqAW7Z3W\nY8ggWnolLsAnj+xgoTjLG4YbsiwDgSuc0EQr1KvVdK7T8p9wi\/rd2b8DJsODW+ao\nwsKXkSI\/04gWxZ0gzjb3vQ8f2HxGLspSfQPndFJFWRXfw1bfXYDYlgId8R9sjHKJ\nsQiuy6yJv3zHoF52H7cGmxbKKHZeUNPoAXAl0PRxz9R\/npWq\/3BpS2xLH7XEHCWJ\nnfkwqr4h9XqFwucWAuHGypqRXxoUsATMjxSWd53rONEALbxpoM5lwV0oQwPTAc9R\nbz71RNDECC6Dyi0QhNZKQq5vJdt2h+lVr1fCOrX6Mtvh7KWp7LRGiQqsc7oHsXcq\n1QXxmybSYYSDue9SGMQEUvcCqQuR7k1v\/vy6pve3NkXeI7qCEQ1qv2zUNQhio2Rs\nxJ6HuyaARH88FQHQwYypGfHypyvm3nIES6tnuqrv4tigk6hzpTBo+tA38AVGi7i6\nCJGvEiu87CsM+vjLbOiL1cqcEG5gye3YCQZUI0gDRY4qCZ7HjH\/Y2uLYmVGJ4A\/A\n099bk8uTI9VF\/DR03OGDtywyXVZy13DUmkcmGAyzC6FiFFYbLNhYThlTyW9BaoDj\nYw4p9SLEBXguYTMbPZ5FBI8ZaMsLzn6ZzF\/++yyYP6Zu4kCPOUsPPPCWWtMMJCu3\nXwN+2kAAeEPmEbYeZAf1EPNxLeyeIjHinbPKoEdVCxYzvgGVCNs4OOAdEd6tODFh\no2aHgpEDfyWZv2iatSEjZDQuPkIXah\/8Cl3t+jy7oukGl0S2KuSf\/v7288+IZ6sK\nVXqVKOg2L8j+EcKd4Cr7cpmruEzleWIk+9SvCz+bRfmfr99rN2T6A6iES4XQCr\/U\njnrfexL4MasXJqfYruh6gEZA333j6TB5NHSUuSjXicLnCe+LNuy\/uwNQ0lOMzssx\ngiuEoQgtOOMZDpa4KRiFC4zhECfHviMUhyFbylLW0SdRwg7IFaAUH0zbN1s2YmDu\n8fjeaZfjTyMxhUqz0JDPZjtW7fdLR1Kn2xbEzUpREQVXLXFNtWAo3EvE7NeIs6Ob\n9vgSJ8AdmH8pN\/Q86blERJT5NKs7b3Lmm5Mcv48u44TfSOvFdoqFblTOZAtQyEEY\njuB5g\/p8TpDHJSLSAP+0t0ybPFOVmI5eQToecFD7cCvni4D5EVSGfNT5dPfCb754\ng2y+rKscLItCWYzvVoFecyUfmDQ0mN2bjZdJ5xOilZ8UJ9w17X65+lS4wYaDQLcv\nFU3l+ROYHb\/qBqLQAeHh02F58aQoJnk5xI20D9RQjWcqv\/CA9MjhfVxq031ET2Yx\niE634jmA5VEKKHENxRwGXZqlRoUr6Mc+zmsAGqHKRuL905L7PLjYjzpVy7gH7\/QY\n2VEg9EtlYUiE1HL+R8I6riRvhIr0ONO8exqrphYygv0mTcmKq8fjKsxnpP5cQV0n\nwMZJzjWWjVgnCEVS7R4ZsYUrHJQGse\/WX0HI+upZqJ6mcEGx1rjLwbdKiIJ+d3CR\nu8t4TnKRiC6s+mRhf9tq7Y+qygCSIn8aZuK0qlcPvULk+bO\/Mu+nGSALqFCr6\/gv\nhYt6UAO8Gl6KRf2TbeqFHkfeaTM14xmAfKgWKzLXrVwOA6VyDriDoLZTMkqVvkLW\n06VDAzd92btyMElc6O7GCLwTDHqi\/3R55qogR8W+dS7X8gL+0W970\/9SzbUCTne\/\nBK2Ue55ge150mweDzgLk+m3\/PUsVHceHybWk6eVveQnDl4am+xfB5msgg3Ry\/DP4\n1n+isjGM\/Et\/bfDL7L6WE5srXsF9fWD6nvn1e1FJobhGP9B51q5ccAD5IqC\/AA5j\neQG5aj07HHvclsLWSi\/nlOR5wePaVc7+jj07ksI5r+HScchVvckgZai3XWwX\/rPA\n3MUzZa0cU27si72GWW6YLyu\/PccRvKW9I9BjMFArLw1LILpP3BsfpwBhj6+Xn2rU\nngPAEfcMcqgwB5zwieWcE796QlrxIx1AxnGi\/QFrElzRb\/\/b3DZLNrRwGwyyV+lE\nhZFYxviM2nK8LIRXGsZ\/sBqQ6XT\/0\/ckJDajxy5\/4EaD\/P+JDdpMxhVaL+la7GeG\nHk1yGNBTwLd3G+cR3RN72aYOW9mH430ZQujS2XMfPdZmeJSnubFVDeeR5LfUzQsg\ngXdJ61IyNesYn\/hvMCdvcSMfjh4W6+A6InwKFcsKYcu0ikVrRZILphWkHGp8+vGR\n74PIHYu\/P\/joxJDiIq8IWF1hbEG3BcJkM3kO3hcWkyScv9We5VTxrn+tGqkR5u\/9\nUXWkFmy99MrpRcVYACkW8vh5sCm4uwUicbe6Tz03ZJt6dNOIEZZlZmOwQWy9\/eJI\nVl1DZuApIuYkiy5dXWZQ+TMYSvxKw8sMqEY1kF6+2Rr4J+e6QQ+ftrcr87mxhxxw\nS1jDHRU2ILp1a7sH\/6l+V99rWbiluF2Dop\/KQM73+NT8sTr3Z2FZTNu\/3vvMZSU6\neawQx6qZJOj1Xke\/RSwQMYSOh72mIqJ2hnwl0CrVYilIF9b0zbC2RkduLaeVoGco\nm5Npo2z+daNsbjLveESoSpGVAwqsuwlTuuybLeHrHr4n+1d+Qqla79n8+FH5xrZF\nXiV3BQ16MGEGiaD7ptxKrWUdcZOnBzTBIOYhR8TZbplnKxoWmYalMMWNMOp954DD\nBvNKErtRz46clU2JDnDUoAsk2NdRFJ8jrW\/JZEEy0UdoLu3qLHAN+\/qmoRrTF4N7\njF\/hnWp1fVl+zjGl0DLNlaayVSxchgO2JNero1gaOcIQ9iqd5UY5aE\/qt7RR\/N6q\noHqnr8vjZSioWuuNTuOcRZGXPqDF1T2o4mAtfe7oIhi03pvji2myoDbd80GK5\/hK\nqhiKZt3ZhWNcVEUU1nZeon7AGphwPnEh+50w3pblwAPinlxNDXX\/4SoinysPGJY6\nz483xJBMgTtlhDqdr6VIhOlyE3Jut4T1KqHOW6hjvUM3yhC5QkeiesBbkeH9WugY\nHGls71d02HDResL5L2If0MMRR51qczYPOc9Rmwce60bwfQr0ATJZFLTWwDCsXvdk\nbnurLkhyJgwdm4VuRjSXPBsX693XmOA18\/glOZkPaxVbBWAjtCn1PaF3S65kv+G4\neXZtpELIL8NIj1zqner1R3+0E3\/IJw1xRXHStLoQZ\/MzxVg4bDKIFUECBUOMFeIo\nGxRVYDeWN861iEsoEMeSqG+hBpzNIjZ8pfsvtzCBd4F1ySho2GejqYKlkFqa7IFn\nUjLpOeC5CLn0wIIp2JzMil966ZtIMSi\/LYhtCY+qV38kjpY65+CV2IhO7eFdHko1\nrNqfaZzc2sq7VIRdml3NvjAllnbpT\/XETYYswmu7TnJmhU0SQ3vYOFqAzVHmiofA\n\/NFyfdqF1i9TMOg\/pQcSlrvoDbeWpp9jsX3yXrqGYCddeUQrMRXC2FijFYA1i1Wz\nGz02S00l00wHc4IycKj0FaR5+aOWvMwlKQE\/\/WZ\/E3ajdbW0w1emTk5A87bT95Y8\nXeJiGhtKjx9zHNe3D1uDUFevRMAOPSGX\/PiPD3fBUYYuWwDepiy1rLQj3ImAcFma\nHFztXUnM1Z3DEgOZGADl4KbUQtUHGki6n1YZmVSzWvPCpfMj7fuLuXd3AV8J\/+La\nDyb6A1CO4zpiqRLP5cpyf6wkSDVdIyGgHXmyBgT1T7Y5778QYsrR05TbPIc7jQXy\nCG+Epam4BwhNf9CcQyt6bCyIKXQ8ScZn3wFfOVG93UwU1zRlTDM37BNXGziM2S14\n1unQyMgoDljoWIIRfqSg1Zj1wtdI2DhcbgixZFCt8ifZZYXP+eHOVpk2b81QzWSY\npFEQ+ay9AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEATPINk\/17H+RLz459iCVQAGes\n8kc5sxYj3CkMlWrGMiCxvsgu2kak6dCa0f3DfiVt54Fry7s0OklHiZmipoiF4RCt\nyJwUSAzRrZFAbkpDg8oIu4Ui\/Bt13kY7xON+u4m0IgkLZSE+8BSjMrfjVvVxe+qH\n5i7X\/ibUTDjgyfdA8XI="],"x5t":"KGApLybHWJmBwZGgBk07AlRD9nU","x5t#256":"YD12k6kc4xuh_5vEHMyyOFpGs6VqTyaKMlxg0Nt2crA"}', json_encode($result)); + self::assertInstanceOf(JWKInterface::class, $result); + self::assertEquals('{"kty":"RSA","n":"qzPFsFIf3cSes25DloV3y3d8gKMcZVE_EQ_6e_MZnyqDbuOEP39yQs3aunzbZRoO8Xw8lLoJNduiKKsco7odI753kBvz1eLyke-sWBVZttbnYyz9AE3ZXfAb9rHW2AxgIqHNsQOsLJS_douGZwxawNdE90WM4QG80bDpkxxHfObtmZIbZoOFSeokDHA5jokQGzJ65t6ARtQOIht84pIlAr8RO0vCUiJ0R4TdAffbdIukMcVfSoZBlZJ_q-yBtPoqB1Nmr1x1FqCtR81NrEtdp7CUHy4yLIskMzHTwJL24dx8zPS9RBIAuR6HO6soQwQgKY5NYmyaZGuWDrzw0Lor9_jjcx3x7NlXEUffGyUdT_bZ6owsgd-SpvnbqXPXIf-u5JH7afSUuajytHnGVilQOpEg06B0F-AumUEx8vdLPczCx0CED11mhRhT1eRQPJlzxgqA22SN1Yz0P55R8QbfFYcflpEtZbHmdvwMSipEoEUyI8aA9z268oNVnnAGhG3cOqk8-4HOvtqZ9LIc8jUcQLtWX-PJav9EePnWuV6pFwzvKcwl09m08xIfIh9DvFVJz3Fks-X6c1tVo2Valftlj8fnlzu9WgownkwhM4KN2UpcHcff4G-v9zckhcpROSzZ1ax5mPOUMF6B2OVawMhf3li9A9JEpBDxVu2-gZU6NbhvfH1f4PdNPUnlasPylHn4qz4S6_V1fuxho-2O_V72w3V5FDBi-m2D9vDVQvJtuoiJxUEyOWaxsenuzoFlq3jNHwm0SiabwVjaMyre4qktmHopLuLX2ixME3rbTtaXLAaly-t2X6oS4nFyhwP9f_WbJb4Yh_RDxksPj1hR_4nH43NTYjZBlLDM0YRb4xRzFmATQOUhPou6LSUbl8Tl2z7WYFzlcKgHwkWRaTGUV8Sz_h-_IfgZDvCtyyLhzvWOmfJBhsV1nTbDrr8DivZGH5huBNH88v_gbCVw36aAjH8BnmcHQ0ImUUwXoiB1iWSWB3x1xdYnAyQf5RV2PK86wVc4EBRxW6MeJHWZr-kFgHtcwk2ys8MewL8xlKs1S64APAWtD-WsLGEnUVMfM5EuWjoS9kB4BI4DC6M0uyDjaCuFu80wMmWfx9C3-Y2x7l5Lw0G4gRcUk-F3ONtKfsxMqAmV6aUVkXmdkX5LLa105CpIVqflM40CPl5mlVGEFlTf9u0zclyQ0_-qWt78ZzkpolPj9XKHikdYA_DKbvtfgtgNC07GIwBctoQsOrKGOxigeWzrAwfS9S5Wt7hvcs2R0Y04rXoeSTPbHWLumsJYLxC2HPtam3IxQJzCljIOFB5Sqi9WLO5l_yjmUGS2Fzy5DkuyFuC3o79rB-Vu0zpHQ5sHdbyYkfvi3QZx4jLuj2ki-3_1Qj7RfVdd1yWeudnFUy5QGfWh3-VoaK9UIZ1EeX62owXTGNOJovn9yMdwbXmy75qrkPXadFQG3lnuqq_Ucd8ZAYJvwfQb6uhTSv1kSFCpxyyaSBYjLU44QDF6FRh_QHLMBM2DVasOT0hsF2UWsIXUneoJHk_qVZSRmj5EDaIrWAUEZfL_geiwcW3_L3Y9iaHMkB93fHNsVEpLmTO-vLHZHYN0c-kKNVBw_40xGZ5ZgPJlT4JZVvBKuB2ka2OsSLcRXZvzZZZTnrRHb_9dngGkFpI0gc6gFu2d1mPIIFp6JS7AJ4_sYKE4yxuGG7IsA4ErnNBEK9Sr1XSu0_KfcIv63dm_AybDg1vmqMLCl5EiP9OIFsWdIM42970PH9h8Ri7KUn0D53RSRVkV38NW312A2JYCHfEfbIxyibEIrsusib98x6Bedh-3BpsWyih2XlDT6AFwJdD0cc_Uf56Vqv9waUtsSx-1xBwliZ35MKq-IfV6hcLnFgLhxsqakV8aFLAEzI8Ulned6zjRAC28aaDOZcFdKEMD0wHPUW8-9UTQxAgug8otEITWSkKubyXbdofpVa9Xwjq1-jLb4eylqey0RokKrHO6B7F3KtUF8Zsm0mGEg7nvUhjEBFL3AqkLke5Nb_78uqb3tzZF3iO6ghENar9s1DUIYqNkbMSeh7smgER_PBUB0MGMqRnx8qcr5t5yBEurZ7qq7-LYoJOoc6UwaPrQN_AFRou4ugiRrxIrvOwrDPr4y2zoi9XKnBBuYMnt2AkGVCNIA0WOKgmex4x_2Nri2JlRieAPwNPfW5PLkyPVRfw0dNzhg7csMl1Wctdw1JpHJhgMswuhYhRWGyzYWE4ZU8lvQWqA42MOKfUixAV4LmEzGz2eRQSPGWjLC85-mcxf_vssmD-mbuJAjzlLDzzwllrTDCQrt18DftpAAHhD5hG2HmQH9RDzcS3sniIx4p2zyqBHVQsWM74BlQjbODjgHRHerTgxYaNmh4KRA38lmb9omrUhI2Q0Lj5CF2of_Apd7fo8u6LpBpdEtirkn_7-9vPPiGerClV6lSjoNi_I_hHCneAq-3KZq7hM5XliJPvUrws_m0X5n6_fazdk-gOohEuF0Aq_1I5633sS-DGrFyan2K7oeoBGQN994-kweTR0lLko14nC5wnvizbsv7sDUNJTjM7LMYIrhKEILTjjGQ6WuCkYhQuM4RAnx74jFIchW8pS1tEnUcIOyBWgFB9M2zdbNmJg7vH43mmX408jMYVKs9CQz2Y7Vu33S0dSp9sWxM1KUREFVy1xTbVgKNxLxOzXiLOjm_b4EifAHZh_KTf0POm5RESU-TSrO29y5puTHL-PLuOE30jrxXaKhW5UzmQLUMhBGI7geYP6fE6QxyUi0gD_tLdMmzxTlZiOXkE6HnBQ-3Ar54uA-RFUhnzU-XT3wm--eINsvqyrHCyLQlmM71aBXnMlH5g0NJjdm42XSecTopWfFCfcNe1-ufpUuMGGg0C3LxVN5fkTmB2_6gai0AHh4dNhefGkKCZ5OcSNtA_UUI1nKr_wgPTI4X1catN9RE9mMYhOt-I5gOVRCihxDcUcBl2apUaFK-jHPs5rABqhykbi_dOS-zy42I86Vcu4B-_0GNlRIPRLZWFIhNRy_kfCOq4kb4SK9DjTvHsaq6YWMoL9Jk3JiqvH4yrMZ6T-XEFdJ8DGSc41lo1YJwhFUu0eGbGFKxyUBrHv1l9ByPrqWaiepnBBsda4y8G3SoiCfndwkbvLeE5ykYgurPpkYX_bau2PqsoAkiJ_GmbitKpXD71C5PmzvzLvpxkgC6hQq-v4L4WLelADvBpeikX9k23qhR5H3mkzNeMZgHyoFisy161cDgOlcg64g6C2UzJKlb5C1tOlQwM3fdm7cjBJXOjuxgi8Ewx6ov90eeaqIEfFvnUu1_IC_tFve9P_Us21Ak53vwStlHueYHtedJsHg84C5Ppt_z1LFR3Hh8m1pOnlb3kJw5eGpvsXweZrIIN0cvwz-NZ_orIxjPxLf23wy-y-lhObK17BfX1g-p759XtRSaG4Rj_QedauXHAA-SKgvwAOY3kBuWo9Oxx73JbC1kov55TkecHj2lXO_o49O5LCOa_h0nHIVb3JIGWot11sF_6zwNzFM2WtHFNu7Iu9hllumC8rvz3HEbylvSPQYzBQKy8NSyC6T9wbH6cAYY-vl59q1J4DwBH3DHKoMAec8InlnBO_ekJa8SMdQMZxov0BaxJc0W__29w2Sza0cBsMslfpRIWRWMb4jNpyvCyEVxrGf7AakOl0_9P3JCQ2o8cuf-BGg_z_iQ3aTMYVWi_pWuxnhh5NchjQU8C3dxvnEd0Te9mmDlvZh-N9GULo0tlzHz3WZniUp7mxVQ3nkeS31M0LIIF3SetSMjXrGJ_4bzAnb3EjH44eFuvgOiJ8ChXLCmHLtIpFa0WSC6YVpBxqfPrxke-DyB2Lvz_46MSQ4iKvCFhdYWxBtwXCZDN5Dt4XFpMknL_VnuVU8a5_rRqpEebv_VF1pBZsvfTK6UXFWAApFvL4ebApuLsFInG3uk89N2SbenTTiBGWZWZjsEFsvf3iSFZdQ2bgKSLmJIsuXV1mUPkzGEr8SsPLDKhGNZBevtka-CfnukEPn7a3K_O5sYcccEtYwx0VNiC6dWu7B_-pflffa1m4pbhdg6KfykDO9_jU_LE692dhWUzbv977zGUlOnmsEMeqmSTo9V5Hv0UsEDGEjoe9piKidoZ8JdAq1WIpSBfW9M2wtkZHbi2nlaBnKJuTaaNs_nWjbG4y73hEqEqRlQMKrLsJU7rsmy3h6x6-J_tXfkKpWu_Z_PhR-ca2RV4ldwUNejBhBomg-6bcSq1lHXGTpwc0wSDmIUfE2W6ZZysaFpmGpTDFjTDqfeeAwwbzShK7Uc-OnJVNiQ5w1KALJNjXURSfI61vyWRBMtFHaC7t6ixwDfv6pqEa0xeDe4xf4Z1qdX1Zfs4xpdAyzZWmslUsXIYDtiTXq6NYGjnCEPYqneVGOWhP6re0UfzeqqB6p6_L42UoqFrrjU7jnEWRlz6gxdU9qOJgLX3u6CIYtN6b44tpsqA23fNBiuf4SqoYimbd2YVjXFRFFNZ2XqJ-wBqYcD5xIfudMN6W5cAD4p5cTQ11_-EqIp8rDxiWOs-PN8SQTIE7ZYQ6na-lSITpchNybreE9SqhzluoY71DN8oQuUJHonrAW5Hh_VroGBxpbO9XdNhw0XrC-S9iH9DDEUedanM2DznPUZsHHutG8H0K9AEyWRS01sAwrF73ZG57qy5IciYMHZuFbkY0lzwbF-vd15jgNfP4JTmZD2sVWwVgI7Qp9T2hd0uuZL_huHl2baRCyC_DSI9c6p3q9Ud_tBN_yCcNcUVx0rS6EGfzM8VYOGwyiBVBAgVDjBXiKBsUVWA3ljfOtYhLKBDHkqhvoQaczSI2fKX7L7cwgXeBdckoaNhno6mCpZBamuyBZ1Iy6TnguQi59MCCKdiczIpfeumbSDEovy2IbQmPqld_JI6WOufgldiITu3hXR5KNazan2mc3NrKu1SEXZpdzb4wJZZ26U_1xE2GLMJru05yZoVNEkN72DhagM1R5oqHwPzRcn3ahdYvUzDoP6UHEpa76A23lqafY7F98l66hmAnXXlEKzEVwthYoxWANYtVsxs9NktNJdNMB3OCMnCo9BWkefmjlrzMJSkBP_1mfxN2o3W1tMNXpk5OQPO20_eWPF3iYhobSo8fcxzXtw9bg1BXr0TADj0hl_z4jw93wVGGLlsA3qYstay0I9yJgHBZmhxc7V1JzNWdwxIDmRgA5eCm1ELVBxpIup9WGZlUs1rzwqXzI-37i7l3dwFfCf_i2g8m-gNQjuM6YqkSz-XKcn-sJEg1XSMhoB15sgYE9U-2Oe-_EGLK0dOU2zyHO40F8ghvhKWpuAcITX_QnEMremwsiCl0PEnGZ98BXzlRvd1MFNc0ZUwzN-wTVxs4jNkteNbp0MjIKA5Y6FiCEX6koNWY9cLXSNg4XG4IsWRQrfIn2WWFz_nhzlaZNm_NUM1kmKRREPmsvQ","e":"AQAB","x5c":["MIIR2jCCEUMCAg4EMA0GCSqGSIb3DQEBBQUAMIGbMQswCQYDVQQGEwJKUDEOMAwG\nA1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxETAPBgNVBAoTCEZyYW5rNERE\nMRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWBgNVBAMTD0ZyYW5rNEREIFdl\nYiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmcmFuazRkZC5jb20wHhcNMTIx\nMDEwMTIxNzQ5WhcNMTcxMDA5MTIxNzQ5WjBKMQswCQYDVQQGDAJKUDEOMAwGA1UE\nCAwFVG9reW8xETAPBgNVBAoMCEZyYW5rNEREMRgwFgYDVQQDDA93d3cuZXhhbXBs\nZS5jb20wghAiMA0GCSqGSIb3DQEBAQUAA4IQDwAwghAKAoIQAQCrM8WwUh\/dxJ6z\nbkOWhXfLd3yAoxxlUT8RD\/p78xmfKoNu44Q\/f3JCzdq6fNtlGg7xfDyUugk126Io\nqxyjuh0jvneQG\/PV4vKR76xYFVm21udjLP0ATdld8Bv2sdbYDGAioc2xA6wslL92\ni4ZnDFrA10T3RYzhAbzRsOmTHEd85u2Zkhtmg4VJ6iQMcDmOiRAbMnrm3oBG1A4i\nG3zikiUCvxE7S8JSInRHhN0B99t0i6QxxV9KhkGVkn+r7IG0+ioHU2avXHUWoK1H\nzU2sS12nsJQfLjIsiyQzMdPAkvbh3HzM9L1EEgC5Hoc7qyhDBCApjk1ibJpka5YO\nvPDQuiv3+ONzHfHs2VcRR98bJR1P9tnqjCyB35Km+dupc9ch\/67kkftp9JS5qPK0\necZWKVA6kSDToHQX4C6ZQTHy90s9zMLHQIQPXWaFGFPV5FA8mXPGCoDbZI3VjPQ\/\nnlHxBt8Vhx+WkS1lseZ2\/AxKKkSgRTIjxoD3Pbryg1WecAaEbdw6qTz7gc6+2pn0\nshzyNRxAu1Zf48lq\/0R4+da5XqkXDO8pzCXT2bTzEh8iH0O8VUnPcWSz5fpzW1Wj\nZVqV+2WPx+eXO71aCjCeTCEzgo3ZSlwdx9\/gb6\/3NySFylE5LNnVrHmY85QwXoHY\n5VrAyF\/eWL0D0kSkEPFW7b6BlTo1uG98fV\/g9009SeVqw\/KUefirPhLr9XV+7GGj\n7Y79XvbDdXkUMGL6bYP28NVC8m26iInFQTI5ZrGx6e7OgWWreM0fCbRKJpvBWNoz\nKt7iqS2Yeiku4tfaLEwTettO1pcsBqXL63ZfqhLicXKHA\/1\/9ZslvhiH9EPGSw+P\nWFH\/icfjc1NiNkGUsMzRhFvjFHMWYBNA5SE+i7otJRuXxOXbPtZgXOVwqAfCRZFp\nMZRXxLP+H78h+BkO8K3LIuHO9Y6Z8kGGxXWdNsOuvwOK9kYfmG4E0fzy\/+BsJXDf\npoCMfwGeZwdDQiZRTBeiIHWJZJYHfHXF1icDJB\/lFXY8rzrBVzgQFHFbox4kdZmv\n6QWAe1zCTbKzwx7AvzGUqzVLrgA8Ba0P5awsYSdRUx8zkS5aOhL2QHgEjgMLozS7\nIONoK4W7zTAyZZ\/H0Lf5jbHuXkvDQbiBFxST4Xc420p+zEyoCZXppRWReZ2Rfkst\nrXTkKkhWp+UzjQI+XmaVUYQWVN\/27TNyXJDT\/6pa3vxnOSmiU+P1coeKR1gD8Mpu\n+1+C2A0LTsYjAFy2hCw6soY7GKB5bOsDB9L1Lla3uG9yzZHRjTiteh5JM9sdYu6a\nwlgvELYc+1qbcjFAnMKWMg4UHlKqL1Ys7mX\/KOZQZLYXPLkOS7IW4Lejv2sH5W7T\nOkdDmwd1vJiR++LdBnHiMu6PaSL7f\/VCPtF9V13XJZ652cVTLlAZ9aHf5Whor1Qh\nnUR5frajBdMY04mi+f3Ix3BtebLvmquQ9dp0VAbeWe6qr9Rx3xkBgm\/B9Bvq6FNK\n\/WRIUKnHLJpIFiMtTjhAMXoVGH9AcswEzYNVqw5PSGwXZRawhdSd6gkeT+pVlJGa\nPkQNoitYBQRl8v+B6LBxbf8vdj2JocyQH3d8c2xUSkuZM768sdkdg3Rz6Qo1UHD\/\njTEZnlmA8mVPgllW8Eq4HaRrY6xItxFdm\/NlllOetEdv\/12eAaQWkjSBzqAW7Z3W\nY8ggWnolLsAnj+xgoTjLG4YbsiwDgSuc0EQr1KvVdK7T8p9wi\/rd2b8DJsODW+ao\nwsKXkSI\/04gWxZ0gzjb3vQ8f2HxGLspSfQPndFJFWRXfw1bfXYDYlgId8R9sjHKJ\nsQiuy6yJv3zHoF52H7cGmxbKKHZeUNPoAXAl0PRxz9R\/npWq\/3BpS2xLH7XEHCWJ\nnfkwqr4h9XqFwucWAuHGypqRXxoUsATMjxSWd53rONEALbxpoM5lwV0oQwPTAc9R\nbz71RNDECC6Dyi0QhNZKQq5vJdt2h+lVr1fCOrX6Mtvh7KWp7LRGiQqsc7oHsXcq\n1QXxmybSYYSDue9SGMQEUvcCqQuR7k1v\/vy6pve3NkXeI7qCEQ1qv2zUNQhio2Rs\nxJ6HuyaARH88FQHQwYypGfHypyvm3nIES6tnuqrv4tigk6hzpTBo+tA38AVGi7i6\nCJGvEiu87CsM+vjLbOiL1cqcEG5gye3YCQZUI0gDRY4qCZ7HjH\/Y2uLYmVGJ4A\/A\n099bk8uTI9VF\/DR03OGDtywyXVZy13DUmkcmGAyzC6FiFFYbLNhYThlTyW9BaoDj\nYw4p9SLEBXguYTMbPZ5FBI8ZaMsLzn6ZzF\/++yyYP6Zu4kCPOUsPPPCWWtMMJCu3\nXwN+2kAAeEPmEbYeZAf1EPNxLeyeIjHinbPKoEdVCxYzvgGVCNs4OOAdEd6tODFh\no2aHgpEDfyWZv2iatSEjZDQuPkIXah\/8Cl3t+jy7oukGl0S2KuSf\/v7288+IZ6sK\nVXqVKOg2L8j+EcKd4Cr7cpmruEzleWIk+9SvCz+bRfmfr99rN2T6A6iES4XQCr\/U\njnrfexL4MasXJqfYruh6gEZA333j6TB5NHSUuSjXicLnCe+LNuy\/uwNQ0lOMzssx\ngiuEoQgtOOMZDpa4KRiFC4zhECfHviMUhyFbylLW0SdRwg7IFaAUH0zbN1s2YmDu\n8fjeaZfjTyMxhUqz0JDPZjtW7fdLR1Kn2xbEzUpREQVXLXFNtWAo3EvE7NeIs6Ob\n9vgSJ8AdmH8pN\/Q86blERJT5NKs7b3Lmm5Mcv48u44TfSOvFdoqFblTOZAtQyEEY\njuB5g\/p8TpDHJSLSAP+0t0ybPFOVmI5eQToecFD7cCvni4D5EVSGfNT5dPfCb754\ng2y+rKscLItCWYzvVoFecyUfmDQ0mN2bjZdJ5xOilZ8UJ9w17X65+lS4wYaDQLcv\nFU3l+ROYHb\/qBqLQAeHh02F58aQoJnk5xI20D9RQjWcqv\/CA9MjhfVxq031ET2Yx\niE634jmA5VEKKHENxRwGXZqlRoUr6Mc+zmsAGqHKRuL905L7PLjYjzpVy7gH7\/QY\n2VEg9EtlYUiE1HL+R8I6riRvhIr0ONO8exqrphYygv0mTcmKq8fjKsxnpP5cQV0n\nwMZJzjWWjVgnCEVS7R4ZsYUrHJQGse\/WX0HI+upZqJ6mcEGx1rjLwbdKiIJ+d3CR\nu8t4TnKRiC6s+mRhf9tq7Y+qygCSIn8aZuK0qlcPvULk+bO\/Mu+nGSALqFCr6\/gv\nhYt6UAO8Gl6KRf2TbeqFHkfeaTM14xmAfKgWKzLXrVwOA6VyDriDoLZTMkqVvkLW\n06VDAzd92btyMElc6O7GCLwTDHqi\/3R55qogR8W+dS7X8gL+0W970\/9SzbUCTne\/\nBK2Ue55ge150mweDzgLk+m3\/PUsVHceHybWk6eVveQnDl4am+xfB5msgg3Ry\/DP4\n1n+isjGM\/Et\/bfDL7L6WE5srXsF9fWD6nvn1e1FJobhGP9B51q5ccAD5IqC\/AA5j\neQG5aj07HHvclsLWSi\/nlOR5wePaVc7+jj07ksI5r+HScchVvckgZai3XWwX\/rPA\n3MUzZa0cU27si72GWW6YLyu\/PccRvKW9I9BjMFArLw1LILpP3BsfpwBhj6+Xn2rU\nngPAEfcMcqgwB5zwieWcE796QlrxIx1AxnGi\/QFrElzRb\/\/b3DZLNrRwGwyyV+lE\nhZFYxviM2nK8LIRXGsZ\/sBqQ6XT\/0\/ckJDajxy5\/4EaD\/P+JDdpMxhVaL+la7GeG\nHk1yGNBTwLd3G+cR3RN72aYOW9mH430ZQujS2XMfPdZmeJSnubFVDeeR5LfUzQsg\ngXdJ61IyNesYn\/hvMCdvcSMfjh4W6+A6InwKFcsKYcu0ikVrRZILphWkHGp8+vGR\n74PIHYu\/P\/joxJDiIq8IWF1hbEG3BcJkM3kO3hcWkyScv9We5VTxrn+tGqkR5u\/9\nUXWkFmy99MrpRcVYACkW8vh5sCm4uwUicbe6Tz03ZJt6dNOIEZZlZmOwQWy9\/eJI\nVl1DZuApIuYkiy5dXWZQ+TMYSvxKw8sMqEY1kF6+2Rr4J+e6QQ+ftrcr87mxhxxw\nS1jDHRU2ILp1a7sH\/6l+V99rWbiluF2Dop\/KQM73+NT8sTr3Z2FZTNu\/3vvMZSU6\neawQx6qZJOj1Xke\/RSwQMYSOh72mIqJ2hnwl0CrVYilIF9b0zbC2RkduLaeVoGco\nm5Npo2z+daNsbjLveESoSpGVAwqsuwlTuuybLeHrHr4n+1d+Qqla79n8+FH5xrZF\nXiV3BQ16MGEGiaD7ptxKrWUdcZOnBzTBIOYhR8TZbplnKxoWmYalMMWNMOp954DD\nBvNKErtRz46clU2JDnDUoAsk2NdRFJ8jrW\/JZEEy0UdoLu3qLHAN+\/qmoRrTF4N7\njF\/hnWp1fVl+zjGl0DLNlaayVSxchgO2JNero1gaOcIQ9iqd5UY5aE\/qt7RR\/N6q\noHqnr8vjZSioWuuNTuOcRZGXPqDF1T2o4mAtfe7oIhi03pvji2myoDbd80GK5\/hK\nqhiKZt3ZhWNcVEUU1nZeon7AGphwPnEh+50w3pblwAPinlxNDXX\/4SoinysPGJY6\nz483xJBMgTtlhDqdr6VIhOlyE3Jut4T1KqHOW6hjvUM3yhC5QkeiesBbkeH9WugY\nHGls71d02HDResL5L2If0MMRR51qczYPOc9Rmwce60bwfQr0ATJZFLTWwDCsXvdk\nbnurLkhyJgwdm4VuRjSXPBsX693XmOA18\/glOZkPaxVbBWAjtCn1PaF3S65kv+G4\neXZtpELIL8NIj1zqner1R3+0E3\/IJw1xRXHStLoQZ\/MzxVg4bDKIFUECBUOMFeIo\nGxRVYDeWN861iEsoEMeSqG+hBpzNIjZ8pfsvtzCBd4F1ySho2GejqYKlkFqa7IFn\nUjLpOeC5CLn0wIIp2JzMil966ZtIMSi\/LYhtCY+qV38kjpY65+CV2IhO7eFdHko1\nrNqfaZzc2sq7VIRdml3NvjAllnbpT\/XETYYswmu7TnJmhU0SQ3vYOFqAzVHmiofA\n\/NFyfdqF1i9TMOg\/pQcSlrvoDbeWpp9jsX3yXrqGYCddeUQrMRXC2FijFYA1i1Wz\nGz02S00l00wHc4IycKj0FaR5+aOWvMwlKQE\/\/WZ\/E3ajdbW0w1emTk5A87bT95Y8\nXeJiGhtKjx9zHNe3D1uDUFevRMAOPSGX\/PiPD3fBUYYuWwDepiy1rLQj3ImAcFma\nHFztXUnM1Z3DEgOZGADl4KbUQtUHGki6n1YZmVSzWvPCpfMj7fuLuXd3AV8J\/+La\nDyb6A1CO4zpiqRLP5cpyf6wkSDVdIyGgHXmyBgT1T7Y5778QYsrR05TbPIc7jQXy\nCG+Epam4BwhNf9CcQyt6bCyIKXQ8ScZn3wFfOVG93UwU1zRlTDM37BNXGziM2S14\n1unQyMgoDljoWIIRfqSg1Zj1wtdI2DhcbgixZFCt8ifZZYXP+eHOVpk2b81QzWSY\npFEQ+ay9AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEATPINk\/17H+RLz459iCVQAGes\n8kc5sxYj3CkMlWrGMiCxvsgu2kak6dCa0f3DfiVt54Fry7s0OklHiZmipoiF4RCt\nyJwUSAzRrZFAbkpDg8oIu4Ui\/Bt13kY7xON+u4m0IgkLZSE+8BSjMrfjVvVxe+qH\n5i7X\/ibUTDjgyfdA8XI="],"x5t":"KGApLybHWJmBwZGgBk07AlRD9nU","x5t#256":"YD12k6kc4xuh_5vEHMyyOFpGs6VqTyaKMlxg0Nt2crA"}', json_encode($result)); } public function testCreateFromPrivateEC256KeyFileEncrypted() { $result = JWKFactory::createFromKeyFile(__DIR__.'/../Keys/EC/private.es256.encrypted.key', 'test'); - $this->assertInstanceOf(JWKInterface::class, $result); - $this->assertEquals('{"kty":"EC","crv":"P-256","d":"q_VkzNnxTG39jHB0qkwA_SeVXud7yCHT7kb7kZv-0xQ","x":"vuYsP-QnrqAbM7Iyhzjt08hFSuzapyojCB_gFsBt65U","y":"oq-E2K-X0kPeqGuKnhlXkxc5fnxomRSC6KLby7Ij8AE"}', json_encode($result)); + self::assertInstanceOf(JWKInterface::class, $result); + self::assertEquals('{"kty":"EC","crv":"P-256","d":"q_VkzNnxTG39jHB0qkwA_SeVXud7yCHT7kb7kZv-0xQ","x":"vuYsP-QnrqAbM7Iyhzjt08hFSuzapyojCB_gFsBt65U","y":"oq-E2K-X0kPeqGuKnhlXkxc5fnxomRSC6KLby7Ij8AE"}', json_encode($result)); } public function testCreateFromPrivateEC384KeyFileEncrypted() { $result = JWKFactory::createFromKeyFile(__DIR__.'/../Keys/EC/private.es384.encrypted.key', 'test'); - $this->assertInstanceOf(JWKInterface::class, $result); - $this->assertEquals('{"kty":"EC","crv":"P-384","d":"pcSSXrbeZEOaBIs7IwqcU9M_OOM81XhZuOHoGgmS_2PdECwcdQcXzv7W8-lYL0cr","x":"6f-XZsg2Tvn0EoEapQ-ylMYNtsm8CPf0cb8HI2EkfY9Bqpt3QMzwlM7mVsFRmaMZ","y":"b8nOnRwmpmEnvA2U8ydS-dbnPv7bwYl-q1qNeh8Wpjor3VO-RTt4ce0Pn25oGGWU"}', json_encode($result)); + self::assertInstanceOf(JWKInterface::class, $result); + self::assertEquals('{"kty":"EC","crv":"P-384","d":"pcSSXrbeZEOaBIs7IwqcU9M_OOM81XhZuOHoGgmS_2PdECwcdQcXzv7W8-lYL0cr","x":"6f-XZsg2Tvn0EoEapQ-ylMYNtsm8CPf0cb8HI2EkfY9Bqpt3QMzwlM7mVsFRmaMZ","y":"b8nOnRwmpmEnvA2U8ydS-dbnPv7bwYl-q1qNeh8Wpjor3VO-RTt4ce0Pn25oGGWU"}', json_encode($result)); } public function testCreateFromPrivateEC512KeyFileEncrypted() { $result = JWKFactory::createFromKeyFile(__DIR__.'/../Keys/EC/private.es512.encrypted.key', 'test'); - $this->assertInstanceOf(JWKInterface::class, $result); - $this->assertEquals('{"kty":"EC","crv":"P-521","d":"Fp6KFKRiHIdR_7PP2VKxz6OkS_phyoQqwzv2I89-8zP7QScrx5r8GFLcN5mCCNJt3rN3SIgI4XoIQbNePlAj6vE","x":"AVpvo7TGpQk5P7ZLo0qkBpaT-fFDv6HQrWElBKMxcrJd_mRNapweATsVv83YON4lTIIRXzgGkmWeqbDr6RQO-1cS","y":"AIs-MoRmLaiPyG2xmPwQCHX2CGX_uCZiT3iOxTAJEZuUbeSA828K4WfAA4ODdGiB87YVShhPOkiQswV3LpbpPGhC"}', json_encode($result)); + self::assertInstanceOf(JWKInterface::class, $result); + self::assertEquals('{"kty":"EC","crv":"P-521","d":"Fp6KFKRiHIdR_7PP2VKxz6OkS_phyoQqwzv2I89-8zP7QScrx5r8GFLcN5mCCNJt3rN3SIgI4XoIQbNePlAj6vE","x":"AVpvo7TGpQk5P7ZLo0qkBpaT-fFDv6HQrWElBKMxcrJd_mRNapweATsVv83YON4lTIIRXzgGkmWeqbDr6RQO-1cS","y":"AIs-MoRmLaiPyG2xmPwQCHX2CGX_uCZiT3iOxTAJEZuUbeSA828K4WfAA4ODdGiB87YVShhPOkiQswV3LpbpPGhC"}', json_encode($result)); } public function testCreateFromPublicEC256KeyFile() { $result = JWKFactory::createFromKeyFile(__DIR__.'/../Keys/EC/public.es256.key'); - $this->assertInstanceOf(JWKInterface::class, $result); - $this->assertEquals('{"kty":"EC","crv":"P-256","x":"vuYsP-QnrqAbM7Iyhzjt08hFSuzapyojCB_gFsBt65U","y":"oq-E2K-X0kPeqGuKnhlXkxc5fnxomRSC6KLby7Ij8AE"}', json_encode($result)); + self::assertInstanceOf(JWKInterface::class, $result); + self::assertEquals('{"kty":"EC","crv":"P-256","x":"vuYsP-QnrqAbM7Iyhzjt08hFSuzapyojCB_gFsBt65U","y":"oq-E2K-X0kPeqGuKnhlXkxc5fnxomRSC6KLby7Ij8AE"}', json_encode($result)); } public function testCreateFromPublicEC384KeyFile() { $result = JWKFactory::createFromKeyFile(__DIR__.'/../Keys/EC/public.es384.key'); - $this->assertInstanceOf(JWKInterface::class, $result); - $this->assertEquals('{"kty":"EC","crv":"P-384","x":"6f-XZsg2Tvn0EoEapQ-ylMYNtsm8CPf0cb8HI2EkfY9Bqpt3QMzwlM7mVsFRmaMZ","y":"b8nOnRwmpmEnvA2U8ydS-dbnPv7bwYl-q1qNeh8Wpjor3VO-RTt4ce0Pn25oGGWU"}', json_encode($result)); + self::assertInstanceOf(JWKInterface::class, $result); + self::assertEquals('{"kty":"EC","crv":"P-384","x":"6f-XZsg2Tvn0EoEapQ-ylMYNtsm8CPf0cb8HI2EkfY9Bqpt3QMzwlM7mVsFRmaMZ","y":"b8nOnRwmpmEnvA2U8ydS-dbnPv7bwYl-q1qNeh8Wpjor3VO-RTt4ce0Pn25oGGWU"}', json_encode($result)); } public function testCreateFromPublicEC512KeyFile() { $result = JWKFactory::createFromKeyFile(__DIR__.'/../Keys/EC/public.es512.key'); - $this->assertInstanceOf(JWKInterface::class, $result); - $this->assertEquals('{"kty":"EC","crv":"P-521","x":"AVpvo7TGpQk5P7ZLo0qkBpaT-fFDv6HQrWElBKMxcrJd_mRNapweATsVv83YON4lTIIRXzgGkmWeqbDr6RQO-1cS","y":"AIs-MoRmLaiPyG2xmPwQCHX2CGX_uCZiT3iOxTAJEZuUbeSA828K4WfAA4ODdGiB87YVShhPOkiQswV3LpbpPGhC"}', json_encode($result)); + self::assertInstanceOf(JWKInterface::class, $result); + self::assertEquals('{"kty":"EC","crv":"P-521","x":"AVpvo7TGpQk5P7ZLo0qkBpaT-fFDv6HQrWElBKMxcrJd_mRNapweATsVv83YON4lTIIRXzgGkmWeqbDr6RQO-1cS","y":"AIs-MoRmLaiPyG2xmPwQCHX2CGX_uCZiT3iOxTAJEZuUbeSA828K4WfAA4ODdGiB87YVShhPOkiQswV3LpbpPGhC"}', json_encode($result)); } public function testCreateFromJKU() { $result = JWKFactory::createFromJKU('https://www.googleapis.com/oauth2/v3/certs'); - $this->assertInstanceOf(JWKSetInterface::class, $result); - $this->assertTrue(0 !== $result->count()); + self::assertInstanceOf(JWKSetInterface::class, $result); + self::assertTrue(0 !== $result->count()); } public function testCreateFromJKUWithCache() @@ -135,17 +135,17 @@ public function testCreateFromJKUWithCache() $result = JWKFactory::createFromJKU($url, false, $cache); - $this->assertInstanceOf(JWKSetInterface::class, $result); - $this->assertTrue(0 !== $result->count()); - $this->assertTrue($cache->hasItem($cache_key)); + self::assertInstanceOf(JWKSetInterface::class, $result); + self::assertTrue(0 !== $result->count()); + self::assertTrue($cache->hasItem($cache_key)); } public function testCreateFromX5U() { $result = JWKFactory::createFromX5U('https://www.googleapis.com/oauth2/v1/certs'); - $this->assertInstanceOf(JWKSetInterface::class, $result); - $this->assertTrue(0 !== $result->count()); + self::assertInstanceOf(JWKSetInterface::class, $result); + self::assertTrue(0 !== $result->count()); } public function testCreateFromX5UWithCache() @@ -157,9 +157,9 @@ public function testCreateFromX5UWithCache() $result = JWKFactory::createFromX5U($url, false, $cache); - $this->assertInstanceOf(JWKSetInterface::class, $result); - $this->assertTrue(0 !== $result->count()); - $this->assertTrue($cache->hasItem($cache_key)); + self::assertInstanceOf(JWKSetInterface::class, $result); + self::assertTrue(0 !== $result->count()); + self::assertTrue($cache->hasItem($cache_key)); } public function testCreateFromValues() @@ -172,8 +172,8 @@ public function testCreateFromValues() 'y' => 'AIs-MoRmLaiPyG2xmPwQCHX2CGX_uCZiT3iOxTAJEZuUbeSA828K4WfAA4ODdGiB87YVShhPOkiQswV3LpbpPGhC', ]); - $this->assertInstanceOf(JWKInterface::class, $result); - $this->assertEquals('{"kty":"EC","crv":"P-521","d":"Fp6KFKRiHIdR_7PP2VKxz6OkS_phyoQqwzv2I89-8zP7QScrx5r8GFLcN5mCCNJt3rN3SIgI4XoIQbNePlAj6vE","x":"AVpvo7TGpQk5P7ZLo0qkBpaT-fFDv6HQrWElBKMxcrJd_mRNapweATsVv83YON4lTIIRXzgGkmWeqbDr6RQO-1cS","y":"AIs-MoRmLaiPyG2xmPwQCHX2CGX_uCZiT3iOxTAJEZuUbeSA828K4WfAA4ODdGiB87YVShhPOkiQswV3LpbpPGhC"}', json_encode($result)); + self::assertInstanceOf(JWKInterface::class, $result); + self::assertEquals('{"kty":"EC","crv":"P-521","d":"Fp6KFKRiHIdR_7PP2VKxz6OkS_phyoQqwzv2I89-8zP7QScrx5r8GFLcN5mCCNJt3rN3SIgI4XoIQbNePlAj6vE","x":"AVpvo7TGpQk5P7ZLo0qkBpaT-fFDv6HQrWElBKMxcrJd_mRNapweATsVv83YON4lTIIRXzgGkmWeqbDr6RQO-1cS","y":"AIs-MoRmLaiPyG2xmPwQCHX2CGX_uCZiT3iOxTAJEZuUbeSA828K4WfAA4ODdGiB87YVShhPOkiQswV3LpbpPGhC"}', json_encode($result)); } private function getCacheKey($url) diff --git a/tests/Unit/Objects/JWKSetTest.php b/tests/Unit/Objects/JWKSetBaseTest.php similarity index 81% rename from tests/Unit/Objects/JWKSetTest.php rename to tests/Unit/Objects/JWKSetBaseTest.php index 95f74621..a7685d06 100644 --- a/tests/Unit/Objects/JWKSetTest.php +++ b/tests/Unit/Objects/JWKSetBaseTest.php @@ -12,7 +12,7 @@ use Jose\Factory\JWKFactory; use Jose\Object\JWKInterface; use Jose\Object\JWKSetInterface; -use Jose\Test\TestCase; +use Jose\Test\BaseTestCase; /** * Class JWKTest. @@ -20,14 +20,14 @@ * @group Unit * @group JWKSet */ -class JWKSetTest extends TestCase +class JWKSetBaseTest extends BaseTestCase { public function testKeySelection() { $jwkset = $this->getPublicKeySet(); $jwk = $jwkset->selectKey('enc'); - $this->assertInstanceOf(JWKInterface::class, $jwk); + self::assertInstanceOf(JWKInterface::class, $jwk); } public function testKeySelectionWithAlgorithm() @@ -35,8 +35,8 @@ public function testKeySelectionWithAlgorithm() $jwkset = $this->getPublicKeySet(); $jwk = $jwkset->selectKey('sig', 'RS256'); - $this->assertInstanceOf(JWKInterface::class, $jwk); - $this->assertEquals([ + self::assertInstanceOf(JWKInterface::class, $jwk); + self::assertEquals([ 'kid' => '71ee230371d19630bc17fb90ccf20ae632ad8cf8', 'kty' => 'RSA', 'alg' => 'RS256', @@ -53,8 +53,8 @@ public function testKeySelectionWithAlgorithmAndKeyId() $jwkset = $this->getPublicKeySet(); $jwk = $jwkset->selectKey('sig', 'RS256', ['kid' => '02491f945c951adf156f370788e8ccdabf8877a8']); - $this->assertInstanceOf(JWKInterface::class, $jwk); - $this->assertEquals([ + self::assertInstanceOf(JWKInterface::class, $jwk); + self::assertEquals([ 'kid' => '02491f945c951adf156f370788e8ccdabf8877a8', 'kty' => 'RSA', 'alg' => 'RS256', @@ -71,8 +71,8 @@ public function testKeySelectionWithKeyId() $jwkset = $this->getPublicKeySet(); $jwk = $jwkset->selectKey('sig', null, ['kid' => '02491f945c951adf156f370788e8ccdabf8877a8']); - $this->assertInstanceOf(JWKInterface::class, $jwk); - $this->assertEquals([ + self::assertInstanceOf(JWKInterface::class, $jwk); + self::assertEquals([ 'kid' => '02491f945c951adf156f370788e8ccdabf8877a8', 'kty' => 'RSA', 'alg' => 'RS256', @@ -89,7 +89,7 @@ public function testKeySelectionReturnsNothing() $jwkset = $this->getPublicKeySet(); $jwk = $jwkset->selectKey('enc', null, ['kid' => '02491f945c951adf156f370788e8ccdabf8877a8']); - $this->assertNull($jwk); + self::assertNull($jwk); } public function testCreateKeySetFromValues() @@ -103,10 +103,10 @@ public function testCreateKeySetFromValues() 'e' => 'AQAB', ]]]; $jwkset = JWKFactory::createFromValues($values); - $this->assertInstanceOf(JWKSetInterface::class, $jwkset); - $this->assertEquals(1, $jwkset->countKeys()); - $this->assertTrue(isset($jwkset[0])); - $this->assertFalse(isset($jwkset[1])); - $this->assertEquals($values['keys'][0], $jwkset[0]->getAll()); + self::assertInstanceOf(JWKSetInterface::class, $jwkset); + self::assertEquals(1, $jwkset->countKeys()); + self::assertTrue(isset($jwkset[0])); + self::assertFalse(isset($jwkset[1])); + self::assertEquals($values['keys'][0], $jwkset[0]->getAll()); } } diff --git a/tests/Unit/Objects/JWKSetsTest.php b/tests/Unit/Objects/JWKSetsTest.php index 110f0ba1..caf44568 100644 --- a/tests/Unit/Objects/JWKSetsTest.php +++ b/tests/Unit/Objects/JWKSetsTest.php @@ -18,7 +18,7 @@ * @group Unit * @group JWKSets */ -class JWKSetsTest extends \PHPUnit_Framework_TestCase +class JWKSetsTest extends \Jose\Test\BaseTestCase { public function testKey() { @@ -50,22 +50,22 @@ public function testKey() $jwkset = new JWKSets([$jwkset1, $jwkset2]); $jwkset->addKeySet($jwkset3); - $this->assertEquals(6, $jwkset->countKeys()); + self::assertEquals(6, $jwkset->countKeys()); $jwkset->addKey(JWKFactory::createRSAKey(['size' => 384])); - $this->assertEquals(6, $jwkset->countKeys()); + self::assertEquals(6, $jwkset->countKeys()); $jwkset->removeKey(0); - $this->assertEquals(6, $jwkset->countKeys()); + self::assertEquals(6, $jwkset->countKeys()); for ($i = 0; $i < 2; ++$i) { - $this->assertEquals(json_encode($jwkset[$i]), json_encode($jwkset1->getKey($i))); + self::assertEquals(json_encode($jwkset[$i]), json_encode($jwkset1->getKey($i))); } for ($i = 2; $i < 4; ++$i) { - $this->assertEquals(json_encode($jwkset[$i]), json_encode($jwkset2->getKey($i - 2))); + self::assertEquals(json_encode($jwkset[$i]), json_encode($jwkset2->getKey($i - 2))); } for ($i = 4; $i < 6; ++$i) { - $this->assertEquals(json_encode($jwkset[$i]), json_encode($jwkset3->getKey($i - 4))); + self::assertEquals(json_encode($jwkset[$i]), json_encode($jwkset3->getKey($i - 4))); } $jwkset1->delete(); diff --git a/tests/Unit/Objects/JWKTest.php b/tests/Unit/Objects/JWKTest.php index 1f988ec0..42d98b11 100644 --- a/tests/Unit/Objects/JWKTest.php +++ b/tests/Unit/Objects/JWKTest.php @@ -19,7 +19,7 @@ * @group Unit * @group JWK */ -class JWKTest extends \PHPUnit_Framework_TestCase +class JWKTest extends \Jose\Test\BaseTestCase { public function testKey() { @@ -34,19 +34,19 @@ public function testKey() 'bar' => 'plic', ]); - $this->assertEquals('EC', $jwk->get('kty')); - $this->assertEquals('ES256', $jwk->get('alg')); - $this->assertEquals('sign', $jwk->get('use')); - $this->assertFalse($jwk->has('kid')); - $this->assertEquals(['sign'], $jwk->get('key_ops')); - $this->assertEquals('P-256', $jwk->get('crv')); - $this->assertFalse($jwk->has('x5u')); - $this->assertFalse($jwk->has('x5c')); - $this->assertFalse($jwk->has('x5t')); - $this->assertFalse($jwk->has('x5t#256')); - $this->assertEquals('f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU', $jwk->get('x')); - $this->assertEquals('x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0', $jwk->get('y')); - $this->assertEquals('{"kty":"EC","crv":"P-256","x":"f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU","y":"x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0","use":"sign","key_ops":["sign"],"alg":"ES256","bar":"plic"}', json_encode($jwk)); + self::assertEquals('EC', $jwk->get('kty')); + self::assertEquals('ES256', $jwk->get('alg')); + self::assertEquals('sign', $jwk->get('use')); + self::assertFalse($jwk->has('kid')); + self::assertEquals(['sign'], $jwk->get('key_ops')); + self::assertEquals('P-256', $jwk->get('crv')); + self::assertFalse($jwk->has('x5u')); + self::assertFalse($jwk->has('x5c')); + self::assertFalse($jwk->has('x5t')); + self::assertFalse($jwk->has('x5t#256')); + self::assertEquals('f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU', $jwk->get('x')); + self::assertEquals('x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0', $jwk->get('y')); + self::assertEquals('{"kty":"EC","crv":"P-256","x":"f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU","y":"x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0","use":"sign","key_ops":["sign"],"alg":"ES256","bar":"plic"}', json_encode($jwk)); } /** @@ -107,30 +107,30 @@ public function testKeySet() $jwkset->addKey($jwk1); $jwkset[] = $jwk2; - $this->assertEquals('{"keys":[{"kty":"EC","crv":"P-256","x":"f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU","y":"x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0","use":"sign","key_ops":["sign"],"alg":"ES256","kid":"0123456789"},{"kty":"EC","crv":"P-256","x":"f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU","y":"x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0","d":"jpsQnnGQmL-YBIffH1136cspYG6-0iY7X1fCE9-E9LI","use":"sign","key_ops":["verify"],"alg":"ES256","kid":"9876543210"}]}', json_encode($jwkset)); - $this->assertEquals(2, count($jwkset)); - $this->assertEquals(2, $jwkset->count()); - $this->assertTrue($jwkset->hasKey(0)); - $this->assertTrue($jwkset->hasKey(1)); - $this->assertFalse($jwkset->hasKey(2)); + self::assertEquals('{"keys":[{"kty":"EC","crv":"P-256","x":"f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU","y":"x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0","use":"sign","key_ops":["sign"],"alg":"ES256","kid":"0123456789"},{"kty":"EC","crv":"P-256","x":"f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU","y":"x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0","d":"jpsQnnGQmL-YBIffH1136cspYG6-0iY7X1fCE9-E9LI","use":"sign","key_ops":["verify"],"alg":"ES256","kid":"9876543210"}]}', json_encode($jwkset)); + self::assertEquals(2, count($jwkset)); + self::assertEquals(2, $jwkset->count()); + self::assertTrue($jwkset->hasKey(0)); + self::assertTrue($jwkset->hasKey(1)); + self::assertFalse($jwkset->hasKey(2)); foreach ($jwkset as $key) { - $this->assertEquals('EC', $key->get('kty')); + self::assertEquals('EC', $key->get('kty')); } - $this->assertEquals(2, $jwkset->key()); + self::assertEquals(2, $jwkset->key()); - $this->assertEquals('9876543210', $jwkset->getKey(1)->get('kid')); + self::assertEquals('9876543210', $jwkset->getKey(1)->get('kid')); $jwkset->removeKey(1); $jwkset->removeKey(1); - $this->assertEquals(1, count($jwkset)); - $this->assertEquals(1, $jwkset->count()); - $this->assertInstanceOf(JWKInterface::class, $jwkset->getKey(0)); - $this->assertInstanceOf(JWKInterface::class, $jwkset[0]); + self::assertEquals(1, count($jwkset)); + self::assertEquals(1, $jwkset->count()); + self::assertInstanceOf(JWKInterface::class, $jwkset->getKey(0)); + self::assertInstanceOf(JWKInterface::class, $jwkset[0]); unset($jwkset[0]); - $this->assertEquals(0, count($jwkset)); - $this->assertEquals(0, $jwkset->count()); + self::assertEquals(0, count($jwkset)); + self::assertEquals(0, $jwkset->count()); } /** @@ -185,7 +185,7 @@ public function testPrivateToPublic() $public = $private->toPublic(); - $this->assertEquals(json_encode([ + self::assertEquals(json_encode([ 'kty' => 'EC', 'crv' => 'P-256', 'x' => 'f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU', @@ -206,11 +206,11 @@ public function testLoadCertificateChain() ] ); - $this->assertEquals( + self::assertEquals( '178f7e93a74ed73d88c29042220b9ae6e4b371cd', strtolower(bin2hex(\Base64Url\Base64Url::decode($key->get('x5t')))) ); - $this->assertEquals([ + self::assertEquals([ 'kty' => 'RSA', 'n' => 'nCoEd1zYUJE6BqOC4NhQSLyJP_EZcBqIRn7gj8Xxic4h7lr-YQ23MkSJoHQLU09VpM6CYpXu61lfxuEFgBLEXpQ_vFtIOPRT9yTm-5HpFcTP9FMN9Er8n1Tefb6ga2-HwNBQHygwA0DaCHNRbH__OjynNwaOvUsRBOt9JN7m-fwxcfuU1WDzLkqvQtLL6sRqGrLMU90VS4sfyBlhH82dqD5jK4Q1aWWEyBnFRiL4U5W-44BKEMYq7LqXIBHHOZkQBKDwYXqVJYxOUnXitu0IyhT8ziJqs07PRgOXlwN-wLHee69FM8-6PnG33vQlJcINNYmdnfsOEXmJHjfFr45yaQ', 'e' => 'AQAB', diff --git a/tests/Unit/Objects/JWSTest.php b/tests/Unit/Objects/JWSTest.php index 60840e59..03e1b61f 100644 --- a/tests/Unit/Objects/JWSTest.php +++ b/tests/Unit/Objects/JWSTest.php @@ -20,7 +20,7 @@ * @group JWS * @group Unit */ -class JWSTest extends \PHPUnit_Framework_TestCase +class JWSTest extends \Jose\Test\BaseTestCase { /** * @expectedException \InvalidArgumentException @@ -38,16 +38,16 @@ public function testJWS() ]; $jws = JWSFactory::createJWS($claims); - $this->assertTrue($jws->hasClaims()); - $this->assertTrue($jws->hasClaim('nbf')); - $this->assertTrue($jws->hasClaim('iss')); - $this->assertEquals('Me', $jws->getClaim('iss')); - $this->assertEquals($claims, $jws->getPayload()); - $this->assertEquals($claims, $jws->getClaims()); - $this->assertEquals(0, $jws->countSignatures()); + self::assertTrue($jws->hasClaims()); + self::assertTrue($jws->hasClaim('nbf')); + self::assertTrue($jws->hasClaim('iss')); + self::assertEquals('Me', $jws->getClaim('iss')); + self::assertEquals($claims, $jws->getPayload()); + self::assertEquals($claims, $jws->getClaims()); + self::assertEquals(0, $jws->countSignatures()); $jws = $jws->addSignatureInformation(new JWK(['kty' => 'none']), ['crit' => ['nbf', 'iat', 'exp', 'iss']]); - $this->assertEquals(1, $jws->countSignatures()); + self::assertEquals(1, $jws->countSignatures()); $checker_manager = CheckerManagerFactory::createClaimCheckerManager(); $checker_manager->checkJWS($jws, 0); @@ -188,7 +188,7 @@ public function testSignatureDoesNotContainProtectedHeader() $signature->withEncodedProtectedHeaders(''); - $this->assertEquals([], $signature->getProtectedHeaders()); + self::assertEquals([], $signature->getProtectedHeaders()); }*/ /*public function testEncodedProtectedHeader() @@ -198,6 +198,6 @@ public function testSignatureDoesNotContainProtectedHeader() $signature = $signature->withEncodedProtectedHeaders(Base64Url::encode(json_encode(['foo' => 'bar']))); $signature = $signature->withProtectedHeader('plic', 'ploc'); - $this->assertEquals(['foo' => 'bar', 'plic' => 'ploc'], $signature->getProtectedHeaders()); + self::assertEquals(['foo' => 'bar', 'plic' => 'ploc'], $signature->getProtectedHeaders()); }*/ } diff --git a/tests/Unit/Objects/JWTCreatorTest.php b/tests/Unit/Objects/JWTCreatorTest.php index 0babeff3..3b7605e7 100644 --- a/tests/Unit/Objects/JWTCreatorTest.php +++ b/tests/Unit/Objects/JWTCreatorTest.php @@ -15,7 +15,7 @@ * @group JWTCreator * @group Unit */ -class JWTCreatorTest extends \PHPUnit_Framework_TestCase +class JWTCreatorTest extends \Jose\Test\BaseTestCase { public function testMethods() { @@ -24,17 +24,17 @@ public function testMethods() $jwt_creator = new \Jose\JWTCreator($signer); $jwt_creator->enableEncryptionSupport($encrypter); - $this->assertEquals(['DEF', 'ZLIB', 'GZ'], $jwt_creator->getSupportedCompressionMethods()); - $this->assertEquals(['HS256'], $jwt_creator->getSupportedSignatureAlgorithms()); - $this->assertEquals(['A256GCMKW', 'A256KW'], $jwt_creator->getSupportedKeyEncryptionAlgorithms()); - $this->assertEquals(['A128GCM'], $jwt_creator->getSupportedContentEncryptionAlgorithms()); - $this->assertTrue($jwt_creator->isEncryptionSupportEnabled()); + self::assertEquals(['DEF', 'ZLIB', 'GZ'], $jwt_creator->getSupportedCompressionMethods()); + self::assertEquals(['HS256'], $jwt_creator->getSupportedSignatureAlgorithms()); + self::assertEquals(['A256GCMKW', 'A256KW'], $jwt_creator->getSupportedKeyEncryptionAlgorithms()); + self::assertEquals(['A128GCM'], $jwt_creator->getSupportedContentEncryptionAlgorithms()); + self::assertTrue($jwt_creator->isEncryptionSupportEnabled()); $payload = 'Hello World!'; $signature_key = \Jose\Factory\JWKFactory::createKey(['kty' => 'oct', 'use' => 'sig', 'size' => 512]); $encryption_key = \Jose\Factory\JWKFactory::createKey(['kty' => 'oct', 'use' => 'enc', 'size' => 256]); $jwt = $jwt_creator->signAndEncrypt($payload, ['alg' => 'HS256'], $signature_key, ['alg' => 'A256GCMKW', 'enc' => 'A128GCM'], $encryption_key); - $this->assertEquals(5, count(explode('.', $jwt))); + self::assertEquals(5, count(explode('.', $jwt))); } } diff --git a/tests/Unit/Objects/PublicJWKSetTest.php b/tests/Unit/Objects/PublicJWKSetTest.php index ca9c8f51..9644850e 100644 --- a/tests/Unit/Objects/PublicJWKSetTest.php +++ b/tests/Unit/Objects/PublicJWKSetTest.php @@ -18,7 +18,7 @@ * @group Unit * @group PublicJWKSet */ -class PublicJWKSetTest extends \PHPUnit_Framework_TestCase +class PublicJWKSetTest extends \Jose\Test\BaseTestCase { public function testKey() { @@ -34,9 +34,9 @@ public function testKey() $public_jwkset = new PublicJWKSet($jwkset); - $this->assertEquals(3, $public_jwkset->countKeys()); + self::assertEquals(3, $public_jwkset->countKeys()); foreach ($public_jwkset as $key) { - $this->assertEquals(json_encode($key), json_encode($key->toPublic())); + self::assertEquals(json_encode($key), json_encode($key->toPublic())); } $jwkset->delete(); @@ -75,24 +75,24 @@ public function testWithMultipleKeySets() $jwksets = new \Jose\Object\JWKSets([$jwkset1, $jwkset2, $jwkset3]); $public_jwkset = new PublicJWKSet($jwksets); - $this->assertEquals(7, $public_jwkset->countKeys()); + self::assertEquals(7, $public_jwkset->countKeys()); $public_jwkset->addKey(JWKFactory::createRSAKey(['size' => 384])); - $this->assertEquals(7, $public_jwkset->countKeys()); + self::assertEquals(7, $public_jwkset->countKeys()); $public_jwkset->removeKey(0); - $this->assertEquals(7, $public_jwkset->countKeys()); + self::assertEquals(7, $public_jwkset->countKeys()); - $this->assertEquals(7, count($public_jwkset->toPEM())); + self::assertEquals(7, count($public_jwkset->toPEM())); foreach ($public_jwkset as $key) { - $this->assertEquals(json_encode($key), json_encode($key->toPublic())); + self::assertEquals(json_encode($key), json_encode($key->toPublic())); } for ($i = 0; $i < 3; ++$i) { - $this->assertEquals(json_encode($public_jwkset[$i]), json_encode($jwkset1->getKey($i)->toPublic())); + self::assertEquals(json_encode($public_jwkset[$i]), json_encode($jwkset1->getKey($i)->toPublic())); } for ($i = 3; $i < 7; ++$i) { - $this->assertEquals(json_encode($public_jwkset[$i]), json_encode($jwkset3->getKey($i - 3)->toPublic())); + self::assertEquals(json_encode($public_jwkset[$i]), json_encode($jwkset3->getKey($i - 3)->toPublic())); } $jwkset1->delete(); diff --git a/tests/Unit/Objects/RotatableJWKSetTest.php b/tests/Unit/Objects/RotatableJWKSetTest.php index bbe4b0d9..9ceb6c5a 100644 --- a/tests/Unit/Objects/RotatableJWKSetTest.php +++ b/tests/Unit/Objects/RotatableJWKSetTest.php @@ -19,7 +19,7 @@ * @group StorableJWKSet * @group RotatableJWKSet */ -class RotatableJWKSetTest extends \PHPUnit_Framework_TestCase +class RotatableJWKSetTest extends \Jose\Test\BaseTestCase { public function testKey() { @@ -33,56 +33,56 @@ public function testKey() 3 ); - $this->assertEquals(3, $jwkset->count()); - $this->assertEquals(3, $jwkset->countKeys()); + self::assertEquals(3, $jwkset->count()); + self::assertEquals(3, $jwkset->countKeys()); - $this->assertInstanceOf(JWKInterface::class, $jwkset[0]); - $this->assertInstanceOf(JWKInterface::class, $jwkset[1]); - $this->assertInstanceOf(JWKInterface::class, $jwkset[2]); - $this->assertFalse(isset($jwkset[3])); - $this->assertTrue($jwkset->hasKey(0)); - $this->assertEquals($jwkset->getKey(0), $jwkset[0]); + self::assertInstanceOf(JWKInterface::class, $jwkset[0]); + self::assertInstanceOf(JWKInterface::class, $jwkset[1]); + self::assertInstanceOf(JWKInterface::class, $jwkset[2]); + self::assertFalse(isset($jwkset[3])); + self::assertTrue($jwkset->hasKey(0)); + self::assertEquals($jwkset->getKey(0), $jwkset[0]); foreach ($jwkset->getKeys() as $key) { - $this->assertInstanceOf(JWKInterface::class, $key); + self::assertInstanceOf(JWKInterface::class, $key); } foreach ($jwkset as $key) { - $this->assertInstanceOf(JWKInterface::class, $key); + self::assertInstanceOf(JWKInterface::class, $key); } $actual_content = json_encode($jwkset); - $this->assertEquals($actual_content, json_encode($jwkset)); + self::assertEquals($actual_content, json_encode($jwkset)); $jwkset->rotate(); - $this->assertNotEquals($actual_content, json_encode($jwkset)); + self::assertNotEquals($actual_content, json_encode($jwkset)); $actual_content = json_encode($jwkset); $jwkset[] = JWKFactory::createKey(['kty' => 'EC', 'crv' => 'P-521']); - $this->assertEquals(3, $jwkset->count()); - $this->assertEquals(3, $jwkset->countKeys()); - $this->assertEquals($actual_content, json_encode($jwkset)); + self::assertEquals(3, $jwkset->count()); + self::assertEquals(3, $jwkset->countKeys()); + self::assertEquals($actual_content, json_encode($jwkset)); unset($jwkset[count($jwkset) - 1]); - $this->assertEquals(3, $jwkset->count()); - $this->assertEquals(3, $jwkset->countKeys()); - $this->assertEquals($actual_content, json_encode($jwkset)); + self::assertEquals(3, $jwkset->count()); + self::assertEquals(3, $jwkset->countKeys()); + self::assertEquals($actual_content, json_encode($jwkset)); $jwkset->addKey(JWKFactory::createKey(['kty' => 'EC', 'crv' => 'P-521'])); - $this->assertEquals(3, $jwkset->count()); - $this->assertEquals(3, $jwkset->countKeys()); - $this->assertEquals($actual_content, json_encode($jwkset)); + self::assertEquals(3, $jwkset->count()); + self::assertEquals(3, $jwkset->countKeys()); + self::assertEquals($actual_content, json_encode($jwkset)); $jwkset->prependKey(JWKFactory::createKey(['kty' => 'EC', 'crv' => 'P-521'])); - $this->assertEquals(3, $jwkset->count()); - $this->assertEquals(3, $jwkset->countKeys()); - $this->assertEquals($actual_content, json_encode($jwkset)); + self::assertEquals(3, $jwkset->count()); + self::assertEquals(3, $jwkset->countKeys()); + self::assertEquals($actual_content, json_encode($jwkset)); $jwkset->removeKey(count($jwkset) - 1); - $this->assertEquals(3, $jwkset->count()); - $this->assertEquals(3, $jwkset->countKeys()); - $this->assertEquals($actual_content, json_encode($jwkset)); + self::assertEquals(3, $jwkset->count()); + self::assertEquals(3, $jwkset->countKeys()); + self::assertEquals($actual_content, json_encode($jwkset)); $jwkset->delete(); } @@ -100,8 +100,8 @@ public function testKeyInterval() 1 // 1 second rotation interval ); - $this->assertEquals(3, $jwkset->count()); - $this->assertEquals(3, $jwkset->countKeys()); + self::assertEquals(3, $jwkset->count()); + self::assertEquals(3, $jwkset->countKeys()); $before_rotate = json_decode(json_encode($jwkset))->keys; @@ -111,9 +111,9 @@ public function testKeyInterval() // Make sure that a manual call to getKeys triggered rotation $after_rotate = json_decode(json_encode($jwkset->getKeys())); - $this->assertCount(3, $after_rotate); - $this->assertEquals($before_rotate[0], $after_rotate[1]); - $this->assertEquals($before_rotate[1], $after_rotate[2]); + self::assertCount(3, $after_rotate); + self::assertEquals($before_rotate[0], $after_rotate[1]); + self::assertEquals($before_rotate[1], $after_rotate[2]); // Sleep to ensure next calls trigger rotation sleep(2); @@ -121,12 +121,12 @@ public function testKeyInterval() // Make sure that json serialization also triggered rotation $after_second_rotate = json_decode(json_encode($jwkset))->keys; - $this->assertCount(3, $after_second_rotate); - $this->assertEquals($after_rotate[0], $after_second_rotate[1]); - $this->assertEquals($after_rotate[1], $after_second_rotate[2]); + self::assertCount(3, $after_second_rotate); + self::assertEquals($after_rotate[0], $after_second_rotate[1]); + self::assertEquals($after_rotate[1], $after_second_rotate[2]); // Make sure that subsequent calls to get keys within the interval period do not trigger rotation - $this->assertEquals($after_second_rotate, json_decode(json_encode($jwkset->getKeys()))); - $this->assertEquals($after_second_rotate, json_decode(json_encode($jwkset))->keys); + self::assertEquals($after_second_rotate, json_decode(json_encode($jwkset->getKeys()))); + self::assertEquals($after_second_rotate, json_decode(json_encode($jwkset))->keys); } } diff --git a/tests/Unit/Objects/StorableJWKSetTest.php b/tests/Unit/Objects/StorableJWKSetTest.php index ddf26c2b..ce9fca3a 100644 --- a/tests/Unit/Objects/StorableJWKSetTest.php +++ b/tests/Unit/Objects/StorableJWKSetTest.php @@ -18,7 +18,7 @@ * @group Unit * @group StorableJWKSet */ -class StorableJWKSetTest extends \PHPUnit_Framework_TestCase +class StorableJWKSetTest extends \Jose\Test\BaseTestCase { public function testKey() { @@ -33,50 +33,50 @@ public function testKey() 3 ); - $this->assertEquals(3, $jwkset->count()); - $this->assertEquals(3, $jwkset->countKeys()); + self::assertEquals(3, $jwkset->count()); + self::assertEquals(3, $jwkset->countKeys()); - $this->assertInstanceOf(JWKInterface::class, $jwkset[0]); - $this->assertInstanceOf(JWKInterface::class, $jwkset[1]); - $this->assertInstanceOf(JWKInterface::class, $jwkset[2]); - $this->assertFalse(isset($jwkset[3])); - $this->assertTrue($jwkset->hasKey(0)); - $this->assertEquals($jwkset->getKey(0), $jwkset[0]); + self::assertInstanceOf(JWKInterface::class, $jwkset[0]); + self::assertInstanceOf(JWKInterface::class, $jwkset[1]); + self::assertInstanceOf(JWKInterface::class, $jwkset[2]); + self::assertFalse(isset($jwkset[3])); + self::assertTrue($jwkset->hasKey(0)); + self::assertEquals($jwkset->getKey(0), $jwkset[0]); foreach ($jwkset->getKeys() as $key) { - $this->assertInstanceOf(JWKInterface::class, $key); + self::assertInstanceOf(JWKInterface::class, $key); } foreach ($jwkset as $key) { - $this->assertInstanceOf(JWKInterface::class, $key); + self::assertInstanceOf(JWKInterface::class, $key); } $actual_content = json_encode($jwkset); - $this->assertEquals($actual_content, json_encode($jwkset)); + self::assertEquals($actual_content, json_encode($jwkset)); $jwkset[] = JWKFactory::createKey(['kty' => 'EC', 'crv' => 'P-521']); - $this->assertEquals(3, $jwkset->count()); - $this->assertEquals(3, $jwkset->countKeys()); - $this->assertEquals($actual_content, json_encode($jwkset)); + self::assertEquals(3, $jwkset->count()); + self::assertEquals(3, $jwkset->countKeys()); + self::assertEquals($actual_content, json_encode($jwkset)); unset($jwkset[count($jwkset) - 1]); - $this->assertEquals(3, $jwkset->count()); - $this->assertEquals(3, $jwkset->countKeys()); - $this->assertEquals($actual_content, json_encode($jwkset)); + self::assertEquals(3, $jwkset->count()); + self::assertEquals(3, $jwkset->countKeys()); + self::assertEquals($actual_content, json_encode($jwkset)); $jwkset->addKey(JWKFactory::createKey(['kty' => 'EC', 'crv' => 'P-521'])); - $this->assertEquals(3, $jwkset->count()); - $this->assertEquals(3, $jwkset->countKeys()); - $this->assertEquals($actual_content, json_encode($jwkset)); + self::assertEquals(3, $jwkset->count()); + self::assertEquals(3, $jwkset->countKeys()); + self::assertEquals($actual_content, json_encode($jwkset)); $jwkset->prependKey(JWKFactory::createKey(['kty' => 'EC', 'crv' => 'P-521'])); - $this->assertEquals(3, $jwkset->count()); - $this->assertEquals(3, $jwkset->countKeys()); - $this->assertEquals($actual_content, json_encode($jwkset)); + self::assertEquals(3, $jwkset->count()); + self::assertEquals(3, $jwkset->countKeys()); + self::assertEquals($actual_content, json_encode($jwkset)); $jwkset->removeKey(count($jwkset) - 1); - $this->assertEquals(3, $jwkset->count()); - $this->assertEquals(3, $jwkset->countKeys()); - $this->assertEquals($actual_content, json_encode($jwkset)); + self::assertEquals(3, $jwkset->count()); + self::assertEquals(3, $jwkset->countKeys()); + self::assertEquals($actual_content, json_encode($jwkset)); $jwkset->delete(); } diff --git a/tests/Unit/Objects/StorableJWKTest.php b/tests/Unit/Objects/StorableJWKTest.php index 3520475c..be9377ed 100644 --- a/tests/Unit/Objects/StorableJWKTest.php +++ b/tests/Unit/Objects/StorableJWKTest.php @@ -17,7 +17,7 @@ * @group Unit * @group StorableJWK */ -class StorableJWKTest extends \PHPUnit_Framework_TestCase +class StorableJWKTest extends \Jose\Test\BaseTestCase { public function testKey() { @@ -31,22 +31,22 @@ public function testKey() ); $all = $jwk->getAll(); - $this->assertEquals($all, $jwk->getAll()); - $this->assertTrue($jwk->has('kty')); - $this->assertTrue($jwk->has('crv')); - $this->assertEquals('EC', $jwk->get('kty')); - $this->assertEquals('P-256', $jwk->get('crv')); - $this->assertTrue(is_string($jwk->thumbprint('sha256'))); - $this->assertTrue(is_string(json_encode($jwk))); - $this->assertInstanceOf(\Jose\Object\JWKInterface::class, $jwk->toPublic()); + self::assertEquals($all, $jwk->getAll()); + self::assertTrue($jwk->has('kty')); + self::assertTrue($jwk->has('crv')); + self::assertEquals('EC', $jwk->get('kty')); + self::assertEquals('P-256', $jwk->get('crv')); + self::assertTrue(is_string($jwk->thumbprint('sha256'))); + self::assertTrue(is_string(json_encode($jwk))); + self::assertInstanceOf(\Jose\Object\JWKInterface::class, $jwk->toPublic()); - $this->assertEquals($all, $jwk->getAll()); + self::assertEquals($all, $jwk->getAll()); $jwk->regen(); - $this->assertNotEquals($all, $jwk->getAll()); + self::assertNotEquals($all, $jwk->getAll()); $all = $jwk->getAll(); - $this->assertEquals($all, $jwk->getAll()); + self::assertEquals($all, $jwk->getAll()); $jwk->delete(); }