HEX
Server: nginx/1.24.0
System: Linux localhost 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64
User: www (1000)
PHP: 8.3.27
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //www/server/phpmyadmin/phpmyadmin_7f7ba7259a83e5ee/libraries/classes/WebAuthn/Server.php
<?php

declare(strict_types=1);

namespace PhpMyAdmin\WebAuthn;

use Psr\Http\Message\ServerRequestInterface;

/**
 * Web Authentication API server.
 *
 * @see https://www.w3.org/TR/webauthn-3/
 * @see https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API
 * @see https://webauthn.guide/
 */
interface Server
{
    /**
     * @psalm-return array{
     *   challenge: non-empty-string,
     *   rp: array{name: string, id: string},
     *   user: array{id: string, name: string, displayName: string},
     *   pubKeyCredParams: list<array{alg: int, type: 'public-key'}>,
     *   authenticatorSelection: array<string, string>,
     *   timeout: positive-int,
     *   attestation: non-empty-string
     * }
     *
     * @throws WebAuthnException
     */
    public function getCredentialCreationOptions(string $userName, string $userId, string $relyingPartyId): array;

    /**
     * @psalm-param list<array{id: non-empty-string, type: non-empty-string}> $allowedCredentials
     *
     * @return array<string, array<int, array<string, string>>|int|string>
     *
     * @throws WebAuthnException
     */
    public function getCredentialRequestOptions(
        string $userName,
        string $userId,
        string $relyingPartyId,
        array $allowedCredentials
    ): array;

    /**
     * @see https://www.w3.org/TR/webauthn-3/#sctn-verifying-assertion
     *
     * @psalm-param non-empty-string $assertionResponseJson
     * @psalm-param list<array{id: non-empty-string, type: non-empty-string}> $allowedCredentials
     * @psalm-param non-empty-string $challenge
     *
     * @throws WebAuthnException
     */
    public function parseAndValidateAssertionResponse(
        string $assertionResponseJson,
        array $allowedCredentials,
        string $challenge,
        ServerRequestInterface $request
    ): void;

    /**
     * @see https://www.w3.org/TR/webauthn-3/#sctn-registering-a-new-credential
     *
     * @psalm-param non-empty-string $attestationResponse
     * @psalm-param non-empty-string $credentialCreationOptions
     *
     * @return mixed[]
     *
     * @throws WebAuthnException
     */
    public function parseAndValidateAttestationResponse(
        string $attestationResponse,
        string $credentialCreationOptions,
        ServerRequestInterface $request
    ): array;
}