Home / Function/ createCertificateWithSans() — netty Function Reference

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

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