, * authenticatorSelection: array, * timeout: positive-int, * attestation: non-empty-string * } * * @throws WebAuthnException */ public function getCredentialCreationOptions(string $userName, string $userId, string $relyingPartyId): array; /** * @psalm-param list $allowedCredentials * * @return array>|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 $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; }