Home / Function/ testSessionAfterHandshake0() — netty Function Reference

testSessionAfterHandshake0() — netty Function Reference

Architecture documentation for the testSessionAfterHandshake0() function in SSLEngineTest.java from the netty codebase.

Function java Buffer Allocators calls 9 called by 4

Entity Profile

Dependency Diagram

graph TD
  c5f3af8e_dd37_b76f_5f66_6602ce8c5c06["testSessionAfterHandshake0()"]
  9150c92a_2afc_b83a_c3bf_86dfac6e9d9b["SSLEngineTest"]
  c5f3af8e_dd37_b76f_5f66_6602ce8c5c06 -->|defined in| 9150c92a_2afc_b83a_c3bf_86dfac6e9d9b
  767b220b_23cd_feee_c09e_363b7c6f91fd["testSessionAfterHandshake()"]
  767b220b_23cd_feee_c09e_363b7c6f91fd -->|calls| c5f3af8e_dd37_b76f_5f66_6602ce8c5c06
  01724695_32df_7fbc_357f_5dbccdce725b["testSessionAfterHandshakeMutualAuth()"]
  01724695_32df_7fbc_357f_5dbccdce725b -->|calls| c5f3af8e_dd37_b76f_5f66_6602ce8c5c06
  33383957_6342_bcfd_7c4a_925fb66f3394["testSessionAfterHandshakeKeyManagerFactory()"]
  33383957_6342_bcfd_7c4a_925fb66f3394 -->|calls| c5f3af8e_dd37_b76f_5f66_6602ce8c5c06
  fb7fa70f_0dbf_b573_b792_bf19605d10e9["testSessionAfterHandshakeKeyManagerFactoryMutualAuth()"]
  fb7fa70f_0dbf_b573_b792_bf19605d10e9 -->|calls| c5f3af8e_dd37_b76f_5f66_6602ce8c5c06
  bf19737b_7dc7_9dfd_0a67_ae31448ebbe8["protocols()"]
  c5f3af8e_dd37_b76f_5f66_6602ce8c5c06 -->|calls| bf19737b_7dc7_9dfd_0a67_ae31448ebbe8
  e3b541e6_b593_4b1f_a637_da19020e73df["ciphers()"]
  c5f3af8e_dd37_b76f_5f66_6602ce8c5c06 -->|calls| e3b541e6_b593_4b1f_a637_da19020e73df
  7380f50e_d3f0_3078_ee65_de1cb780c79d["handshake()"]
  c5f3af8e_dd37_b76f_5f66_6602ce8c5c06 -->|calls| 7380f50e_d3f0_3078_ee65_de1cb780c79d
  13aca077_a788_4333_9f8b_2b1437653846["delegate()"]
  c5f3af8e_dd37_b76f_5f66_6602ce8c5c06 -->|calls| 13aca077_a788_4333_9f8b_2b1437653846
  9a0dd100_7675_b9dd_fdef_1426d9b0e2f4["additionalPeerAssertions()"]
  c5f3af8e_dd37_b76f_5f66_6602ce8c5c06 -->|calls| 9a0dd100_7675_b9dd_fdef_1426d9b0e2f4
  87e8e20d_ffbe_f5c3_4fd0_7d8ac419206d["cleanupClientSslEngine()"]
  c5f3af8e_dd37_b76f_5f66_6602ce8c5c06 -->|calls| 87e8e20d_ffbe_f5c3_4fd0_7d8ac419206d
  78ad5fe5_58d2_9877_f633_22a7048c0e5e["cleanupServerSslEngine()"]
  c5f3af8e_dd37_b76f_5f66_6602ce8c5c06 -->|calls| 78ad5fe5_58d2_9877_f633_22a7048c0e5e
  2cccbe43_4ef3_743f_592b_8c47827e2819["checkClientTrusted()"]
  c5f3af8e_dd37_b76f_5f66_6602ce8c5c06 -->|calls| 2cccbe43_4ef3_743f_592b_8c47827e2819
  13a9e74b_3d38_780a_47ee_00f3a5bc2a23["checkServerTrusted()"]
  c5f3af8e_dd37_b76f_5f66_6602ce8c5c06 -->|calls| 13a9e74b_3d38_780a_47ee_00f3a5bc2a23
  style c5f3af8e_dd37_b76f_5f66_6602ce8c5c06 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java lines 3636–3879

    private void testSessionAfterHandshake0(
            SSLEngineTestParam param, boolean useKeyManagerFactory, boolean mutualAuth) throws Exception {
        SelfSignedCertificate ssc = CachedSelfSignedCertificate.getCachedCertificate();
        KeyManagerFactory kmf = useKeyManagerFactory ?
                SslContext.buildKeyManagerFactory(
                        new java.security.cert.X509Certificate[] { ssc.cert()}, null,
                        ssc.key(), null, null, null) : null;

        SslContextBuilder clientContextBuilder = SslContextBuilder.forClient();
        if (mutualAuth) {
            if (kmf != null) {
                clientContextBuilder.keyManager(kmf);
            } else {
                clientContextBuilder.keyManager(ssc.key(), ssc.cert());
            }
        }

        final String handshakeKey = "handshake";
        TrustManagerFactory tmf = new ConstantTrustManagerFactory(new EmptyExtendedX509TrustManager() {
            @Override
            public void checkClientTrusted(java.security.cert.X509Certificate[] chain,
                                           String authType, SSLEngine engine) {
                // This is broken in conscrypt.
                // TODO: Open an issue in the conscrypt project.
                if (!Conscrypt.isEngineSupported(engine)) {
                    assertEquals(0, engine.getHandshakeSession().getValueNames().length);
                }
                engine.getHandshakeSession().putValue(handshakeKey, Boolean.TRUE);
            }

            @Override
            public void checkServerTrusted(java.security.cert.X509Certificate[] chain,
                                           String authType, SSLEngine engine) {
                // This is broken in conscrypt.
                // TODO: Open an issue in the conscrypt project.
                if (!Conscrypt.isEngineSupported(engine)) {
                    assertEquals(0, engine.getHandshakeSession().getValueNames().length);
                }
                engine.getHandshakeSession().putValue(handshakeKey, Boolean.TRUE);
            }
        });

        clientSslCtx = wrapContext(param, clientContextBuilder
                                        .trustManager(tmf)
                                        .sslProvider(sslClientProvider())
                                        .sslContextProvider(clientSslContextProvider())
                                        .protocols(param.protocols())
                                        .ciphers(param.ciphers())
                                        .build());

        SslContextBuilder serverContextBuilder = kmf != null ?
                SslContextBuilder.forServer(kmf) :
                SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey());
        if (mutualAuth) {
            serverContextBuilder.clientAuth(ClientAuth.REQUIRE);
        }
        serverSslCtx = wrapContext(param, serverContextBuilder.trustManager(tmf)
                                     .sslProvider(sslServerProvider())
                                     .sslContextProvider(serverSslContextProvider())
                                     .protocols(param.protocols())
                                     .ciphers(param.ciphers())
                                     .build());
        SSLEngine clientEngine = null;
        SSLEngine serverEngine = null;
        String key = "key";
        try {
            clientEngine = wrapEngine(clientSslCtx.newEngine(UnpooledByteBufAllocator.DEFAULT));
            serverEngine = wrapEngine(serverSslCtx.newEngine(UnpooledByteBufAllocator.DEFAULT));

            clientEngine.getSession().putValue(key, Boolean.TRUE);
            assertEquals(Boolean.TRUE, clientEngine.getSession().getValue(key));
            serverEngine.getSession().putValue(key, Boolean.TRUE);
            assertEquals(Boolean.TRUE, serverEngine.getSession().getValue(key));

            handshake(param.type(), param.delegate(), clientEngine, serverEngine);

            SSLSession clientSession = clientEngine.getSession();
            SSLSession serverSession = serverEngine.getSession();

            // The values should not have been carried over.
            // This is broken in conscrypt.

Domain

Subdomains

Frequently Asked Questions

What does testSessionAfterHandshake0() do?
testSessionAfterHandshake0() is a function in the netty codebase, defined in handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java.
Where is testSessionAfterHandshake0() defined?
testSessionAfterHandshake0() is defined in handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java at line 3636.
What does testSessionAfterHandshake0() call?
testSessionAfterHandshake0() calls 9 function(s): additionalPeerAssertions, checkClientTrusted, checkServerTrusted, ciphers, cleanupClientSslEngine, cleanupServerSslEngine, delegate, handshake, and 1 more.
What calls testSessionAfterHandshake0()?
testSessionAfterHandshake0() is called by 4 function(s): testSessionAfterHandshake, testSessionAfterHandshakeKeyManagerFactory, testSessionAfterHandshakeKeyManagerFactoryMutualAuth, testSessionAfterHandshakeMutualAuth.

Analyze Your Own Codebase

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

Try Supermodel Free