Файловый менеджер - Редактировать - /home/lmsyaran/public_html/joomla5/libraries/vendor/web-auth/webauthn-lib/src/PublicKeyCredentialSource.php
Назад
<?php declare(strict_types=1); namespace Webauthn; use function array_key_exists; use JsonSerializable; use ParagonIE\ConstantTime\Base64UrlSafe; use Symfony\Component\Uid\AbstractUid; use Symfony\Component\Uid\Uuid; use Throwable; use Webauthn\Exception\InvalidDataException; use Webauthn\TrustPath\TrustPath; use Webauthn\TrustPath\TrustPathLoader; /** * @see https://www.w3.org/TR/webauthn/#iface-pkcredential */ class PublicKeyCredentialSource implements JsonSerializable { /** * @param string[] $transports * @param array<string, mixed>|null $otherUI */ public function __construct( protected string $publicKeyCredentialId, protected string $type, protected array $transports, protected string $attestationType, protected TrustPath $trustPath, protected AbstractUid $aaguid, protected string $credentialPublicKey, protected string $userHandle, protected int $counter, protected ?array $otherUI = null ) { } /** * @param string[] $transports * @param array<string, mixed>|null $otherUI */ public static function create( string $publicKeyCredentialId, string $type, array $transports, string $attestationType, TrustPath $trustPath, AbstractUid $aaguid, string $credentialPublicKey, string $userHandle, int $counter, ?array $otherUI = null ): self { return new self( $publicKeyCredentialId, $type, $transports, $attestationType, $trustPath, $aaguid, $credentialPublicKey, $userHandle, $counter, $otherUI ); } public function getPublicKeyCredentialId(): string { return $this->publicKeyCredentialId; } public function getPublicKeyCredentialDescriptor(): PublicKeyCredentialDescriptor { return new PublicKeyCredentialDescriptor($this->type, $this->publicKeyCredentialId, $this->transports); } public function getAttestationType(): string { return $this->attestationType; } public function getTrustPath(): TrustPath { return $this->trustPath; } public function getAttestedCredentialData(): AttestedCredentialData { return new AttestedCredentialData($this->aaguid, $this->publicKeyCredentialId, $this->credentialPublicKey); } public function getType(): string { return $this->type; } /** * @return string[] */ public function getTransports(): array { return $this->transports; } public function getAaguid(): AbstractUid { return $this->aaguid; } public function getCredentialPublicKey(): string { return $this->credentialPublicKey; } public function getUserHandle(): string { return $this->userHandle; } public function getCounter(): int { return $this->counter; } public function setCounter(int $counter): void { $this->counter = $counter; } /** * @return array<string, mixed>|null */ public function getOtherUI(): ?array { return $this->otherUI; } /** * @param array<string, mixed>|null $otherUI */ public function setOtherUI(?array $otherUI): self { $this->otherUI = $otherUI; return $this; } /** * @param mixed[] $data */ public static function createFromArray(array $data): self { $keys = array_keys(get_class_vars(self::class)); foreach ($keys as $key) { if ($key === 'otherUI') { continue; } array_key_exists($key, $data) || throw InvalidDataException::create($data, sprintf( 'The parameter "%s" is missing', $key )); } mb_strlen((string) $data['aaguid'], '8bit') === 36 || throw InvalidDataException::create( $data, 'Invalid AAGUID' ); $uuid = Uuid::fromString($data['aaguid']); try { return new self( Base64UrlSafe::decodeNoPadding($data['publicKeyCredentialId']), $data['type'], $data['transports'], $data['attestationType'], TrustPathLoader::loadTrustPath($data['trustPath']), $uuid, Base64UrlSafe::decodeNoPadding($data['credentialPublicKey']), Base64UrlSafe::decodeNoPadding($data['userHandle']), $data['counter'], $data['otherUI'] ?? null ); } catch (Throwable $throwable) { throw InvalidDataException::create($data, 'Unable to load the data', $throwable); } } /** * @return mixed[] */ public function jsonSerialize(): array { return [ 'publicKeyCredentialId' => Base64UrlSafe::encodeUnpadded($this->publicKeyCredentialId), 'type' => $this->type, 'transports' => $this->transports, 'attestationType' => $this->attestationType, 'trustPath' => $this->trustPath->jsonSerialize(), 'aaguid' => $this->aaguid->__toString(), 'credentialPublicKey' => Base64UrlSafe::encodeUnpadded($this->credentialPublicKey), 'userHandle' => Base64UrlSafe::encodeUnpadded($this->userHandle), 'counter' => $this->counter, 'otherUI' => $this->otherUI, ]; } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка