public void ReceivedFrame(SslStream sslStream, ReadOnlySpan <byte> frame) { TlsFrameHelper.TlsFrameInfo info = default; bool isComplete = TlsFrameHelper.TryGetFrameInfo(frame, ref info); ReceivedFrame(IdOf(sslStream), info.ToString(), isComplete ? 1 : 0); }
public void SentFrame(SslStream sslStream, ReadOnlySpan <byte> frame) { if (IsEnabled()) { TlsFrameHelper.TlsFrameInfo info = default; bool isComplete = TlsFrameHelper.TryGetFrameInfo(frame, ref info); SentFrame(IdOf(sslStream), info.ToString(), isComplete ? 1 : 0); } }
private static bool TryReadHello(ReadOnlySequence <byte> buffer, ILogger logger, out bool abort) { abort = false; if (!buffer.IsSingleSegment) { throw new NotImplementedException("Multiple buffer segments"); } var data = buffer.First.Span; TlsFrameHelper.TlsFrameInfo info = default; if (!TlsFrameHelper.TryGetFrameInfo(data, ref info)) { return(false); } if (!info.SupportedVersions.HasFlag(System.Security.Authentication.SslProtocols.Tls12)) { logger.LogInformation("Unsupported versions: {versions}", info.SupportedVersions); abort = true; } else { logger.LogInformation("Protocol versions: {versions}", info.SupportedVersions); } if (!AllowHost(info.TargetName)) { logger.LogInformation("Disallowed host: {host}", info.TargetName); abort = true; } else { logger.LogInformation("SNI: {host}", info.TargetName); } return(true); }