diff options
Diffstat (limited to 'vendor/web-token/jwt-signature-algorithm-rsa')
9 files changed, 323 insertions, 0 deletions
diff --git a/vendor/web-token/jwt-signature-algorithm-rsa/LICENSE b/vendor/web-token/jwt-signature-algorithm-rsa/LICENSE new file mode 100644 index 0000000..a098645 --- /dev/null +++ b/vendor/web-token/jwt-signature-algorithm-rsa/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2018 Spomky-Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/web-token/jwt-signature-algorithm-rsa/PS256.php b/vendor/web-token/jwt-signature-algorithm-rsa/PS256.php new file mode 100644 index 0000000..366f4a6 --- /dev/null +++ b/vendor/web-token/jwt-signature-algorithm-rsa/PS256.php @@ -0,0 +1,34 @@ +<?php + +declare(strict_types=1); + +/* + * The MIT License (MIT) + * + * Copyright (c) 2014-2018 Spomky-Labs + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ + +namespace Jose\Component\Signature\Algorithm; + +use Jose\Component\Signature\Util\RSA as JoseRSA; + +final class PS256 extends RSA +{ + protected function getAlgorithm(): string + { + return 'sha256'; + } + + protected function getSignatureMethod(): int + { + return JoseRSA::SIGNATURE_PSS; + } + + public function name(): string + { + return 'PS256'; + } +} diff --git a/vendor/web-token/jwt-signature-algorithm-rsa/PS384.php b/vendor/web-token/jwt-signature-algorithm-rsa/PS384.php new file mode 100644 index 0000000..0f87ca8 --- /dev/null +++ b/vendor/web-token/jwt-signature-algorithm-rsa/PS384.php @@ -0,0 +1,34 @@ +<?php + +declare(strict_types=1); + +/* + * The MIT License (MIT) + * + * Copyright (c) 2014-2018 Spomky-Labs + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ + +namespace Jose\Component\Signature\Algorithm; + +use Jose\Component\Signature\Util\RSA as JoseRSA; + +final class PS384 extends RSA +{ + protected function getAlgorithm(): string + { + return 'sha384'; + } + + protected function getSignatureMethod(): int + { + return JoseRSA::SIGNATURE_PSS; + } + + public function name(): string + { + return 'PS384'; + } +} diff --git a/vendor/web-token/jwt-signature-algorithm-rsa/PS512.php b/vendor/web-token/jwt-signature-algorithm-rsa/PS512.php new file mode 100644 index 0000000..08a58a1 --- /dev/null +++ b/vendor/web-token/jwt-signature-algorithm-rsa/PS512.php @@ -0,0 +1,34 @@ +<?php + +declare(strict_types=1); + +/* + * The MIT License (MIT) + * + * Copyright (c) 2014-2018 Spomky-Labs + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ + +namespace Jose\Component\Signature\Algorithm; + +use Jose\Component\Signature\Util\RSA as JoseRSA; + +final class PS512 extends RSA +{ + protected function getAlgorithm(): string + { + return 'sha512'; + } + + protected function getSignatureMethod(): int + { + return JoseRSA::SIGNATURE_PSS; + } + + public function name(): string + { + return 'PS512'; + } +} diff --git a/vendor/web-token/jwt-signature-algorithm-rsa/RS256.php b/vendor/web-token/jwt-signature-algorithm-rsa/RS256.php new file mode 100644 index 0000000..0bedfa2 --- /dev/null +++ b/vendor/web-token/jwt-signature-algorithm-rsa/RS256.php @@ -0,0 +1,34 @@ +<?php + +declare(strict_types=1); + +/* + * The MIT License (MIT) + * + * Copyright (c) 2014-2018 Spomky-Labs + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ + +namespace Jose\Component\Signature\Algorithm; + +use Jose\Component\Signature\Util\RSA as JoseRSA; + +final class RS256 extends RSA +{ + protected function getAlgorithm(): string + { + return 'sha256'; + } + + protected function getSignatureMethod(): int + { + return JoseRSA::SIGNATURE_PKCS1; + } + + public function name(): string + { + return 'RS256'; + } +} diff --git a/vendor/web-token/jwt-signature-algorithm-rsa/RS384.php b/vendor/web-token/jwt-signature-algorithm-rsa/RS384.php new file mode 100644 index 0000000..1b009ba --- /dev/null +++ b/vendor/web-token/jwt-signature-algorithm-rsa/RS384.php @@ -0,0 +1,34 @@ +<?php + +declare(strict_types=1); + +/* + * The MIT License (MIT) + * + * Copyright (c) 2014-2018 Spomky-Labs + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ + +namespace Jose\Component\Signature\Algorithm; + +use Jose\Component\Signature\Util\RSA as JoseRSA; + +final class RS384 extends RSA +{ + protected function getAlgorithm(): string + { + return 'sha384'; + } + + protected function getSignatureMethod(): int + { + return JoseRSA::SIGNATURE_PKCS1; + } + + public function name(): string + { + return 'RS384'; + } +} diff --git a/vendor/web-token/jwt-signature-algorithm-rsa/RS512.php b/vendor/web-token/jwt-signature-algorithm-rsa/RS512.php new file mode 100644 index 0000000..800573c --- /dev/null +++ b/vendor/web-token/jwt-signature-algorithm-rsa/RS512.php @@ -0,0 +1,34 @@ +<?php + +declare(strict_types=1); + +/* + * The MIT License (MIT) + * + * Copyright (c) 2014-2018 Spomky-Labs + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ + +namespace Jose\Component\Signature\Algorithm; + +use Jose\Component\Signature\Util\RSA as JoseRSA; + +final class RS512 extends RSA +{ + protected function getAlgorithm(): string + { + return 'sha512'; + } + + protected function getSignatureMethod(): int + { + return JoseRSA::SIGNATURE_PKCS1; + } + + public function name(): string + { + return 'RS512'; + } +} diff --git a/vendor/web-token/jwt-signature-algorithm-rsa/RSA.php b/vendor/web-token/jwt-signature-algorithm-rsa/RSA.php new file mode 100644 index 0000000..12a4445 --- /dev/null +++ b/vendor/web-token/jwt-signature-algorithm-rsa/RSA.php @@ -0,0 +1,62 @@ +<?php + +declare(strict_types=1); + +/* + * The MIT License (MIT) + * + * Copyright (c) 2014-2018 Spomky-Labs + * + * This software may be modified and distributed under the terms + * of the MIT license. See the LICENSE file for details. + */ + +namespace Jose\Component\Signature\Algorithm; + +use Jose\Component\Core\JWK; +use Jose\Component\Core\Util\RSAKey; +use Jose\Component\Signature\Util\RSA as JoseRSA; + +abstract class RSA implements SignatureAlgorithm +{ + abstract protected function getAlgorithm(): string; + + abstract protected function getSignatureMethod(): int; + + public function allowedKeyTypes(): array + { + return ['RSA']; + } + + public function verify(JWK $key, string $input, string $signature): bool + { + $this->checkKey($key); + $pub = RSAKey::createFromJWK($key->toPublic()); + + return JoseRSA::verify($pub, $input, $signature, $this->getAlgorithm(), $this->getSignatureMethod()); + } + + public function sign(JWK $key, string $input): string + { + $this->checkKey($key); + if (!$key->has('d')) { + throw new \InvalidArgumentException('The key is not a private key.'); + } + + $priv = RSAKey::createFromJWK($key); + + return JoseRSA::sign($priv, $input, $this->getAlgorithm(), $this->getSignatureMethod()); + } + + private function checkKey(JWK $key) + { + if (!\in_array($key->get('kty'), $this->allowedKeyTypes(), true)) { + throw new \InvalidArgumentException('Wrong key type.'); + } + foreach (['n', 'e'] as $k) { + if (!$key->has($k)) { + throw new \InvalidArgumentException(\sprintf('The key parameter "%s" is missing.', $k)); + } + } + } +} diff --git a/vendor/web-token/jwt-signature-algorithm-rsa/composer.json b/vendor/web-token/jwt-signature-algorithm-rsa/composer.json new file mode 100644 index 0000000..7dee44a --- /dev/null +++ b/vendor/web-token/jwt-signature-algorithm-rsa/composer.json @@ -0,0 +1,36 @@ +{ + "name": "web-token/jwt-signature-algorithm-rsa", + "description": "RSA Based Signature Algorithms the JWT Framework.", + "type": "library", + "license": "MIT", + "keywords": ["JWS", "JWT", "JWE", "JWA", "JWK", "JWKSet", "Jot", "Jose", "RFC7515", "RFC7516", "RFC7517", "RFC7518", "RFC7519", "RFC7520", "Bundle", "Symfony"], + "homepage": "https://github.com/web-token", + "authors": [ + { + "name": "Florent Morselli", + "homepage": "https://github.com/Spomky" + },{ + "name": "All contributors", + "homepage": "https://github.com/web-token/jwt-core/contributors" + } + ], + "autoload": { + "psr-4": { + "Jose\\Component\\Signature\\Algorithm\\": "" + } + }, + "require": { + "web-token/jwt-signature": "^1.3" + }, + "require-dev": { + "phpunit/phpunit": "^6.0|^7.0" + }, + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "config": { + "sort-packages": true + } +} |