@Override
    public boolean matches(final X509Certificate attestationCertificate, final JsonNode parameters) {
        val matchKey = parameters.get(EXTENSION_KEY).asText();
        val matchValue = parameters.get(EXTENSION_VALUE);
        val extensionValue = attestationCertificate.getExtensionValue(matchKey);
        if (extensionValue != null) {
            if (matchValue == null) {
                return true;
            } else {
                try {
                    val value = ASN1Primitive.fromByteArray(extensionValue);

                    if (matchValue.isObject()) {
                        if (matchTypedValue(matchKey, matchValue, value)) {
                            return true;
                        }
                    } else if (matchValue.isTextual()) {
                        if (matchStringValue(matchKey, matchValue, value)) return true;
                    }
                } catch (final IOException e) {
                    LOGGER.error(
                        "Failed to parse extension value as ASN1: {}",
                        new ByteArray(extensionValue).getHex(),
                        e);
                }
            }
        }
        return false;
    }
This is {@link ExtensionMatcher}.

@author Misagh Moayyed
@since 6.6.0
support/cas-server-support-webauthn-core/src/main/java/com/yubico/webauthn/attestation/matcher/ExtensionMatcher.java