doHandshakeVerifyReusedAndClose() — netty Function Reference
Architecture documentation for the doHandshakeVerifyReusedAndClose() function in SSLEngineTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 5b1aff79_52fd_e366_c29d_676e7d63d1e6["doHandshakeVerifyReusedAndClose()"] 9150c92a_2afc_b83a_c3bf_86dfac6e9d9b["SSLEngineTest"] 5b1aff79_52fd_e366_c29d_676e7d63d1e6 -->|defined in| 9150c92a_2afc_b83a_c3bf_86dfac6e9d9b 98846a7d_40bd_bbdd_3c36_d1979088d64c["testSessionCache()"] 98846a7d_40bd_bbdd_3c36_d1979088d64c -->|calls| 5b1aff79_52fd_e366_c29d_676e7d63d1e6 19dcc27e_3987_d074_4e29_5604494bbd1a["testSessionCacheTimeout()"] 19dcc27e_3987_d074_4e29_5604494bbd1a -->|calls| 5b1aff79_52fd_e366_c29d_676e7d63d1e6 910c0466_28a5_23c5_32b4_4c6f6c6c912e["testSessionCacheSize()"] 910c0466_28a5_23c5_32b4_4c6f6c6c912e -->|calls| 5b1aff79_52fd_e366_c29d_676e7d63d1e6 7380f50e_d3f0_3078_ee65_de1cb780c79d["handshake()"] 5b1aff79_52fd_e366_c29d_676e7d63d1e6 -->|calls| 7380f50e_d3f0_3078_ee65_de1cb780c79d 13aca077_a788_4333_9f8b_2b1437653846["delegate()"] 5b1aff79_52fd_e366_c29d_676e7d63d1e6 -->|calls| 13aca077_a788_4333_9f8b_2b1437653846 86625e77_2660_9fd9_6d8d_5db0cbb6be96["currentSessionCacheSize()"] 5b1aff79_52fd_e366_c29d_676e7d63d1e6 -->|calls| 86625e77_2660_9fd9_6d8d_5db0cbb6be96 6339eaf6_8a69_2f4f_725d_2c2c5c9286e2["assertSessionReusedForEngine()"] 5b1aff79_52fd_e366_c29d_676e7d63d1e6 -->|calls| 6339eaf6_8a69_2f4f_725d_2c2c5c9286e2 f25b1f05_b981_6c36_3ee6_e0ab50a29057["closeOutboundAndInbound()"] 5b1aff79_52fd_e366_c29d_676e7d63d1e6 -->|calls| f25b1f05_b981_6c36_3ee6_e0ab50a29057 87e8e20d_ffbe_f5c3_4fd0_7d8ac419206d["cleanupClientSslEngine()"] 5b1aff79_52fd_e366_c29d_676e7d63d1e6 -->|calls| 87e8e20d_ffbe_f5c3_4fd0_7d8ac419206d 78ad5fe5_58d2_9877_f633_22a7048c0e5e["cleanupServerSslEngine()"] 5b1aff79_52fd_e366_c29d_676e7d63d1e6 -->|calls| 78ad5fe5_58d2_9877_f633_22a7048c0e5e style 5b1aff79_52fd_e366_c29d_676e7d63d1e6 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java lines 3283–3378
private void doHandshakeVerifyReusedAndClose(SSLEngineTestParam param, String host, int port, boolean reuse)
throws Exception {
SSLEngine clientEngine = null;
SSLEngine serverEngine = null;
try {
clientEngine = wrapEngine(clientSslCtx.newEngine(UnpooledByteBufAllocator.DEFAULT, host, port));
serverEngine = wrapEngine(serverSslCtx.newEngine(UnpooledByteBufAllocator.DEFAULT));
handshake(param.type(), param.delegate(), clientEngine, serverEngine);
int clientSessions = currentSessionCacheSize(clientSslCtx.sessionContext());
int serverSessions = currentSessionCacheSize(serverSslCtx.sessionContext());
int nCSessions = clientSessions;
int nSSessions = serverSessions;
SessionReusedState clientSessionReused = SessionReusedState.NOT_REUSED;
SessionReusedState serverSessionReused = SessionReusedState.NOT_REUSED;
if (param.protocolCipherCombo == ProtocolCipherCombo.TLSV13) {
// Allocate something which is big enough for sure
ByteBuffer packetBuffer = allocateBuffer(param.type(), 32 * 1024);
ByteBuffer appBuffer = allocateBuffer(param.type(), 32 * 1024);
appBuffer.clear().position(4).flip();
packetBuffer.clear();
do {
SSLEngineResult result;
do {
result = serverEngine.wrap(appBuffer, packetBuffer);
} while (appBuffer.hasRemaining() || result.bytesProduced() > 0);
appBuffer.clear();
packetBuffer.flip();
do {
result = clientEngine.unwrap(packetBuffer, appBuffer);
} while (packetBuffer.hasRemaining() || result.bytesProduced() > 0);
packetBuffer.clear();
appBuffer.clear().position(4).flip();
do {
result = clientEngine.wrap(appBuffer, packetBuffer);
} while (appBuffer.hasRemaining() || result.bytesProduced() > 0);
appBuffer.clear();
packetBuffer.flip();
do {
result = serverEngine.unwrap(packetBuffer, appBuffer);
} while (packetBuffer.hasRemaining() || result.bytesProduced() > 0);
packetBuffer.clear();
appBuffer.clear().position(4).flip();
nCSessions = currentSessionCacheSize(clientSslCtx.sessionContext());
nSSessions = currentSessionCacheSize(serverSslCtx.sessionContext());
clientSessionReused = isSessionReused(clientEngine);
serverSessionReused = isSessionReused(serverEngine);
} while ((reuse && (clientSessionReused == SessionReusedState.NOT_REUSED ||
serverSessionReused == SessionReusedState.NOT_REUSED))
|| (!reuse && (nCSessions < clientSessions ||
// server may use multiple sessions
nSSessions < serverSessions)));
}
assertSessionReusedForEngine(clientEngine, serverEngine, reuse);
String key = "key";
if (reuse) {
if (clientSessionReused != SessionReusedState.NOT_REUSED) {
// We should see the previous stored value on session reuse.
// This is broken in conscrypt.
// TODO: Open an issue in the conscrypt project.
if (!Conscrypt.isEngineSupported(clientEngine)) {
assertEquals(Boolean.TRUE, clientEngine.getSession().getValue(key));
}
if (clientSessionReused == SessionReusedState.REUSED) {
// If we know for sure it was reused so the accessedTime needs to be larger.
assertThat(clientEngine.getSession().getLastAccessedTime())
.isGreaterThan(clientEngine.getSession().getCreationTime());
} else {
assertThat(clientEngine.getSession().getLastAccessedTime())
.isGreaterThanOrEqualTo(clientEngine.getSession().getCreationTime());
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does doHandshakeVerifyReusedAndClose() do?
doHandshakeVerifyReusedAndClose() is a function in the netty codebase, defined in handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java.
Where is doHandshakeVerifyReusedAndClose() defined?
doHandshakeVerifyReusedAndClose() is defined in handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java at line 3283.
What does doHandshakeVerifyReusedAndClose() call?
doHandshakeVerifyReusedAndClose() calls 7 function(s): assertSessionReusedForEngine, cleanupClientSslEngine, cleanupServerSslEngine, closeOutboundAndInbound, currentSessionCacheSize, delegate, handshake.
What calls doHandshakeVerifyReusedAndClose()?
doHandshakeVerifyReusedAndClose() is called by 3 function(s): testSessionCache, testSessionCacheSize, testSessionCacheTimeout.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free