installed plugin WP-WebAuthn
version 1.2.8
This commit is contained in:
@ -0,0 +1,4 @@
|
||||
# Contributing
|
||||
|
||||
This repository is a sub repository of [the JWT Framework](https://github.com/web-token/jwt-framework) project and is READ ONLY.
|
||||
Please do not submit any Pull Requests here. It will be automatically closed.
|
@ -0,0 +1 @@
|
||||
patreon: FlorentMorselli
|
@ -0,0 +1,3 @@
|
||||
Please do not submit any Pull Requests here. It will be automatically closed.
|
||||
|
||||
You should submit it here: https://github.com/web-token/jwt-framework/pulls
|
107
wp-content/plugins/wp-webauthn/vendor/web-token/jwt-signature-algorithm-eddsa/EdDSA.php
vendored
Normal file
107
wp-content/plugins/wp-webauthn/vendor/web-token/jwt-signature-algorithm-eddsa/EdDSA.php
vendored
Normal file
@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2014-2020 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 Base64Url\Base64Url;
|
||||
use function extension_loaded;
|
||||
use function in_array;
|
||||
use InvalidArgumentException;
|
||||
use Jose\Component\Core\JWK;
|
||||
use RuntimeException;
|
||||
|
||||
final class EdDSA implements SignatureAlgorithm
|
||||
{
|
||||
/**
|
||||
* EdDSA constructor.
|
||||
*
|
||||
* @throws RuntimeException if the extension "sodium" is not available
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
if (!extension_loaded('sodium')) {
|
||||
throw new RuntimeException('The extension "sodium" is not available. Please install it to use this method');
|
||||
}
|
||||
}
|
||||
|
||||
public function allowedKeyTypes(): array
|
||||
{
|
||||
return ['OKP'];
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the key is not private
|
||||
* @throws InvalidArgumentException if the curve is not supported
|
||||
*/
|
||||
public function sign(JWK $key, string $input): string
|
||||
{
|
||||
$this->checkKey($key);
|
||||
if (!$key->has('d')) {
|
||||
throw new InvalidArgumentException('The EC key is not private');
|
||||
}
|
||||
$x = Base64Url::decode($key->get('x'));
|
||||
$d = Base64Url::decode($key->get('d'));
|
||||
$secret = $d.$x;
|
||||
|
||||
switch ($key->get('crv')) {
|
||||
case 'Ed25519':
|
||||
return sodium_crypto_sign_detached($input, $secret);
|
||||
|
||||
default:
|
||||
throw new InvalidArgumentException('Unsupported curve');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the curve is not supported
|
||||
*/
|
||||
public function verify(JWK $key, string $input, string $signature): bool
|
||||
{
|
||||
$this->checkKey($key);
|
||||
|
||||
$public = Base64Url::decode($key->get('x'));
|
||||
|
||||
switch ($key->get('crv')) {
|
||||
case 'Ed25519':
|
||||
return sodium_crypto_sign_verify_detached($signature, $input, $public);
|
||||
|
||||
default:
|
||||
throw new InvalidArgumentException('Unsupported curve');
|
||||
}
|
||||
}
|
||||
|
||||
public function name(): string
|
||||
{
|
||||
return 'EdDSA';
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws InvalidArgumentException if the key type is not valid
|
||||
* @throws InvalidArgumentException if a mandatory key parameter is missing
|
||||
* @throws InvalidArgumentException if the curve is not suuported
|
||||
*/
|
||||
private function checkKey(JWK $key): void
|
||||
{
|
||||
if (!in_array($key->get('kty'), $this->allowedKeyTypes(), true)) {
|
||||
throw new InvalidArgumentException('Wrong key type.');
|
||||
}
|
||||
foreach (['x', 'crv'] as $k) {
|
||||
if (!$key->has($k)) {
|
||||
throw new InvalidArgumentException(sprintf('The key parameter "%s" is missing.', $k));
|
||||
}
|
||||
}
|
||||
if ('Ed25519' !== $key->get('crv')) {
|
||||
throw new InvalidArgumentException('Unsupported curve.');
|
||||
}
|
||||
}
|
||||
}
|
21
wp-content/plugins/wp-webauthn/vendor/web-token/jwt-signature-algorithm-eddsa/LICENSE
vendored
Normal file
21
wp-content/plugins/wp-webauthn/vendor/web-token/jwt-signature-algorithm-eddsa/LICENSE
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-2019 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.
|
15
wp-content/plugins/wp-webauthn/vendor/web-token/jwt-signature-algorithm-eddsa/README.md
vendored
Normal file
15
wp-content/plugins/wp-webauthn/vendor/web-token/jwt-signature-algorithm-eddsa/README.md
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
EdDSA Based Signature Algorithms For JWT-Framework
|
||||
==================================================
|
||||
|
||||
This repository is a sub repository of [the JWT Framework](https://github.com/web-token/jwt-framework) project and is READ ONLY.
|
||||
|
||||
**Please do not submit any Pull Request here.**
|
||||
You should go to [the main repository](https://github.com/web-token/jwt-framework) instead.
|
||||
|
||||
# Documentation
|
||||
|
||||
The official documentation is available as https://web-token.spomky-labs.com/
|
||||
|
||||
# Licence
|
||||
|
||||
This software is release under [MIT licence](LICENSE).
|
26
wp-content/plugins/wp-webauthn/vendor/web-token/jwt-signature-algorithm-eddsa/composer.json
vendored
Normal file
26
wp-content/plugins/wp-webauthn/vendor/web-token/jwt-signature-algorithm-eddsa/composer.json
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "web-token/jwt-signature-algorithm-eddsa",
|
||||
"description": "EdDSA Signature Algorithm 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-framework/contributors"
|
||||
}
|
||||
],
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Jose\\Component\\Signature\\Algorithm\\": ""
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"ext-sodium": "*",
|
||||
"web-token/jwt-signature": "^2.1"
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user