createCertificateWithSans() — netty Function Reference
Architecture documentation for the createCertificateWithSans() function in CertificateBuilderTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD a21d20c3_db09_fbc8_1a42_e7df15379908["createCertificateWithSans()"] 8c85a9d3_f3ae_f481_1984_99bd24f9c654["CertificateBuilderTest"] a21d20c3_db09_fbc8_1a42_e7df15379908 -->|defined in| 8c85a9d3_f3ae_f481_1984_99bd24f9c654 style a21d20c3_db09_fbc8_1a42_e7df15379908 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
pkitesting/src/test/java/io/netty/pkitesting/CertificateBuilderTest.java lines 285–326
@Test
void createCertificateWithSans() throws Exception {
X509Bundle root = BASE.copy()
.setIsCertificateAuthority(true)
.setKeyUsage(true, KeyUsage.digitalSignature, KeyUsage.keyCertSign)
.buildSelfSigned();
X509Bundle leaf = BASE.copy()
.subject("CN=leaf.netty.io")
.addSanDirectoryName("CN=san.leaf.netty.io")
.addSanDnsName("san-1.leaf.netty.io")
.addSanDnsName("san-2.leaf.netty.io")
.addSanIpAddress("192.0.2.1") // RFC 5737 example IP
.addSanRfc822Name("san@netty.io")
.addSanRegisteredId("1.2.840.113635.100.1.2.42")
.addSanUriName("spiffe://netty.io/example/san")
.addSanOtherName("1.2.840.113635.100.1.2.42", new byte[] {0x01, 0x01, 0x00})
.buildIssuedBy(root);
X509Certificate cert = leaf.getCertificate();
assertEquals(new X500Principal("CN=leaf.netty.io"), cert.getSubjectX500Principal());
List<List<?>> sans = new ArrayList<>(cert.getSubjectAlternativeNames());
assertThat(sans).hasSize(8);
assertThat(sans.get(0)).isEqualTo(Arrays.asList(4, "CN=san.leaf.netty.io"));
assertThat(sans.get(1)).isEqualTo(Arrays.asList(2, "san-1.leaf.netty.io"));
assertThat(sans.get(2)).isEqualTo(Arrays.asList(2, "san-2.leaf.netty.io"));
assertThat(sans.get(3)).isEqualTo(Arrays.asList(7, "192.0.2.1"));
assertThat(sans.get(4)).isEqualTo(Arrays.asList(1, "san@netty.io"));
assertThat(sans.get(5)).isEqualTo(Arrays.asList(8, "1.2.840.113635.100.1.2.42"));
assertThat(sans.get(6)).isEqualTo(Arrays.asList(6, "spiffe://netty.io/example/san"));
assertThat(sans.get(7).get(0)).isEqualTo(0);
if (PlatformDependent.javaVersion() >= 19) {
assertThat(sans.get(7).get(1)).isEqualTo(new byte[] {
48, 17, 6, 10, 42, -122, 72, -122, -9, 99, 100, 1, 2, 42, -96, 3, 1, 1, 0 });
} else {
// Java versions older than 19 re-encode the value in an extra context-constructed tag, the {-96, 5} bit.
assertThat(sans.get(7).get(1)).isEqualTo(new byte[] {
48, 19, 6, 10, 42, -122, 72, -122, -9, 99, 100, 1, 2, 42, -96, 5, -96, 3, 1, 1, 0 });
}
if (sans.get(7).size() > 2) {
assertThat(sans.get(7).get(2)).isEqualTo("1.2.840.113635.100.1.2.42");
assertThat(sans.get(7).get(3)).isEqualTo(new byte[]{0x01, 0x01, 0x00});
}
}
Domain
Subdomains
Source
Frequently Asked Questions
What does createCertificateWithSans() do?
createCertificateWithSans() is a function in the netty codebase, defined in pkitesting/src/test/java/io/netty/pkitesting/CertificateBuilderTest.java.
Where is createCertificateWithSans() defined?
createCertificateWithSans() is defined in pkitesting/src/test/java/io/netty/pkitesting/CertificateBuilderTest.java at line 285.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free