| Server IP : 172.67.191.97 / Your IP : 104.23.243.196 Web Server : Apache/2.4.63 (Ubuntu) System : Linux adminpruebas-Virtual-Machine 6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 8.4.5 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/bienestar/libraries/vendor/web-auth/webauthn-lib/src/TokenBinding/ |
Upload File : |
<?php
declare(strict_types=1);
namespace Webauthn\TokenBinding;
use function array_key_exists;
use function in_array;
use ParagonIE\ConstantTime\Base64UrlSafe;
use Webauthn\Exception\InvalidDataException;
/**
* @deprecated Since 4.3.0 and will be removed in 5.0.0
*/
class TokenBinding
{
final public const TOKEN_BINDING_STATUS_PRESENT = 'present';
final public const TOKEN_BINDING_STATUS_SUPPORTED = 'supported';
final public const TOKEN_BINDING_STATUS_NOT_SUPPORTED = 'not-supported';
private readonly string $status;
private readonly ?string $id;
public function __construct(string $status, ?string $id)
{
$status === self::TOKEN_BINDING_STATUS_PRESENT && $id === null && throw InvalidDataException::create(
[$status, $id],
'The member "id" is required when status is "present"'
);
$this->status = $status;
$this->id = $id;
}
/**
* @param mixed[] $json
*/
public static function createFormArray(array $json): self
{
array_key_exists('status', $json) || throw InvalidDataException::create(
$json,
'The member "status" is required'
);
$status = $json['status'];
in_array($status, self::getSupportedStatus(), true) || throw InvalidDataException::create($json, sprintf(
'The member "status" is invalid. Supported values are: %s',
implode(', ', self::getSupportedStatus())
));
$id = array_key_exists('id', $json) ? Base64UrlSafe::decodeNoPadding($json['id']) : null;
return new self($status, $id);
}
public function getStatus(): string
{
return $this->status;
}
public function getId(): ?string
{
return $this->id;
}
/**
* @return string[]
*/
private static function getSupportedStatus(): array
{
return [
self::TOKEN_BINDING_STATUS_PRESENT,
self::TOKEN_BINDING_STATUS_SUPPORTED,
self::TOKEN_BINDING_STATUS_NOT_SUPPORTED,
];
}
}