OpenSslPrivateKeyMaterial Class — netty Architecture
Architecture documentation for the OpenSslPrivateKeyMaterial class in OpenSslPrivateKey.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD a6dbc94e_3a02_6296_d20b_1145e0783a46["OpenSslPrivateKeyMaterial"] 27aebda7_19ca_4bfd_9f97_d477e1270b96["OpenSslPrivateKey.java"] a6dbc94e_3a02_6296_d20b_1145e0783a46 -->|defined in| 27aebda7_19ca_4bfd_9f97_d477e1270b96 dd83a43e_c893_f73f_d89a_246009c9bc08["OpenSslPrivateKeyMaterial()"] a6dbc94e_3a02_6296_d20b_1145e0783a46 -->|method| dd83a43e_c893_f73f_d89a_246009c9bc08 312dfe1d_544b_c0b7_d17e_6f655f8b99b0["certificateChain()"] a6dbc94e_3a02_6296_d20b_1145e0783a46 -->|method| 312dfe1d_544b_c0b7_d17e_6f655f8b99b0 ee232ac5_c622_350b_0e78_32709c51e83b["certificateChainAddress()"] a6dbc94e_3a02_6296_d20b_1145e0783a46 -->|method| ee232ac5_c622_350b_0e78_32709c51e83b 2a43686b_ae87_548e_fd02_2b486115069e["privateKeyAddress()"] a6dbc94e_3a02_6296_d20b_1145e0783a46 -->|method| 2a43686b_ae87_548e_fd02_2b486115069e aacaaf90_5d9d_1597_dc4e_6fa762359890["OpenSslKeyMaterial()"] a6dbc94e_3a02_6296_d20b_1145e0783a46 -->|method| aacaaf90_5d9d_1597_dc4e_6fa762359890 2c378a23_fcdd_b9d3_ffd0_66a115342a4c["deallocate()"] a6dbc94e_3a02_6296_d20b_1145e0783a46 -->|method| 2c378a23_fcdd_b9d3_ffd0_66a115342a4c 02b3bf1d_21f6_b114_5567_723b99140446["releaseChain()"] a6dbc94e_3a02_6296_d20b_1145e0783a46 -->|method| 02b3bf1d_21f6_b114_5567_723b99140446
Relationship Graph
Source Code
handler/src/main/java/io/netty/handler/ssl/OpenSslPrivateKey.java lines 122–190
final class OpenSslPrivateKeyMaterial extends AbstractReferenceCounted implements OpenSslKeyMaterial {
// Package-private for unit-test only
long certificateChain;
private final X509Certificate[] x509CertificateChain;
OpenSslPrivateKeyMaterial(long certificateChain, X509Certificate[] x509CertificateChain) {
this.certificateChain = certificateChain;
this.x509CertificateChain = x509CertificateChain == null ?
EmptyArrays.EMPTY_X509_CERTIFICATES : x509CertificateChain;
OpenSslPrivateKey.this.retain();
}
@Override
public X509Certificate[] certificateChain() {
return x509CertificateChain.clone();
}
@Override
public long certificateChainAddress() {
if (refCnt() <= 0) {
throw new IllegalReferenceCountException();
}
return certificateChain;
}
@Override
public long privateKeyAddress() {
if (refCnt() <= 0) {
throw new IllegalReferenceCountException();
}
return OpenSslPrivateKey.this.privateKeyAddress();
}
@Override
public OpenSslKeyMaterial touch(Object hint) {
OpenSslPrivateKey.this.touch(hint);
return this;
}
@Override
public OpenSslKeyMaterial retain() {
super.retain();
return this;
}
@Override
public OpenSslKeyMaterial retain(int increment) {
super.retain(increment);
return this;
}
@Override
public OpenSslKeyMaterial touch() {
OpenSslPrivateKey.this.touch();
return this;
}
@Override
protected void deallocate() {
releaseChain();
OpenSslPrivateKey.this.release();
}
private void releaseChain() {
SSL.freeX509Chain(certificateChain);
certificateChain = 0;
}
}
Source
Frequently Asked Questions
What is the OpenSslPrivateKeyMaterial class?
OpenSslPrivateKeyMaterial is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/OpenSslPrivateKey.java.
Where is OpenSslPrivateKeyMaterial defined?
OpenSslPrivateKeyMaterial is defined in handler/src/main/java/io/netty/handler/ssl/OpenSslPrivateKey.java at line 122.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free