DefaultOpenSslKeyMaterial Class — netty Architecture
Architecture documentation for the DefaultOpenSslKeyMaterial class in DefaultOpenSslKeyMaterial.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD df379969_28dd_4cf9_4d9f_dc7173ff2664["DefaultOpenSslKeyMaterial"] 93e4b63a_3505_0416_695c_b9a9240d2d12["DefaultOpenSslKeyMaterial.java"] df379969_28dd_4cf9_4d9f_dc7173ff2664 -->|defined in| 93e4b63a_3505_0416_695c_b9a9240d2d12 982e3c85_64d6_f6d5_07b8_c94982585d12["DefaultOpenSslKeyMaterial()"] df379969_28dd_4cf9_4d9f_dc7173ff2664 -->|method| 982e3c85_64d6_f6d5_07b8_c94982585d12 0ecb0c33_c9ba_9f4d_e150_59533a4deeaa["certificateChain()"] df379969_28dd_4cf9_4d9f_dc7173ff2664 -->|method| 0ecb0c33_c9ba_9f4d_e150_59533a4deeaa 9427c313_2bda_f346_b6df_dbe5d533cb03["certificateChainAddress()"] df379969_28dd_4cf9_4d9f_dc7173ff2664 -->|method| 9427c313_2bda_f346_b6df_dbe5d533cb03 3c8d90df_dec6_0d53_1138_95b17892768c["privateKeyAddress()"] df379969_28dd_4cf9_4d9f_dc7173ff2664 -->|method| 3c8d90df_dec6_0d53_1138_95b17892768c 3cdf3b9b_74b9_8c55_9059_7678d869028e["deallocate()"] df379969_28dd_4cf9_4d9f_dc7173ff2664 -->|method| 3cdf3b9b_74b9_8c55_9059_7678d869028e 4ad55462_f0a0_9cca_e987_98be7f0222dd["release()"] df379969_28dd_4cf9_4d9f_dc7173ff2664 -->|method| 4ad55462_f0a0_9cca_e987_98be7f0222dd
Relationship Graph
Source Code
handler/src/main/java/io/netty/handler/ssl/DefaultOpenSslKeyMaterial.java lines 27–126
final class DefaultOpenSslKeyMaterial extends AbstractReferenceCounted implements OpenSslKeyMaterial {
private static final ResourceLeakDetector<DefaultOpenSslKeyMaterial> leakDetector =
ResourceLeakDetectorFactory.instance().newResourceLeakDetector(DefaultOpenSslKeyMaterial.class);
private final ResourceLeakTracker<DefaultOpenSslKeyMaterial> leak;
private final X509Certificate[] x509CertificateChain;
private long chain;
private long privateKey;
DefaultOpenSslKeyMaterial(long chain, long privateKey, X509Certificate[] x509CertificateChain) {
this.chain = chain;
this.privateKey = privateKey;
this.x509CertificateChain = x509CertificateChain;
leak = leakDetector.track(this);
}
@Override
public X509Certificate[] certificateChain() {
return x509CertificateChain.clone();
}
@Override
public long certificateChainAddress() {
if (refCnt() <= 0) {
throw new IllegalReferenceCountException();
}
return chain;
}
@Override
public long privateKeyAddress() {
if (refCnt() <= 0) {
throw new IllegalReferenceCountException();
}
return privateKey;
}
@Override
protected void deallocate() {
SSL.freeX509Chain(chain);
chain = 0;
SSL.freePrivateKey(privateKey);
privateKey = 0;
if (leak != null) {
boolean closed = leak.close(this);
assert closed;
}
}
@Override
public DefaultOpenSslKeyMaterial retain() {
if (leak != null) {
leak.record();
}
super.retain();
return this;
}
@Override
public DefaultOpenSslKeyMaterial retain(int increment) {
if (leak != null) {
leak.record();
}
super.retain(increment);
return this;
}
@Override
public DefaultOpenSslKeyMaterial touch() {
if (leak != null) {
leak.record();
}
super.touch();
return this;
}
@Override
public DefaultOpenSslKeyMaterial touch(Object hint) {
if (leak != null) {
leak.record(hint);
}
Source
Frequently Asked Questions
What is the DefaultOpenSslKeyMaterial class?
DefaultOpenSslKeyMaterial is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/DefaultOpenSslKeyMaterial.java.
Where is DefaultOpenSslKeyMaterial defined?
DefaultOpenSslKeyMaterial is defined in handler/src/main/java/io/netty/handler/ssl/DefaultOpenSslKeyMaterial.java at line 27.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free