add(new ES256()); $algorithmManager->add(new RS256()); static::$authenticatorAssertionResponseValidator = new AuthenticatorAssertionResponseValidator( static::getPublicKeyCredentialSourceRepository(), new IgnoreTokenBindingHandler(), new ExtensionOutputCheckerHandler(), $algorithmManager ); } return static::$authenticatorAssertionResponseValidator; } public static function getAuthenticatorAttestationResponseValidator(): AuthenticatorAttestationResponseValidator { return new AuthenticatorAttestationResponseValidator( static::getAttestationStatementSupportManager(), static::getPublicKeyCredentialSourceRepository(), new IgnoreTokenBindingHandler(), new ExtensionOutputCheckerHandler() ); } public static function getPublicKeyCredentialLoader(): PublicKeyCredentialLoader { return new PublicKeyCredentialLoader( static::getAttestationObjectLoader() ); } public static function getAttestationObjectLoader(): AttestationObjectLoader { return new AttestationObjectLoader(static::getAttestationStatementSupportManager()); } private static function getAttestationStatementSupportManager(): AttestationStatementSupportManager { if (static::$attestationStatementSupportManager === null) { static::$attestationStatementSupportManager = new AttestationStatementSupportManager(); static::$attestationStatementSupportManager->add(new NoneAttestationStatementSupport()); } return static::$attestationStatementSupportManager; } private static function getRpEntity(): PublicKeyCredentialRpEntity { return new PublicKeyCredentialRpEntity( static::$rpName, static::$rpId ); } }