Class BouncyCastleUtil


  • public final class BouncyCastleUtil
    extends java.lang.Object
    Contains methods that can be used to detect if BouncyCastle is available.
    • Field Detail

      • BC_PROVIDER_NAME

        private static final java.lang.String BC_PROVIDER_NAME
        See Also:
        Constant Field Values
      • BC_FIPS_PROVIDER_NAME

        private static final java.lang.String BC_FIPS_PROVIDER_NAME
        See Also:
        Constant Field Values
      • BC_FIPS_PROVIDER

        private static final java.lang.String BC_FIPS_PROVIDER
        See Also:
        Constant Field Values
      • BC_JSSE_PROVIDER_NAME

        private static final java.lang.String BC_JSSE_PROVIDER_NAME
        See Also:
        Constant Field Values
      • BC_JSSE_PROVIDER

        private static final java.lang.String BC_JSSE_PROVIDER
        See Also:
        Constant Field Values
      • BC_JSSE_SSLENGINE

        private static final java.lang.String BC_JSSE_SSLENGINE
        See Also:
        Constant Field Values
      • BC_JSSE_ALPN_SELECTOR

        private static final java.lang.String BC_JSSE_ALPN_SELECTOR
        See Also:
        Constant Field Values
      • unavailabilityCauseBcProv

        private static volatile java.lang.Throwable unavailabilityCauseBcProv
      • unavailabilityCauseBcPkix

        private static volatile java.lang.Throwable unavailabilityCauseBcPkix
      • unavailabilityCauseBcTls

        private static volatile java.lang.Throwable unavailabilityCauseBcTls
      • bcProviderJce

        private static volatile java.security.Provider bcProviderJce
      • bcProviderJsse

        private static volatile java.security.Provider bcProviderJsse
      • bcSSLEngineClass

        private static volatile java.lang.Class<? extends javax.net.ssl.SSLEngine> bcSSLEngineClass
      • attemptedLoading

        private static volatile boolean attemptedLoading
    • Constructor Detail

      • BouncyCastleUtil

        private BouncyCastleUtil()
    • Method Detail

      • isBcProvAvailable

        public static boolean isBcProvAvailable()
        Indicate whether the BouncyCastle Java Crypto Extensions provider is available.
      • isBcPkixAvailable

        public static boolean isBcPkixAvailable()
        Indicate whether the BouncyCastle Public-Key Infrastructure utilities are available.
      • isBcTlsAvailable

        public static boolean isBcTlsAvailable()
        Indicate whether the BouncyCastle Java Secure Socket Extensions provider is available.
      • unavailabilityCauseBcProv

        public static java.lang.Throwable unavailabilityCauseBcProv()
        Returns:
        the cause if unavailable. null if available.
      • unavailabilityCauseBcPkix

        public static java.lang.Throwable unavailabilityCauseBcPkix()
        Returns:
        the cause if unavailable. null if available.
      • unavailabilityCauseBcTls

        public static java.lang.Throwable unavailabilityCauseBcTls()
        Returns:
        the cause if unavailable. null if available.
      • isBcJsseInUse

        public static boolean isBcJsseInUse​(javax.net.ssl.SSLEngine engine)
        Indicates whether the given SSLEngine is implemented by BouncyCastle.
      • getBcProviderJce

        public static java.security.Provider getBcProviderJce()
        Get the BouncyCastle Java Crypto Extensions provider, or throw an exception if it is unavailable.
      • getBcProviderJsse

        public static java.security.Provider getBcProviderJsse()
        Get the BouncyCastle Java Secure Socket Extensions provider, or throw an exception if it is unavailable.
      • getBcSSLEngineClass

        public static java.lang.Class<? extends javax.net.ssl.SSLEngine> getBcSSLEngineClass()
        Returns the public SSLEngine sub-class that is used by bouncy-castle or null if it can't be loaded.
        Returns:
        engine class.
      • reset

        static void reset()
        Reset the loaded providers. Useful for testing, to redo the loading under different conditions.
      • ensureLoaded

        private static void ensureLoaded()
      • tryLoading

        private static void tryLoading()