testOnlySmallBufferNeededForWrap() — netty Function Reference
Architecture documentation for the testOnlySmallBufferNeededForWrap() function in OpenSslEngineTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD fb5ff770_53cf_0546_ab33_a2a5efe6a57f["testOnlySmallBufferNeededForWrap()"] 08957e63_66e1_e2b4_c8aa_4f617c598a7d["OpenSslEngineTest"] fb5ff770_53cf_0546_ab33_a2a5efe6a57f -->|defined in| 08957e63_66e1_e2b4_c8aa_4f617c598a7d style fb5ff770_53cf_0546_ab33_a2a5efe6a57f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
handler/src/test/java/io/netty/handler/ssl/OpenSslEngineTest.java lines 291–345
@MethodSource("newTestParams")
@ParameterizedTest
public void testOnlySmallBufferNeededForWrap(SSLEngineTestParam param) throws Exception {
clientSslCtx = wrapContext(param, SslContextBuilder.forClient()
.trustManager(InsecureTrustManagerFactory.INSTANCE)
.sslProvider(sslClientProvider())
.protocols(param.protocols())
.ciphers(param.ciphers())
.build());
SelfSignedCertificate ssc = CachedSelfSignedCertificate.getCachedCertificate();
serverSslCtx = wrapContext(param, SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey())
.sslProvider(sslServerProvider())
.protocols(param.protocols())
.ciphers(param.ciphers())
.build());
SSLEngine clientEngine = null;
SSLEngine serverEngine = null;
try {
clientEngine = wrapEngine(clientSslCtx.newEngine(UnpooledByteBufAllocator.DEFAULT));
serverEngine = wrapEngine(serverSslCtx.newEngine(UnpooledByteBufAllocator.DEFAULT));
handshake(param.type(), param.delegate(), clientEngine, serverEngine);
// Allocate a buffer which is small enough and set the limit to the capacity to mark its whole content
// as readable.
int srcLen = 1024;
ByteBuffer src = allocateBuffer(param.type(), srcLen);
ByteBuffer dstTooSmall = allocateBuffer(
param.type(), src.capacity() + unwrapEngine(clientEngine).maxWrapOverhead() - 1);
ByteBuffer dst = allocateBuffer(
param.type(), src.capacity() + unwrapEngine(clientEngine).maxWrapOverhead());
// Check that we fail to wrap if the dst buffers capacity is not at least
// src.capacity() + ReferenceCountedOpenSslEngine.MAX_TLS_RECORD_OVERHEAD_LENGTH
SSLEngineResult result = clientEngine.wrap(src, dstTooSmall);
assertEquals(SSLEngineResult.Status.BUFFER_OVERFLOW, result.getStatus());
assertEquals(0, result.bytesConsumed());
assertEquals(0, result.bytesProduced());
assertEquals(src.remaining(), src.capacity());
assertEquals(dst.remaining(), dst.capacity());
// Check that we can wrap with a dst buffer that has the capacity of
// src.capacity() + ReferenceCountedOpenSslEngine.MAX_TLS_RECORD_OVERHEAD_LENGTH
result = clientEngine.wrap(src, dst);
assertEquals(SSLEngineResult.Status.OK, result.getStatus());
assertEquals(srcLen, result.bytesConsumed());
assertEquals(0, src.remaining());
assertTrue(result.bytesProduced() > srcLen);
assertEquals(src.capacity() - result.bytesConsumed(), src.remaining());
assertEquals(dst.capacity() - result.bytesProduced(), dst.remaining());
} finally {
cleanupClientSslEngine(clientEngine);
cleanupServerSslEngine(serverEngine);
}
}
Domain
Subdomains
Source
Frequently Asked Questions
What does testOnlySmallBufferNeededForWrap() do?
testOnlySmallBufferNeededForWrap() is a function in the netty codebase, defined in handler/src/test/java/io/netty/handler/ssl/OpenSslEngineTest.java.
Where is testOnlySmallBufferNeededForWrap() defined?
testOnlySmallBufferNeededForWrap() is defined in handler/src/test/java/io/netty/handler/ssl/OpenSslEngineTest.java at line 291.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free