Home / Function/ testClientServerScenarios() — netty Function Reference

testClientServerScenarios() — netty Function Reference

Architecture documentation for the testClientServerScenarios() function in JdkDelegatingPrivateKeyMethodTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  65243958_f616_51fc_3b00_1053f08d74be["testClientServerScenarios()"]
  2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc["JdkDelegatingPrivateKeyMethodTest"]
  65243958_f616_51fc_3b00_1053f08d74be -->|defined in| 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc
  style 65243958_f616_51fc_3b00_1053f08d74be fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

handler/src/test/java/io/netty/handler/ssl/JdkDelegatingPrivateKeyMethodTest.java lines 173–236

    @ParameterizedTest(name = "{index}: scenario = {0}")
    @EnumSource(TestScenario.class)
    void testClientServerScenarios(TestScenario scenario) throws Exception {
        // Reset signature operation counter for test isolation
        MockAlternativeKeyProvider.resetSignatureOperationCount();

        // Prepare server key (alternative or standard based on scenario)
        PrivateKey serverPrivateKey = scenario.serverUsesAlternativeKey
            ? wrapPrivateKey(RSA_BUNDLE.getKeyPair().getPrivate())
            : RSA_BUNDLE.getKeyPair().getPrivate();
        X509Certificate serverCertificate = RSA_BUNDLE.getCertificate();

        // Prepare client key (alternative or standard based on scenario)
        PrivateKey clientPrivateKey = scenario.clientUsesAlternativeKey
            ? wrapPrivateKey(RSA_BUNDLE.getKeyPair().getPrivate())
            : RSA_BUNDLE.getKeyPair().getPrivate();
        X509Certificate clientCertificate = RSA_BUNDLE.getCertificate();

        // Verify alternative keys behave correctly
        if (scenario.serverUsesAlternativeKey) {
            assertNull(serverPrivateKey.getEncoded(),
                "Server alternative key should return null from getEncoded()");
        }
        if (scenario.clientUsesAlternativeKey) {
            assertNull(clientPrivateKey.getEncoded(),
                "Client alternative key should return null from getEncoded()");
        }

        // Set up server context
        SslContext serverSslContext = SslContextBuilder.forServer(serverPrivateKey, serverCertificate)
                .sslProvider(SslProvider.OPENSSL)
                .trustManager(clientCertificate)
                .option(OpenSslContextOption.USE_JDK_PROVIDER_SIGNATURES, true)
                .clientAuth(ClientAuth.REQUIRE)
                .build();

        // Set up client context
        SslContext clientSslContext = SslContextBuilder.forClient()
                .sslProvider(SslProvider.OPENSSL)
                .trustManager(serverCertificate)
                .option(OpenSslContextOption.USE_JDK_PROVIDER_SIGNATURES, true)
                .keyManager(clientPrivateKey, clientCertificate)
                .build();

        // Run handshake test
        String result = performHandshakeTest(serverSslContext, clientSslContext);
        assertEquals("R", result, "Handshake should complete successfully for " + scenario.description);

        // Verify that alternative key provider was actually used for signature operations
        int expectedSignatureOperations = 0;
        if (scenario.serverUsesAlternativeKey) {
            expectedSignatureOperations++;
        }
        if (scenario.clientUsesAlternativeKey) {
            expectedSignatureOperations++;
        }

        int actualSignatureOperations = MockAlternativeKeyProvider.getSignatureOperationCount();
        assertEquals(expectedSignatureOperations, actualSignatureOperations,
            "Unexpected number of signature operations for scenario: " + scenario.description);

        ReferenceCountUtil.release(serverSslContext);
        ReferenceCountUtil.release(clientSslContext);
    }

Domain

Subdomains

Frequently Asked Questions

What does testClientServerScenarios() do?
testClientServerScenarios() is a function in the netty codebase, defined in handler/src/test/java/io/netty/handler/ssl/JdkDelegatingPrivateKeyMethodTest.java.
Where is testClientServerScenarios() defined?
testClientServerScenarios() is defined in handler/src/test/java/io/netty/handler/ssl/JdkDelegatingPrivateKeyMethodTest.java at line 173.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free