Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ TryGetFrameInfo()

static bool System.Net.Security.TlsFrameHelper.TryGetFrameInfo ( ReadOnlySpan< byte > frame,
ref TlsFrameInfo info,
ProcessingOptions options = ProcessingOptions::All,
HelloExtensionCallback callback = null )
inlinestatic

Definition at line 110 of file TlsFrameHelper.cs.

111 {
112 if (frame.Length < 5)
113 {
114 return false;
115 }
116 bool flag = TryGetFrameHeader(frame, ref info.Header);
117 info.SupportedVersions = info.Header.Version;
118 if (info.Header.Type == TlsContentType.Alert)
119 {
120 TlsAlertLevel level = (TlsAlertLevel)0;
121 TlsAlertDescription description = TlsAlertDescription.CloseNotify;
122 if (TryGetAlertInfo(frame, ref level, ref description))
123 {
124 info.AlertDescription = description;
125 return true;
126 }
127 return false;
128 }
129 if (info.Header.Type != TlsContentType.Handshake || frame.Length <= 5)
130 {
131 return false;
132 }
133 info.HandshakeType = (TlsHandshakeType)frame[5];
134 bool result = frame.Length >= 5 + info.Header.Length;
135 if (info.Header.Version >= SslProtocols.Tls && (info.HandshakeType == TlsHandshakeType.ClientHello || info.HandshakeType == TlsHandshakeType.ServerHello) && !TryParseHelloFrame(frame.Slice(5), ref info, options, callback))
136 {
137 result = false;
138 }
139 return result;
140 }
static bool TryGetAlertInfo(ReadOnlySpan< byte > frame, ref TlsAlertLevel level, ref TlsAlertDescription description)
static bool TryParseHelloFrame(ReadOnlySpan< byte > sslHandshake, ref TlsFrameInfo info, ProcessingOptions options, HelloExtensionCallback callback)
static bool TryGetFrameHeader(ReadOnlySpan< byte > frame, ref TlsFrameHeader header)
ReadOnlySpan< T > Slice(int start)

References System.info, System.ReadOnlySpan< T >.Length, System.options, System.ReadOnlySpan< T >.Slice(), System.Net.Security.TlsFrameHelper.TryGetAlertInfo(), System.Net.Security.TlsFrameHelper.TryGetFrameHeader(), and System.Net.Security.TlsFrameHelper.TryParseHelloFrame().

Referenced by System.Net.Security.SslStream.ReceiveBlobAsync< TIOAdapter >(), and System.Net.NetEventSource.SentFrame().