public static X509Certificate parseCertificate()

in src/main/java/org/jetbrains/nativecerts/NativeTrustedRootsInternalUtils.java [63:86]


    public static X509Certificate parseCertificate(byte[] bytes) {
        try {
            // Try to parse with a standard provider (usually the provider bundled with JRE)
            return parseCertificate(bytes, CertificateFactory.getInstance("X.509"));
        } catch (Throwable e) {
            Logger logger = Logger.getLogger(NativeTrustedRootsInternalUtils.class.getName());

            if (logger.isLoggable(Level.FINE)) {
                logger.fine(renderExceptionMessage("Unable to parse certificate with a standard X509 parser, falling back to BouncyCastle", e));
            }

            // If it fails, fallback to explicitly specified BouncyCastle provider
            // see, e.g., https://youtrack.jetbrains.com/issue/IDEA-318004

            CertificateFactory bcProvider;
            try {
                bcProvider = CertificateFactory.getInstance("X.509", BouncyCastleLazyProvider.INSTANCE);
            } catch (CertificateException ex) {
                throw new RuntimeException(ex);
            }

            return parseCertificate(bytes, bcProvider);
        }
    }