addExtensions() — netty Function Reference
Architecture documentation for the addExtensions() function in CertificateBuilder.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 289e8fd2_3516_bf8c_5bc7_04d3ee513ffc["addExtensions()"] 4aeffc80_93f6_788a_f8c6_901cee3b8997["CertificateBuilder"] 289e8fd2_3516_bf8c_5bc7_04d3ee513ffc -->|defined in| 4aeffc80_93f6_788a_f8c6_901cee3b8997 9b75bebe_dc8c_ed87_dffb_5dd2fde050c1["X509Bundle()"] 9b75bebe_dc8c_ed87_dffb_5dd2fde050c1 -->|calls| 289e8fd2_3516_bf8c_5bc7_04d3ee513ffc style 289e8fd2_3516_bf8c_5bc7_04d3ee513ffc fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
pkitesting/src/main/java/io/netty/pkitesting/CertificateBuilder.java lines 863–916
private void addExtensions(V3TBSCertificateGenerator tbsCert) throws Exception {
ExtensionsGenerator generator = new ExtensionsGenerator();
if (isCertificateAuthority) {
final BasicConstraints basicConstraints;
if (pathLengthConstraint.isPresent()) {
basicConstraints = new BasicConstraints(pathLengthConstraint.getAsInt());
} else {
basicConstraints = new BasicConstraints(true);
}
final byte[] basicConstraintsBytes = basicConstraints.getEncoded("DER");
generator.addExtension(new Extension(Extension.basicConstraints, true, basicConstraintsBytes));
}
if (keyUsage != null) {
generator.addExtension(keyUsage);
}
if (!extendedKeyUsage.isEmpty()) {
KeyPurposeId[] usages = new KeyPurposeId[extendedKeyUsage.size()];
String[] usagesStrings = extendedKeyUsage.toArray(EmptyArrays.EMPTY_STRINGS);
for (int i = 0; i < usagesStrings.length; i++) {
usages[i] = KeyPurposeId.getInstance(new ASN1ObjectIdentifier(usagesStrings[i]));
}
byte[] der = new org.bouncycastle.asn1.x509.ExtendedKeyUsage(usages).getEncoded("DER");
generator.addExtension(new Extension(Extension.extendedKeyUsage, false, der));
}
if (!subjectAlternativeNames.isEmpty()) {
// SAN is critical extension if subject is empty sequence:
boolean critical = subject.getName().isEmpty();
byte[] result;
GeneralNames generalNames = new GeneralNames(subjectAlternativeNames.toArray(EMPTY_GENERAL_NAMES));
try {
result = generalNames.getEncoded("DER");
} catch (IOException e) {
throw new UncheckedIOException(e);
}
generator.addExtension(new Extension(Extension.subjectAlternativeName, critical, result));
}
if (!crlDistributionPoints.isEmpty()) {
generator.addExtension(Extension.create(
Extension.cRLDistributionPoints,
false,
new CRLDistPoint(crlDistributionPoints.toArray(EMPTY_DIST_POINTS))));
}
for (BuilderCallback callback : modifierCallbacks) {
callback.modify(generator);
}
if (!generator.isEmpty()) {
tbsCert.setExtensions(generator.generate());
}
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does addExtensions() do?
addExtensions() is a function in the netty codebase, defined in pkitesting/src/main/java/io/netty/pkitesting/CertificateBuilder.java.
Where is addExtensions() defined?
addExtensions() is defined in pkitesting/src/main/java/io/netty/pkitesting/CertificateBuilder.java at line 863.
What calls addExtensions()?
addExtensions() is called by 1 function(s): X509Bundle.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free