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
Source
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