BouncyCastleUtil Class — netty Architecture
Architecture documentation for the BouncyCastleUtil class in BouncyCastleUtil.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 3d807587_1576_ed5a_5887_67583b16915a["BouncyCastleUtil"] 3b29fce3_18a5_bcf4_2c00_b31be924c3b0["BouncyCastleUtil.java"] 3d807587_1576_ed5a_5887_67583b16915a -->|defined in| 3b29fce3_18a5_bcf4_2c00_b31be924c3b0 a97a7eed_212b_0045_da5f_917cd2be2b28["isBcProvAvailable()"] 3d807587_1576_ed5a_5887_67583b16915a -->|method| a97a7eed_212b_0045_da5f_917cd2be2b28 0f177b22_40a5_4814_deb6_cbf26a9984ca["isBcPkixAvailable()"] 3d807587_1576_ed5a_5887_67583b16915a -->|method| 0f177b22_40a5_4814_deb6_cbf26a9984ca 32ea126a_bdd5_8684_f271_62940a40b29d["isBcTlsAvailable()"] 3d807587_1576_ed5a_5887_67583b16915a -->|method| 32ea126a_bdd5_8684_f271_62940a40b29d 2b223ace_df07_10db_673b_e9b194c0f858["Throwable()"] 3d807587_1576_ed5a_5887_67583b16915a -->|method| 2b223ace_df07_10db_673b_e9b194c0f858 5387aa15_628f_bfeb_97f3_7ea37b1e2357["isBcJsseInUse()"] 3d807587_1576_ed5a_5887_67583b16915a -->|method| 5387aa15_628f_bfeb_97f3_7ea37b1e2357 7cb06862_177c_5601_1607_70835b360fc8["Provider()"] 3d807587_1576_ed5a_5887_67583b16915a -->|method| 7cb06862_177c_5601_1607_70835b360fc8 5c4b96e3_4b48_e1ec_b479_23eea5ac0c79["getBcSSLEngineClass()"] 3d807587_1576_ed5a_5887_67583b16915a -->|method| 5c4b96e3_4b48_e1ec_b479_23eea5ac0c79 c4bae996_cb00_5a6d_1a59_b8ec9e047af6["reset()"] 3d807587_1576_ed5a_5887_67583b16915a -->|method| c4bae996_cb00_5a6d_1a59_b8ec9e047af6 a940954c_5e1f_29aa_d241_be9913b41a29["ensureLoaded()"] 3d807587_1576_ed5a_5887_67583b16915a -->|method| a940954c_5e1f_29aa_d241_be9913b41a29 c933e0ba_9455_436a_b4a5_ee5470ce92d5["tryLoading()"] 3d807587_1576_ed5a_5887_67583b16915a -->|method| c933e0ba_9455_436a_b4a5_ee5470ce92d5 cfd41377_95de_d71f_ce76_94b790464ff2["BouncyCastleUtil()"] 3d807587_1576_ed5a_5887_67583b16915a -->|method| cfd41377_95de_d71f_ce76_94b790464ff2
Relationship Graph
Source Code
handler/src/main/java/io/netty/handler/ssl/util/BouncyCastleUtil.java lines 31–237
public final class BouncyCastleUtil {
private static final InternalLogger logger = InternalLoggerFactory.getInstance(BouncyCastleUtil.class);
private static final String BC_PROVIDER_NAME = "BC";
private static final String BC_PROVIDER = "org.bouncycastle.jce.provider.BouncyCastleProvider";
private static final String BC_FIPS_PROVIDER_NAME = "BCFIPS";
private static final String BC_FIPS_PROVIDER = "org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider";
private static final String BC_JSSE_PROVIDER_NAME = "BCJSSE";
private static final String BC_JSSE_PROVIDER = "org.bouncycastle.jsse.provider.BouncyCastleJsseProvider";
private static final String BC_PEMPARSER = "org.bouncycastle.openssl.PEMParser";
private static final String BC_JSSE_SSLENGINE = "org.bouncycastle.jsse.BCSSLEngine";
private static final String BC_JSSE_ALPN_SELECTOR = "org.bouncycastle.jsse.BCApplicationProtocolSelector";
private static volatile Throwable unavailabilityCauseBcProv;
private static volatile Throwable unavailabilityCauseBcPkix;
private static volatile Throwable unavailabilityCauseBcTls;
private static volatile Provider bcProviderJce;
private static volatile Provider bcProviderJsse;
private static volatile Class<? extends SSLEngine> bcSSLEngineClass;
private static volatile boolean attemptedLoading;
/**
* Indicate whether the BouncyCastle Java Crypto Extensions provider is available.
*/
public static boolean isBcProvAvailable() {
ensureLoaded();
return unavailabilityCauseBcProv == null;
}
/**
* Indicate whether the BouncyCastle Public-Key Infrastructure utilities are available.
*/
public static boolean isBcPkixAvailable() {
ensureLoaded();
return unavailabilityCauseBcPkix == null;
}
/**
* Indicate whether the BouncyCastle Java Secure Socket Extensions provider is available.
*/
public static boolean isBcTlsAvailable() {
ensureLoaded();
return unavailabilityCauseBcTls == null;
}
/**
* @return the cause if unavailable. {@code null} if available.
*/
public static Throwable unavailabilityCauseBcProv() {
ensureLoaded();
return unavailabilityCauseBcProv;
}
/**
* @return the cause if unavailable. {@code null} if available.
*/
public static Throwable unavailabilityCauseBcPkix() {
ensureLoaded();
return unavailabilityCauseBcPkix;
}
/**
* @return the cause if unavailable. {@code null} if available.
*/
public static Throwable unavailabilityCauseBcTls() {
ensureLoaded();
return unavailabilityCauseBcTls;
}
/**
* Indicates whether the given SSLEngine is implemented by BouncyCastle.
*/
public static boolean isBcJsseInUse(SSLEngine engine) {
ensureLoaded();
Class<? extends SSLEngine> bcEngineClass = bcSSLEngineClass;
return bcEngineClass != null && bcEngineClass.isInstance(engine);
}
/**
* Get the BouncyCastle Java Crypto Extensions provider, or throw an exception if it is unavailable.
*/
Source
Frequently Asked Questions
What is the BouncyCastleUtil class?
BouncyCastleUtil is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/util/BouncyCastleUtil.java.
Where is BouncyCastleUtil defined?
BouncyCastleUtil is defined in handler/src/main/java/io/netty/handler/ssl/util/BouncyCastleUtil.java at line 31.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free