JdkDelegatingPrivateKeyMethodTest Class — netty Architecture
Architecture documentation for the JdkDelegatingPrivateKeyMethodTest class in JdkDelegatingPrivateKeyMethodTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc["JdkDelegatingPrivateKeyMethodTest"] 5573b2bd_79a7_f28c_5ebe_732d956afd9a["JdkDelegatingPrivateKeyMethodTest.java"] 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc -->|defined in| 5573b2bd_79a7_f28c_5ebe_732d956afd9a 1a2e437e_da71_4f4a_291d_d6d8175a57c6["setUp()"] 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc -->|method| 1a2e437e_da71_4f4a_291d_d6d8175a57c6 dd2ae62e_cc28_336c_ed50_00ea46aa8d25["tearDown()"] 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc -->|method| dd2ae62e_cc28_336c_ed50_00ea46aa8d25 d26da6c8_7bb6_e7bc_c739_caab95a29cc9["supportedAlgorithms()"] 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc -->|method| d26da6c8_7bb6_e7bc_c739_caab95a29cc9 65243958_f616_51fc_3b00_1053f08d74be["testClientServerScenarios()"] 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc -->|method| 65243958_f616_51fc_3b00_1053f08d74be 4a2d9bb8_8e89_f8a6_4ddb_3c1163dd54fe["testAlgorithmSupport()"] 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc -->|method| 4a2d9bb8_8e89_f8a6_4ddb_3c1163dd54fe a7f8dd70_f64f_5b30_337b_7aeea3a1751c["testMultipleHandshakes()"] 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc -->|method| a7f8dd70_f64f_5b30_337b_7aeea3a1751c 0e81c0c6_ea19_d890_9809_f0b732afecda["testAlgorithmCaching()"] 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc -->|method| 0e81c0c6_ea19_d890_9809_f0b732afecda 5a3245c2_68b7_f5a4_493d_f9902be0f416["configureCipherSuitesForAlgorithm()"] 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc -->|method| 5a3245c2_68b7_f5a4_493d_f9902be0f416 41d98bce_8a2e_9d9a_01ba_fe614a603cf8["X509Bundle()"] 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc -->|method| 41d98bce_8a2e_9d9a_01ba_fe614a603cf8 a847fd95_75bd_8b53_9b1c_7d94990f5181["String()"] 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc -->|method| a847fd95_75bd_8b53_9b1c_7d94990f5181 258ca29b_254c_5099_2a8a_08100b96b77c["runClient()"] 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc -->|method| 258ca29b_254c_5099_2a8a_08100b96b77c bf2593e9_aa1b_ab8d_296f_0379cc074524["isSignatureDelegationSupported()"] 2ac7122d_91ea_6ce8_76a0_fb9ed7fcbdbc -->|method| bf2593e9_aa1b_ab8d_296f_0379cc074524
Relationship Graph
Source Code
handler/src/test/java/io/netty/handler/ssl/JdkDelegatingPrivateKeyMethodTest.java lines 73–552
@EnabledIf("isSignatureDelegationSupported")
@Timeout(30)
public class JdkDelegatingPrivateKeyMethodTest {
private static MockAlternativeKeyProvider mockProvider;
private static EventLoopGroup GROUP;
private static X509Bundle RSA_BUNDLE;
@BeforeAll
static void setUp() throws Exception {
Assumptions.assumeTrue(OpenSsl.isAvailable(), "OpenSSL is not available");
mockProvider = new MockAlternativeKeyProvider();
Security.addProvider(mockProvider);
GROUP = new MultiThreadIoEventLoopGroup(NioIoHandler.newFactory());
// Create server certificate bundle
RSA_BUNDLE = new CertificateBuilder()
.subject("CN=localhost, O=Netty, C=US")
.algorithm(CertificateBuilder.Algorithm.rsa2048)
.setIsCertificateAuthority(true)
.setKeyUsage(true, CertificateBuilder.KeyUsage.digitalSignature)
.addExtendedKeyUsageServerAuth()
.buildSelfSigned();
}
@AfterAll
static void tearDown() {
if (GROUP != null) {
GROUP.shutdownGracefully();
}
if (mockProvider != null) {
Security.removeProvider(mockProvider.getName());
}
RSA_BUNDLE = null;
}
/**
* Test scenarios for client/server alternative key combinations
*/
public enum TestScenario {
SERVER_ALTERNATIVE_CLIENT_STANDARD("Server Alternative + Client Standard", true, false),
SERVER_STANDARD_CLIENT_ALTERNATIVE("Server Standard + Client Alternative", false, true),
BOTH_ALTERNATIVE("Both Alternative", true, true);
final String description;
final boolean serverUsesAlternativeKey;
final boolean clientUsesAlternativeKey;
TestScenario(String description, boolean serverUsesAlternativeKey, boolean clientUsesAlternativeKey) {
this.description = description;
this.serverUsesAlternativeKey = serverUsesAlternativeKey;
this.clientUsesAlternativeKey = clientUsesAlternativeKey;
}
@Override
public String toString() {
return description;
}
}
/**
* Test data for supported signature algorithms
*/
static Stream<Arguments> supportedAlgorithms() {
return Stream.of(true, false).flatMap(clientUsesProvider ->
Stream.of(
// RSA PKCS#1 algorithms
Arguments.of("RSA PKCS#1 SHA1", OpenSslAsyncPrivateKeyMethod.SSL_SIGN_RSA_PKCS1_SHA1,
CertificateBuilder.Algorithm.rsa2048, clientUsesProvider),
Arguments.of("RSA PKCS#1 SHA256", OpenSslAsyncPrivateKeyMethod.SSL_SIGN_RSA_PKCS1_SHA256,
CertificateBuilder.Algorithm.rsa2048, clientUsesProvider),
Arguments.of("RSA PKCS#1 SHA384", OpenSslAsyncPrivateKeyMethod.SSL_SIGN_RSA_PKCS1_SHA384,
CertificateBuilder.Algorithm.rsa2048, clientUsesProvider),
Arguments.of("RSA PKCS#1 SHA512", OpenSslAsyncPrivateKeyMethod.SSL_SIGN_RSA_PKCS1_SHA512,
CertificateBuilder.Algorithm.rsa2048, clientUsesProvider),
Arguments.of("RSA PKCS#1 MD5+SHA1", OpenSslAsyncPrivateKeyMethod.SSL_SIGN_RSA_PKCS1_MD5_SHA1,
CertificateBuilder.Algorithm.rsa2048, clientUsesProvider),
// RSA-PSS algorithms
Arguments.of("RSA-PSS SHA256", OpenSslAsyncPrivateKeyMethod.SSL_SIGN_RSA_PSS_RSAE_SHA256,
Source
Frequently Asked Questions
What is the JdkDelegatingPrivateKeyMethodTest class?
JdkDelegatingPrivateKeyMethodTest is a class in the netty codebase, defined in handler/src/test/java/io/netty/handler/ssl/JdkDelegatingPrivateKeyMethodTest.java.
Where is JdkDelegatingPrivateKeyMethodTest defined?
JdkDelegatingPrivateKeyMethodTest is defined in handler/src/test/java/io/netty/handler/ssl/JdkDelegatingPrivateKeyMethodTest.java at line 73.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free