ReferenceCountedOpenSslContext Class — netty Architecture
Architecture documentation for the ReferenceCountedOpenSslContext class in ReferenceCountedOpenSslContext.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD a8fb0f76_e201_5987_db10_2b8b0b47e791["ReferenceCountedOpenSslContext"] ec821021_8733_8627_194f_15d27e6d1f67["ReferenceCountedOpenSslContext.java"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|defined in| ec821021_8733_8627_194f_15d27e6d1f67 f3954116_a651_4a53_b811_f3e9b4849519["ReferenceCountedOpenSslContext()"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|method| f3954116_a651_4a53_b811_f3e9b4849519 ea5a56d5_d36f_b820_f146_1680b428453c["opensslSelectorFailureBehavior()"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|method| ea5a56d5_d36f_b820_f146_1680b428453c a720f406_d063_7be7_4ce1_93d63baefadb["cipherSuites()"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|method| a720f406_d063_7be7_4ce1_93d63baefadb 73322f42_9b88_7146_5af8_d0715d36fc76["ApplicationProtocolNegotiator()"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|method| 73322f42_9b88_7146_5af8_d0715d36fc76 28445b4f_132d_ed94_fb71_3bda4e7021da["isClient()"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|method| 28445b4f_132d_ed94_fb71_3bda4e7021da 1010f58f_ffb8_8d48_0257_092a39af0743["SSLEngine()"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|method| 1010f58f_ffb8_8d48_0257_092a39af0743 d5e5ce36_9a6d_0920_f8ca_ac94788d6518["SslHandler()"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|method| d5e5ce36_9a6d_0920_f8ca_ac94788d6518 29f02045_057b_ad01_afb8_0da93b030e4e["context()"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|method| 29f02045_057b_ad01_afb8_0da93b030e4e d9cfdf70_4191_1ecd_4ef8_01faa1205224["OpenSslSessionStats()"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|method| d9cfdf70_4191_1ecd_4ef8_01faa1205224 15c42ed0_a817_62df_0b18_bddb9b8606a7["setRejectRemoteInitiatedRenegotiation()"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|method| 15c42ed0_a817_62df_0b18_bddb9b8606a7 b50b40fa_4a04_470b_43ed_a0080bba01d5["getRejectRemoteInitiatedRenegotiation()"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|method| b50b40fa_4a04_470b_43ed_a0080bba01d5 24a58f26_a915_81d7_8afa_145b8267d2e5["setBioNonApplicationBufferSize()"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|method| 24a58f26_a915_81d7_8afa_145b8267d2e5 2b445e6c_e684_afd6_ac85_37eb22cfae81["getBioNonApplicationBufferSize()"] a8fb0f76_e201_5987_db10_2b8b0b47e791 -->|method| 2b445e6c_e684_afd6_ac85_37eb22cfae81
Relationship Graph
Source Code
handler/src/main/java/io/netty/handler/ssl/ReferenceCountedOpenSslContext.java lines 93–1245
public abstract class ReferenceCountedOpenSslContext extends SslContext implements ReferenceCounted {
private static final InternalLogger logger =
InternalLoggerFactory.getInstance(ReferenceCountedOpenSslContext.class);
private static final boolean DEFAULT_USE_JDK_PROVIDERS = SystemPropertyUtil.getBoolean(
"io.netty.handler.ssl.useJdkProviderSignatures", true);
private static final int DEFAULT_BIO_NON_APPLICATION_BUFFER_SIZE = Math.max(1,
SystemPropertyUtil.getInt("io.netty.handler.ssl.openssl.bioNonApplicationBufferSize",
2048));
// Let's use tasks by default but still allow the user to disable it via system property just in case.
static final boolean USE_TASKS =
SystemPropertyUtil.getBoolean("io.netty.handler.ssl.openssl.useTasks", true);
private static final Integer DH_KEY_LENGTH;
private static final ResourceLeakDetector<ReferenceCountedOpenSslContext> leakDetector =
ResourceLeakDetectorFactory.instance().newResourceLeakDetector(ReferenceCountedOpenSslContext.class);
// TODO: Maybe make configurable ?
protected static final int VERIFY_DEPTH = 10;
static final boolean CLIENT_ENABLE_SESSION_TICKET =
SystemPropertyUtil.getBoolean("jdk.tls.client.enableSessionTicketExtension", false);
static final boolean CLIENT_ENABLE_SESSION_TICKET_TLSV13 =
SystemPropertyUtil.getBoolean("jdk.tls.client.enableSessionTicketExtension", true);
static final boolean SERVER_ENABLE_SESSION_TICKET =
SystemPropertyUtil.getBoolean("jdk.tls.server.enableSessionTicketExtension", false);
static final boolean SERVER_ENABLE_SESSION_TICKET_TLSV13 =
SystemPropertyUtil.getBoolean("jdk.tls.server.enableSessionTicketExtension", true);
static final boolean SERVER_ENABLE_SESSION_CACHE =
SystemPropertyUtil.getBoolean("io.netty.handler.ssl.openssl.sessionCacheServer", true);
static final boolean CLIENT_ENABLE_SESSION_CACHE =
SystemPropertyUtil.getBoolean("io.netty.handler.ssl.openssl.sessionCacheClient", true);
/**
* The OpenSSL SSL_CTX object.
*
* <strong>{@link #ctxLock} must be hold while using ctx!</strong>
*/
protected long ctx;
private final List<String> unmodifiableCiphers;
private final OpenSslApplicationProtocolNegotiator apn;
private final int mode;
// Reference Counting
private final ResourceLeakTracker<ReferenceCountedOpenSslContext> leak;
private final AbstractReferenceCounted refCnt = new AbstractReferenceCounted() {
@Override
public ReferenceCounted touch(Object hint) {
if (leak != null) {
leak.record(hint);
}
return ReferenceCountedOpenSslContext.this;
}
@Override
protected void deallocate() {
try {
destroy();
} finally {
if (leak != null) {
boolean closed = leak.close(ReferenceCountedOpenSslContext.this);
assert closed;
}
}
}
};
final Certificate[] keyCertChain;
final ClientAuth clientAuth;
final String[] protocols;
final String endpointIdentificationAlgorithm;
final List<SNIServerName> serverNames;
final boolean hasTLSv13Cipher;
final boolean hasTmpDhKeys;
final String[] groups;
final boolean enableOcsp;
final ConcurrentMap<Long, ReferenceCountedOpenSslEngine> engines = new ConcurrentHashMap<>();
Source
Frequently Asked Questions
What is the ReferenceCountedOpenSslContext class?
ReferenceCountedOpenSslContext is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/ReferenceCountedOpenSslContext.java.
Where is ReferenceCountedOpenSslContext defined?
ReferenceCountedOpenSslContext is defined in handler/src/main/java/io/netty/handler/ssl/ReferenceCountedOpenSslContext.java at line 93.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free