Home / Function/ mustFailHandshakePromiseIfResumeServerTrustedThrows() — netty Function Reference

mustFailHandshakePromiseIfResumeServerTrustedThrows() — netty Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  00852079_bb8f_3799_f1ac_a89eb99030cf["mustFailHandshakePromiseIfResumeServerTrustedThrows()"]
  9150c92a_2afc_b83a_c3bf_86dfac6e9d9b["SSLEngineTest"]
  00852079_bb8f_3799_f1ac_a89eb99030cf -->|defined in| 9150c92a_2afc_b83a_c3bf_86dfac6e9d9b
  3fb9b745_261d_4391_c31f_a44d5deeb05a["SessionValueSettingTrustManager()"]
  00852079_bb8f_3799_f1ac_a89eb99030cf -->|calls| 3fb9b745_261d_4391_c31f_a44d5deeb05a
  830d1fa0_737a_d68d_fa06_6192fe4f0353["resumeServerTrusted()"]
  00852079_bb8f_3799_f1ac_a89eb99030cf -->|calls| 830d1fa0_737a_d68d_fa06_6192fe4f0353
  3d8a44de_993f_2a06_4ab4_7636ad7d89eb["buildClientSslContextForMTLS()"]
  00852079_bb8f_3799_f1ac_a89eb99030cf -->|calls| 3d8a44de_993f_2a06_4ab4_7636ad7d89eb
  144a17f3_53a5_cd5c_ad3d_a22c4a90f0e3["buildServerSslContextForMTLS()"]
  00852079_bb8f_3799_f1ac_a89eb99030cf -->|calls| 144a17f3_53a5_cd5c_ad3d_a22c4a90f0e3
  a4c6f3c6_7c1f_4410_d6f3_c118e7483035["messageReceived()"]
  00852079_bb8f_3799_f1ac_a89eb99030cf -->|calls| a4c6f3c6_7c1f_4410_d6f3_c118e7483035
  c1ea24b4_912a_5bc9_eb9f_d097c21e00d3["setupServer()"]
  00852079_bb8f_3799_f1ac_a89eb99030cf -->|calls| c1ea24b4_912a_5bc9_eb9f_d097c21e00d3
  13aca077_a788_4333_9f8b_2b1437653846["delegate()"]
  00852079_bb8f_3799_f1ac_a89eb99030cf -->|calls| 13aca077_a788_4333_9f8b_2b1437653846
  5b1d05e1_aa74_d249_3836_8b69b42f579f["setupClient()"]
  00852079_bb8f_3799_f1ac_a89eb99030cf -->|calls| 5b1d05e1_aa74_d249_3836_8b69b42f579f
  13a9e74b_3d38_780a_47ee_00f3a5bc2a23["checkServerTrusted()"]
  00852079_bb8f_3799_f1ac_a89eb99030cf -->|calls| 13a9e74b_3d38_780a_47ee_00f3a5bc2a23
  style 00852079_bb8f_3799_f1ac_a89eb99030cf fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java lines 3945–4009

    @Timeout(value = 60, threadMode = Timeout.ThreadMode.SEPARATE_THREAD)
    @MethodSource("newTestParams")
    @ParameterizedTest
    void mustFailHandshakePromiseIfResumeServerTrustedThrows(SSLEngineTestParam param) throws Exception {
        final AtomicInteger checkServerTrustedCount = new AtomicInteger();
        SelfSignedCertificate ssc = CachedSelfSignedCertificate.getCachedCertificate();
        SessionValueSettingTrustManager clientTm = new SessionValueSettingTrustManager("key", "client") {
            @Override
            public void checkServerTrusted(
                    java.security.cert.X509Certificate[] chain, String authType, SSLEngine engine)
                    throws CertificateException {
                checkServerTrustedCount.incrementAndGet();
                super.checkServerTrusted(chain, authType, engine);
            }

            @Override
            public void resumeServerTrusted(java.security.cert.X509Certificate[] chain, SSLEngine engine)
                    throws CertificateException {
                throw new CertificateException("Test exception");
            }
        };
        SessionValueSettingTrustManager serverTm = new SessionValueSettingTrustManager("key", "server");
        buildClientSslContextForMTLS(param, ssc, clientTm);
        buildServerSslContextForMTLS(param, ssc, serverTm);
        OnNextMessage checkServer = new OnNextMessage() {
            @Override
            public void messageReceived(ChannelHandlerContext ctx, ByteBuf msg) throws Exception {
                ctx.writeAndFlush(msg).addListener(ChannelFutureListener.CLOSE);
            }
        };

        setupServer(param.type(), param.delegate());
        InetSocketAddress addr = (InetSocketAddress) serverChannel.localAddress();
        setupClient(param.type(), param.delegate(), "a.netty.io", addr.getPort());
        Future<Channel> handshakeFuture = null;

        for (int i = 0; i < 2; i++) {
            serverReceiver.onNextMessages.offer(checkServer);
            ChannelFuture ccf = cb.connect(addr);
            assertTrue(ccf.sync().isSuccess());
            clientChannel = ccf.channel();

            clientChannel.writeAndFlush(clientChannel.alloc().buffer().writeInt(42)).await();
            clientChannel.closeFuture().sync();
            handshakeFuture = clientSslHandshakeFuture;
        }

        int checkServerTrustedCalls = checkServerTrustedCount.get();
        if (checkServerTrustedCalls == 1) {
            do {
                clientChannel.eventLoop().submit(NOOP).await(); // Wait for exception to propagate.
            } while (clientException == null);
            assertEquals("Test exception", clientException.getMessage());
            assertNotNull(handshakeFuture);
            assertTrue(handshakeFuture.isDone());
            assertFalse(handshakeFuture.isSuccess());
            assertEquals("Test exception", handshakeFuture.cause().getMessage());
        } else {
            assertEquals(2, checkServerTrustedCalls);
        }
        ByteBuf byteBuf;
        while ((byteBuf = clientReceiver.messages.poll()) != null) {
            byteBuf.release();
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does mustFailHandshakePromiseIfResumeServerTrustedThrows() do?
mustFailHandshakePromiseIfResumeServerTrustedThrows() is a function in the netty codebase, defined in handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java.
Where is mustFailHandshakePromiseIfResumeServerTrustedThrows() defined?
mustFailHandshakePromiseIfResumeServerTrustedThrows() is defined in handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java at line 3945.
What does mustFailHandshakePromiseIfResumeServerTrustedThrows() call?
mustFailHandshakePromiseIfResumeServerTrustedThrows() calls 9 function(s): SessionValueSettingTrustManager, buildClientSslContextForMTLS, buildServerSslContextForMTLS, checkServerTrusted, delegate, messageReceived, resumeServerTrusted, setupClient, and 1 more.

Analyze Your Own Codebase

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

Try Supermodel Free