From 1724c4644cad6693a2c9e5c1e014a7e15d6358c6 Mon Sep 17 00:00:00 2001 From: Ben Adams Date: Tue, 20 Apr 2021 18:48:11 +0100 Subject: [PATCH] Increase SslStream Frameoverhead estimation for newer TLS protocols (#51320) --- .../src/System/Net/Security/SslStream.Implementation.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Implementation.cs b/src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Implementation.cs index 0f7b5073c5a..3193e8f667b 100644 --- a/src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Implementation.cs +++ b/src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Implementation.cs @@ -37,7 +37,9 @@ private enum Framing private object _handshakeLock => _sslAuthenticationOptions!; private volatile TaskCompletionSource? _handshakeWaiter; - private const int FrameOverhead = 32; + // FrameOverhead = 5 byte header + HMAC trailer + padding (if block cipher) + // HMAC: 32 bytes for SHA-256 or 20 bytes for SHA-1 or 16 bytes for the MD5 + private const int FrameOverhead = 64; private const int ReadBufferSize = 4096 * 4 + FrameOverhead; // We read in 16K chunks + headers. private const int InitialHandshakeBufferSize = 4096 + FrameOverhead; // try to fit at least 4K ServerCertificate private ArrayBuffer _handshakeBuffer; -- GitLab