CertificateBuilderCertGenerator Class — netty Architecture
Architecture documentation for the CertificateBuilderCertGenerator class in CertificateBuilderCertGenerator.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD f977042f_b8a4_945b_a0f5_8b94036604f7["CertificateBuilderCertGenerator"] 48c2ab83_579a_5a83_c3ad_aa919f8ec601["CertificateBuilderCertGenerator.java"] f977042f_b8a4_945b_a0f5_8b94036604f7 -->|defined in| 48c2ab83_579a_5a83_c3ad_aa919f8ec601 ef65f963_b7a9_4b43_8c0c_ef7e0a27371a["CertificateBuilderCertGenerator()"] f977042f_b8a4_945b_a0f5_8b94036604f7 -->|method| ef65f963_b7a9_4b43_8c0c_ef7e0a27371a 36718317_aa84_47f2_5363_6aca5fc97078["isAvailable()"] f977042f_b8a4_945b_a0f5_8b94036604f7 -->|method| 36718317_aa84_47f2_5363_6aca5fc97078 89711f77_a040_a5be_19f8_69c5a51fe55c["generate()"] f977042f_b8a4_945b_a0f5_8b94036604f7 -->|method| 89711f77_a040_a5be_19f8_69c5a51fe55c
Relationship Graph
Source Code
handler/src/main/java/io/netty/handler/ssl/util/CertificateBuilderCertGenerator.java lines 27–84
final class CertificateBuilderCertGenerator {
private CertificateBuilderCertGenerator() {
}
static boolean isAvailable() {
try {
new CertificateBuilder();
return true;
} catch (Throwable ignore) {
return false;
}
}
static void generate(SelfSignedCertificate.Builder config) throws Exception {
String fqdn = config.fqdn;
Date notBefore = config.notBefore;
Date notAfter = config.notAfter;
String algorithm = config.algorithm;
SecureRandom random = config.random;
int bits = config.bits;
CertificateBuilder builder = new CertificateBuilder();
builder.setIsCertificateAuthority(true);
if (fqdn.contains("=")) {
builder.subject(fqdn);
} else {
builder.subject("CN=" + fqdn);
}
builder.notBefore(Instant.ofEpochMilli(notBefore.getTime()));
builder.notAfter(Instant.ofEpochMilli(notAfter.getTime()));
if (random != null) {
builder.secureRandom(random);
}
if ("RSA".equals(algorithm)) {
CertificateBuilder.Algorithm alg;
switch (bits) {
case 2048: alg = CertificateBuilder.Algorithm.rsa2048; break;
case 3072: alg = CertificateBuilder.Algorithm.rsa3072; break;
case 4096: alg = CertificateBuilder.Algorithm.rsa4096; break;
case 8192: alg = CertificateBuilder.Algorithm.rsa8192; break;
default:
throw new IllegalArgumentException("Unsupported RSA bit-width: " + bits);
}
builder.algorithm(alg);
} else if ("EC".equals(algorithm)) {
if (bits == 256) {
builder.algorithm(CertificateBuilder.Algorithm.ecp256);
} else if (bits == 384) {
builder.algorithm(CertificateBuilder.Algorithm.ecp384);
} else {
throw new IllegalArgumentException("Unsupported EC-P bit-width: " + bits);
}
}
X509Bundle bundle = builder.buildSelfSigned();
config.paths = newSelfSignedCertificate(fqdn, bundle.getKeyPair().getPrivate(), bundle.getCertificate());
config.keypair = bundle.getKeyPair();
config.privateKey = bundle.getKeyPair().getPrivate();
}
}
Source
Frequently Asked Questions
What is the CertificateBuilderCertGenerator class?
CertificateBuilderCertGenerator is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/util/CertificateBuilderCertGenerator.java.
Where is CertificateBuilderCertGenerator defined?
CertificateBuilderCertGenerator is defined in handler/src/main/java/io/netty/handler/ssl/util/CertificateBuilderCertGenerator.java at line 27.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free