OpenJdkSelfSignedCertGenerator Class — netty Architecture
Architecture documentation for the OpenJdkSelfSignedCertGenerator class in OpenJdkSelfSignedCertGenerator.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 1da85bed_718c_a614_6e29_892846cb43ba["OpenJdkSelfSignedCertGenerator"] 3e17b364_1670_faba_2f27_0648d8d71f4c["OpenJdkSelfSignedCertGenerator.java"] 1da85bed_718c_a614_6e29_892846cb43ba -->|defined in| 3e17b364_1670_faba_2f27_0648d8d71f4c 11376dd1_3e7a_c28c_d430_db387ea86275["generate()"] 1da85bed_718c_a614_6e29_892846cb43ba -->|method| 11376dd1_3e7a_c28c_d430_db387ea86275 e727e14a_c301_7f06_d536_d137189988d5["OpenJdkSelfSignedCertGenerator()"] 1da85bed_718c_a614_6e29_892846cb43ba -->|method| e727e14a_c301_7f06_d536_d137189988d5
Relationship Graph
Source Code
handler/src/main/java/io/netty/handler/ssl/util/OpenJdkSelfSignedCertGenerator.java lines 44–342
final class OpenJdkSelfSignedCertGenerator {
private static final InternalLogger logger =
InternalLoggerFactory.getInstance(OpenJdkSelfSignedCertGenerator.class);
private static final MethodHandle CERT_INFO_SET_HANDLE;
private static final MethodHandle ISSUER_NAME_CONSTRUCTOR;
private static final MethodHandle CERT_IMPL_CONSTRUCTOR;
private static final MethodHandle X509_CERT_INFO_CONSTRUCTOR;
private static final MethodHandle CERTIFICATE_VERSION_CONSTRUCTOR;
private static final MethodHandle CERTIFICATE_SUBJECT_NAME_CONSTRUCTOR;
private static final MethodHandle X500_NAME_CONSTRUCTOR;
private static final MethodHandle CERTIFICATE_SERIAL_NUMBER_CONSTRUCTOR;
private static final MethodHandle CERTIFICATE_VALIDITY_CONSTRUCTOR;
private static final MethodHandle CERTIFICATE_X509_KEY_CONSTRUCTOR;
private static final MethodHandle CERTIFICATE_ALORITHM_ID_CONSTRUCTOR;
private static final MethodHandle CERT_IMPL_GET_HANDLE;
private static final MethodHandle CERT_IMPL_SIGN_HANDLE;
private static final MethodHandle ALGORITHM_ID_GET_HANDLE;
private static final boolean SUPPORTED;
// Use reflection as JDK20+ did change things quite a bit.
static {
final MethodHandles.Lookup lookup = MethodHandles.lookup();
final Class<?> x509CertInfoClass;
final Class<?> x500NameClass;
final Class<?> certificateIssuerNameClass;
final Class<?> x509CertImplClass;
final Class<?> certificateVersionClass;
final Class<?> certificateSubjectNameClass;
final Class<?> certificateSerialNumberClass;
final Class<?> certificateValidityClass;
final Class<?> certificateX509KeyClass;
final Class<?> algorithmIdClass;
final Class<?> certificateAlgorithmIdClass;
boolean supported;
MethodHandle certInfoSetHandle = null;
MethodHandle x509CertInfoConstructor = null;
MethodHandle issuerNameConstructor = null;
MethodHandle certImplConstructor = null;
MethodHandle x500NameConstructor = null;
MethodHandle certificateVersionConstructor = null;
MethodHandle certificateSubjectNameConstructor = null;
MethodHandle certificateSerialNumberConstructor = null;
MethodHandle certificateValidityConstructor = null;
MethodHandle certificateX509KeyConstructor = null;
MethodHandle certificateAlgorithmIdConstructor = null;
MethodHandle certImplGetHandle = null;
MethodHandle certImplSignHandle = null;
MethodHandle algorithmIdGetHandle = null;
try {
Object maybeClasses = AccessController.doPrivileged(new PrivilegedAction<Object>() {
@Override
public Object run() {
try {
List<Class<?>> classes = new ArrayList<>();
classes.add(Class.forName("sun.security.x509.X509CertInfo", false,
PlatformDependent.getClassLoader(OpenJdkSelfSignedCertGenerator.class)));
classes.add(Class.forName("sun.security.x509.X500Name", false,
PlatformDependent.getClassLoader(OpenJdkSelfSignedCertGenerator.class)));
classes.add(Class.forName("sun.security.x509.CertificateIssuerName", false,
PlatformDependent.getClassLoader(OpenJdkSelfSignedCertGenerator.class)));
classes.add(Class.forName("sun.security.x509.X509CertImpl", false,
PlatformDependent.getClassLoader(OpenJdkSelfSignedCertGenerator.class)));
classes.add(Class.forName("sun.security.x509.CertificateVersion", false,
PlatformDependent.getClassLoader(OpenJdkSelfSignedCertGenerator.class)));
classes.add(Class.forName("sun.security.x509.CertificateSubjectName", false,
PlatformDependent.getClassLoader(OpenJdkSelfSignedCertGenerator.class)));
classes.add(Class.forName("sun.security.x509.CertificateSerialNumber", false,
PlatformDependent.getClassLoader(OpenJdkSelfSignedCertGenerator.class)));
classes.add(Class.forName("sun.security.x509.CertificateValidity", false,
PlatformDependent.getClassLoader(OpenJdkSelfSignedCertGenerator.class)));
classes.add(Class.forName("sun.security.x509.CertificateX509Key", false,
PlatformDependent.getClassLoader(OpenJdkSelfSignedCertGenerator.class)));
classes.add(Class.forName("sun.security.x509.AlgorithmId", false,
PlatformDependent.getClassLoader(OpenJdkSelfSignedCertGenerator.class)));
classes.add(Class.forName("sun.security.x509.CertificateAlgorithmId", false,
PlatformDependent.getClassLoader(OpenJdkSelfSignedCertGenerator.class)));
Source
Frequently Asked Questions
What is the OpenJdkSelfSignedCertGenerator class?
OpenJdkSelfSignedCertGenerator is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/util/OpenJdkSelfSignedCertGenerator.java.
Where is OpenJdkSelfSignedCertGenerator defined?
OpenJdkSelfSignedCertGenerator is defined in handler/src/main/java/io/netty/handler/ssl/util/OpenJdkSelfSignedCertGenerator.java at line 44.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free