< Summary

Line coverage
0%
Covered lines: 1
Uncovered lines: 332
Coverable lines: 333
Total lines: 833
Line coverage: 0.3%
Branch coverage
0%
Covered branches: 0
Total branches: 105
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
File 1: .cctor()100%11100%
File 1: Info(...)0%220%
File 1: Info(...)100%110%
File 1: Info(...)0%220%
File 1: Error(...)100%110%
File 1: Error(...)100%110%
File 1: ErrorMessage(...)0%220%
File 1: IdOf(...)0%220%
File 1: GetHashCode(...)0%220%
File 1: Format(...)0%16160%
File 1: Format(...)0%770%
File 1: WriteEvent(...)0%880%
File 2: DumpBuffer(...)100%110%
File 2: DumpBuffer(...)0%220%
File 2: WriteEvent(...)0%14140%
File 3: EnumerateSecurityPackages(...)100%110%
File 3: SspiPackageNotFound(...)100%110%
File 3: AcquireDefaultCredential(...)100%110%
File 3: AcquireCredentialsHandle(...)100%110%
File 3: AcquireCredentialsHandle(...)100%110%
File 3: InitializeSecurityContext(...)100%110%
File 3: InitializeSecurityContext(...)100%110%
File 3: AcceptSecurityContext(...)100%110%
File 3: AcceptSecurityContext(...)100%110%
File 3: OperationReturnedSomething(...)100%110%
File 3: SecurityContextInputBuffers(...)100%110%
File 3: WriteEvent(...)0%440%
File 3: WriteEvent(...)0%880%
File 3: WriteEvent(...)0%12120%
File 4: SslStreamCtor(...)0%880%
File 4: SslStreamCtor(...)100%110%
File 4: LocatingPrivateKey(...)100%110%
File 4: LocatingPrivateKey(...)100%110%
File 4: CertIsType2(...)100%110%
File 4: CertIsType2(...)100%110%
File 4: FoundCertInStore(...)0%220%
File 4: FoundCertInStore(...)100%110%
File 4: NotFoundCertInStore(...)100%110%
File 4: NotFoundCertInStore(...)100%110%
File 4: RemoteCertificate(...)0%220%
File 4: RemoteCertificate(...)100%110%
File 4: CertificateFromDelegate(...)100%110%
File 4: CertificateFromDelegate(...)100%110%
File 4: NoDelegateNoClientCert(...)100%110%
File 4: NoDelegateNoClientCert(...)100%110%
File 4: NoDelegateButClientCert(...)100%110%
File 4: NoDelegateButClientCert(...)100%110%
File 4: AttemptingRestartUsingCert(...)0%220%
File 4: AttemptingRestartUsingCert(...)100%110%
File 4: NoIssuersTryAllCerts(...)100%110%
File 4: NoIssuersTryAllCerts(...)100%110%
File 4: LookForMatchingCerts(...)100%110%
File 4: LookForMatchingCerts(...)100%110%
File 4: SelectedCert(...)0%220%
File 4: SelectedCert(...)100%110%
File 4: CertsAfterFiltering(...)100%110%
File 4: CertsAfterFiltering(...)100%110%
File 4: FindingMatchingCerts(...)100%110%
File 4: FindingMatchingCerts(...)100%110%
File 4: UsingCachedCredential(...)100%110%
File 4: UsingCachedCredential(...)100%110%
File 4: SspiSelectedCipherSuite(...)100%110%
File 4: RemoteCertificateError(...)100%110%
File 4: RemoteCertificateError(...)100%110%
File 4: RemoteCertDeclaredValid(...)100%110%
File 4: RemoteCertDeclaredValid(...)100%110%
File 4: RemoteCertHasNoErrors(...)100%110%
File 4: RemoteCertHasNoErrors(...)100%110%
File 4: RemoteCertUserDeclaredInvalid(...)100%110%
File 4: RemoteCertUserDeclaredInvalid(...)100%110%
File 4: SentFrame(...)0%220%
File 4: SentFrame(...)100%110%
File 4: ReceivedFrame(...)100%110%
File 4: ReceivedFrame(...)100%110%
File 4: CertificateFromCertContext(...)100%110%
File 4: CertificateFromCertContext(...)100%110%
File 4: AdditionalCustomizedToString(...)0%220%
File 4: WriteEvent(...)0%440%

File(s)

https://raw.githubusercontent.com/dotnet/runtime/811a7eabb75c42db53440e8ba3f60c07511cfd1f/src/libraries/Common/src/System/Net/Logging/NetEventSource.Common.cs

#LineLine coverage
 1// Licensed to the .NET Foundation under one or more agreements.
 2// The .NET Foundation licenses this file to you under the MIT license.
 3
 4using System.Collections;
 5using System.Diagnostics;
 6using System.Diagnostics.CodeAnalysis;
 7using System.Diagnostics.Tracing;
 8using System.Runtime.CompilerServices;
 9using System.Runtime.InteropServices;
 10
 11#pragma warning disable CA1823 // not all IDs are used by all partial providers
 12
 13namespace System.Net
 14{
 15    // Implementation:
 16    // This partial file is meant to be consumed into each System.Net.* assembly that needs to log.  Each such assembly 
 17    // its own NetEventSource partial class that adds an appropriate [EventSource] attribute, giving it a unique name fo
 18    // Those partials can then also add additional events if needed, starting numbering from the NextAvailableEventId de
 19
 20    // Usage:
 21    // - Operations that may allocate (e.g. boxing a value type, using string interpolation, etc.) or that may have comp
 22    //   at call sites should guard access like:
 23    //       if (NetEventSource.Log.IsEnabled()) NetEventSource.Info(null, $"Found certificate: {cert}"); // info loggin
 24    // - Operations that have zero allocations / measurable computations at call sites can use a simpler pattern, callin
 25    //       NetEventSource.Info(this, "literal string");  // arbitrary message with a literal string
 26    //   Debug.Asserts inside the logging methods will help to flag some misuse if the DEBUG_NETEVENTSOURCE_MISUSE compi
 27    //   However, because it can be difficult by observation to understand all of the costs involved, guarding can be do
 28    // - Messages can be strings, formattable strings, or any other object.  Objects (including those used in formattabl
 29    //   formatting applied, controlled by the Format method.  Partial specializations can also override this formatting
 30    //   method that takes an object and optionally provides a string representation of it, in case a particular library
 31
 32    /// <summary>Provides logging facilities for System.Net libraries.</summary>
 33    internal sealed partial class NetEventSource : EventSource
 34    {
 35        private const string EventSourceSuppressMessage = "Parameters to this method are primitive and are trimmer safe"
 36
 37        /// <summary>The single event source instance to use for all logging.</summary>
 138        public static readonly NetEventSource Log = new NetEventSource();
 39
 40        #region Metadata
 41        private const string MissingMember = "(?)";
 42        private const string NullInstance = "(null)";
 43        private const string StaticMethodObject = "(static)";
 44        private const string NoParameters = "";
 45
 46        private const int InfoEventId = 1;
 47        private const int ErrorEventId = 2;
 48        // private const int AssociateEventId = 3; // Defined in NetEventSource.Common.Associate.cs
 49        // private const int DumpArrayEventId = 4; // Defined in NetEventSource.Common.DumpBuffer.cs
 50
 51        private const int NextAvailableEventId = 5; // Update this value whenever new events are added.  Derived types s
 52        #endregion
 53
 54        #region Info
 55        /// <summary>Logs an information message.</summary>
 56        /// <param name="thisOrContextObject">`this`, or another object that serves to provide context for the operation
 57        /// <param name="formattableString">The message to be logged.</param>
 58        /// <param name="memberName">The calling member.</param>
 59        [NonEvent]
 60        public static void Info(object? thisOrContextObject, FormattableString? formattableString = null, [CallerMemberN
 061            Log.Info(IdOf(thisOrContextObject), memberName, formattableString != null ? Format(formattableString) : NoPa
 62
 63        /// <summary>Logs an information message.</summary>
 64        /// <param name="thisOrContextObject">`this`, or another object that serves to provide context for the operation
 65        /// <param name="message">The message to be logged.</param>
 66        /// <param name="memberName">The calling member.</param>
 67        [NonEvent]
 68        public static void Info(object? thisOrContextObject, object? message, [CallerMemberName] string? memberName = nu
 069            Log.Info(IdOf(thisOrContextObject), memberName, Format(message));
 70
 71        [Event(InfoEventId, Level = EventLevel.Informational)]
 72        private void Info(string thisOrContextObject, string? memberName, string? message)
 073        {
 074            Debug.Assert(IsEnabled());
 075            WriteEvent(InfoEventId, thisOrContextObject, memberName ?? MissingMember, message);
 076        }
 77        #endregion
 78
 79        #region Error
 80        /// <summary>Logs an error message.</summary>
 81        /// <param name="thisOrContextObject">`this`, or another object that serves to provide context for the operation
 82        /// <param name="formattableString">The message to be logged.</param>
 83        /// <param name="memberName">The calling member.</param>
 84        [NonEvent]
 85        public static void Error(object? thisOrContextObject, FormattableString formattableString, [CallerMemberName] st
 086            Log.ErrorMessage(IdOf(thisOrContextObject), memberName, Format(formattableString));
 87
 88        /// <summary>Logs an error message.</summary>
 89        /// <param name="thisOrContextObject">`this`, or another object that serves to provide context for the operation
 90        /// <param name="message">The message to be logged.</param>
 91        /// <param name="memberName">The calling member.</param>
 92        [NonEvent]
 93        public static void Error(object? thisOrContextObject, object message, [CallerMemberName] string? memberName = nu
 094            Log.ErrorMessage(IdOf(thisOrContextObject), memberName, Format(message));
 95
 96        [Event(ErrorEventId, Level = EventLevel.Error)]
 97        private void ErrorMessage(string thisOrContextObject, string? memberName, string? message)
 098        {
 099            Debug.Assert(IsEnabled());
 0100            WriteEvent(ErrorEventId, thisOrContextObject, memberName ?? MissingMember, message);
 0101        }
 102        #endregion
 103
 104        #region Helpers
 105        [NonEvent]
 0106        public static string IdOf(object? value) => value != null ? value.GetType().Name + "#" + GetHashCode(value) : Nu
 107
 108        [NonEvent]
 0109        public static int GetHashCode(object? value) => value?.GetHashCode() ?? 0;
 110
 111        [NonEvent]
 112        public static string? Format(object? value)
 0113        {
 114            // If it's null, return a known string for null values
 0115            if (value == null)
 0116            {
 0117                return NullInstance;
 118            }
 119
 120            // Give another partial implementation a chance to provide its own string representation
 0121            string? result = null;
 0122            AdditionalCustomizedToString(value, ref result);
 0123            if (result is not null)
 0124            {
 0125                return result;
 126            }
 127
 128            // Format arrays with their element type name and length
 0129            if (value is Array arr)
 0130            {
 0131                return $"{arr.GetType().GetElementType()}[{((Array)value).Length}]";
 132            }
 133
 134            // Format ICollections as the name and count
 0135            if (value is ICollection c)
 0136            {
 0137                return $"{c.GetType().Name}({c.Count})";
 138            }
 139
 140            // Format SafeHandles as their type, hash code, and pointer value
 0141            if (value is SafeHandle handle)
 0142            {
 0143                return $"{handle.GetType().Name}:{handle.GetHashCode()}(0x{handle.DangerousGetHandle():X})";
 144            }
 145
 146            // Format IntPtrs as hex
 0147            if (value is IntPtr)
 0148            {
 0149                return $"0x{value:X}";
 150            }
 151
 152            // If the string representation of the instance would just be its type name,
 153            // use its id instead.
 0154            string? toString = value.ToString();
 0155            if (toString == null || toString == value.GetType().FullName)
 0156            {
 0157                return IdOf(value);
 158            }
 159
 160            // Otherwise, return the original object so that the caller does default formatting.
 0161            return value.ToString();
 0162        }
 163
 164        [NonEvent]
 165        private static string Format(FormattableString s)
 0166        {
 0167            switch (s.ArgumentCount)
 168            {
 0169                case 0: return s.Format;
 0170                case 1: return string.Format(s.Format, Format(s.GetArgument(0)));
 0171                case 2: return string.Format(s.Format, Format(s.GetArgument(0)), Format(s.GetArgument(1)));
 0172                case 3: return string.Format(s.Format, Format(s.GetArgument(0)), Format(s.GetArgument(1)), Format(s.GetA
 173                default:
 0174                    string?[] formattedArgs = new string?[s.ArgumentCount];
 0175                    for (int i = 0; i < formattedArgs.Length; i++)
 0176                    {
 0177                        formattedArgs[i] = Format(s.GetArgument(i));
 0178                    }
 0179                    return string.Format(s.Format, formattedArgs);
 180            }
 0181        }
 182
 183        static partial void AdditionalCustomizedToString(object value, ref string? result);
 184        #endregion
 185
 186        [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:UnrecognizedReflectionPattern",
 187                   Justification = EventSourceSuppressMessage)]
 188        [NonEvent]
 189        private unsafe void WriteEvent(int eventId, string? arg1, string? arg2, int arg3)
 0190        {
 0191            arg1 ??= "";
 0192            arg2 ??= "";
 193
 0194            fixed (char* arg1Ptr = arg1)
 0195            fixed (char* arg2Ptr = arg2)
 0196            {
 197                const int NumEventDatas = 3;
 0198                EventData* descrs = stackalloc EventData[NumEventDatas];
 199
 0200                descrs[0] = new EventData
 0201                {
 0202                    DataPointer = (IntPtr)(arg1Ptr),
 0203                    Size = (arg1.Length + 1) * sizeof(char)
 0204                };
 0205                descrs[1] = new EventData
 0206                {
 0207                    DataPointer = (IntPtr)(arg2Ptr),
 0208                    Size = (arg2.Length + 1) * sizeof(char)
 0209                };
 0210                descrs[2] = new EventData
 0211                {
 0212                    DataPointer = (IntPtr)(&arg3),
 0213                    Size = sizeof(int)
 0214                };
 215
 0216                WriteEventCore(eventId, NumEventDatas, descrs);
 0217            }
 0218        }
 219    }
 220}
 221

https://raw.githubusercontent.com/dotnet/runtime/811a7eabb75c42db53440e8ba3f60c07511cfd1f/src/libraries/Common/src/System/Net/Logging/NetEventSource.Common.DumpBuffer.cs

#LineLine coverage
 1// Licensed to the .NET Foundation under one or more agreements.
 2// The .NET Foundation licenses this file to you under the MIT license.
 3
 4using System.Diagnostics.CodeAnalysis;
 5using System.Diagnostics.Tracing;
 6using System.Runtime.CompilerServices;
 7
 8namespace System.Net
 9{
 10    internal sealed partial class NetEventSource
 11    {
 12        private const int DumpArrayEventId = 4;
 13        private const int MaxDumpSize = 1024;
 14
 15        [NonEvent]
 16        public static void DumpBuffer(object? thisOrContextObject, byte[] buffer, [CallerMemberName] string? memberName 
 17            DumpBuffer(thisOrContextObject, buffer.AsSpan(), memberName);
 18
 19        /// <summary>Logs the contents of a buffer.</summary>
 20        /// <param name="thisOrContextObject">`this`, or another object that serves to provide context for the operation
 21        /// <param name="buffer">The buffer to be logged.</param>
 22        /// <param name="offset">The starting offset from which to log.</param>
 23        /// <param name="count">The number of bytes to log.</param>
 24        /// <param name="memberName">The calling member.</param>
 25        [NonEvent]
 26        public static void DumpBuffer(object? thisOrContextObject, byte[] buffer, int offset, int count, [CallerMemberNa
 27            DumpBuffer(thisOrContextObject, buffer.AsSpan(offset, count), memberName);
 28
 29        /// <summary>Logs the contents of a buffer.</summary>
 30        /// <param name="thisOrContextObject">`this`, or another object that serves to provide context for the operation
 31        /// <param name="buffer">The buffer to be logged.</param>
 32        /// <param name="memberName">The calling member.</param>
 33        [NonEvent]
 34        public static void DumpBuffer(object? thisOrContextObject, ReadOnlySpan<byte> buffer, [CallerMemberName] string?
 035            Log.DumpBuffer(IdOf(thisOrContextObject), memberName, buffer.Slice(0, Math.Min(buffer.Length, MaxDumpSize)).
 36
 37        [Event(DumpArrayEventId, Level = EventLevel.Verbose)]
 38        private void DumpBuffer(string thisOrContextObject, string? memberName, byte[] buffer) =>
 039            WriteEvent(DumpArrayEventId, thisOrContextObject, memberName ?? MissingMember, buffer);
 40
 41        [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:UnrecognizedReflectionPattern",
 42                   Justification = EventSourceSuppressMessage)]
 43        [NonEvent]
 44        private unsafe void WriteEvent(int eventId, string? arg1, string? arg2, byte[]? arg3)
 045        {
 046            arg1 ??= "";
 047            arg2 ??= "";
 048            arg3 ??= Array.Empty<byte>();
 49
 050            fixed (char* arg1Ptr = arg1)
 051            fixed (char* arg2Ptr = arg2)
 052            fixed (byte* arg3Ptr = arg3)
 053            {
 054                int bufferLength = arg3.Length;
 55                const int NumEventDatas = 4;
 056                EventData* descrs = stackalloc EventData[NumEventDatas];
 57
 058                descrs[0] = new EventData
 059                {
 060                    DataPointer = (IntPtr)arg1Ptr,
 061                    Size = (arg1.Length + 1) * sizeof(char)
 062                };
 063                descrs[1] = new EventData
 064                {
 065                    DataPointer = (IntPtr)arg2Ptr,
 066                    Size = (arg2.Length + 1) * sizeof(char)
 067                };
 068                descrs[2] = new EventData
 069                {
 070                    DataPointer = (IntPtr)(&bufferLength),
 071                    Size = 4
 072                };
 073                descrs[3] = new EventData
 074                {
 075                    DataPointer = (IntPtr)arg3Ptr,
 076                    Size = bufferLength
 077                };
 78
 079                WriteEventCore(eventId, NumEventDatas, descrs);
 080            }
 081        }
 82    }
 83}
 84

https://raw.githubusercontent.com/dotnet/runtime/811a7eabb75c42db53440e8ba3f60c07511cfd1f/src/libraries/Common/src/System/Net/Security/NetEventSource.Security.Windows.cs

#LineLine coverage
 1// Licensed to the .NET Foundation under one or more agreements.
 2// The .NET Foundation licenses this file to you under the MIT license.
 3
 4using System.Diagnostics.CodeAnalysis;
 5using System.Diagnostics.Tracing;
 6using System.Net.Security;
 7
 8namespace System.Net
 9{
 10    internal sealed partial class NetEventSource
 11    {
 12        private const int EnumerateSecurityPackagesId = NextAvailableEventId;
 13        private const int SspiPackageNotFoundId = EnumerateSecurityPackagesId + 1;
 14        private const int AcquireDefaultCredentialId = SspiPackageNotFoundId + 1;
 15        private const int AcquireCredentialsHandleId = AcquireDefaultCredentialId + 1;
 16        private const int InitializeSecurityContextId = AcquireCredentialsHandleId + 1;
 17        private const int SecurityContextInputBufferId = InitializeSecurityContextId + 1;
 18        private const int SecurityContextInputBuffersId = SecurityContextInputBufferId + 1;
 19        private const int AcceptSecuritContextId = SecurityContextInputBuffersId + 1;
 20        private const int OperationReturnedSomethingId = AcceptSecuritContextId + 1;
 21        // Make sure to update the event IDs in NetEventSource.Security.cs if you add more events here
 22
 23        [Event(EnumerateSecurityPackagesId, Level = EventLevel.Informational)]
 24        public void EnumerateSecurityPackages(string? securityPackage) =>
 025            WriteEvent(EnumerateSecurityPackagesId, securityPackage);
 26
 27        [Event(SspiPackageNotFoundId, Level = EventLevel.Informational)]
 28        public void SspiPackageNotFound(string packageName) =>
 029            WriteEvent(SspiPackageNotFoundId, packageName);
 30
 31        [Event(AcquireDefaultCredentialId, Level = EventLevel.Informational)]
 32        public void AcquireDefaultCredential(string packageName, Interop.SspiCli.CredentialUse intent) =>
 033            WriteEvent(AcquireDefaultCredentialId, packageName, intent);
 34
 35        [NonEvent]
 36        public void AcquireCredentialsHandle(string packageName, Interop.SspiCli.CredentialUse intent, object authdata) 
 037            AcquireCredentialsHandle(packageName, intent, IdOf(authdata));
 38
 39        [Event(AcquireCredentialsHandleId, Level = EventLevel.Informational)]
 40        public void AcquireCredentialsHandle(string packageName, Interop.SspiCli.CredentialUse intent, string authdata) 
 041            WriteEvent(AcquireCredentialsHandleId, packageName, (int)intent, authdata);
 42
 43        [NonEvent]
 44        public void InitializeSecurityContext(SafeFreeCredentials? credential, SafeDeleteContext? context, string? targe
 045            InitializeSecurityContext(IdOf(credential), IdOf(context), targetName, inFlags);
 46
 47        [Event(InitializeSecurityContextId, Level = EventLevel.Informational)]
 48        private void InitializeSecurityContext(string credential, string context, string? targetName, Interop.SspiCli.Co
 049            WriteEvent(InitializeSecurityContextId, credential, context, targetName, (int)inFlags);
 50
 51        [NonEvent]
 52        public void AcceptSecurityContext(SafeFreeCredentials? credential, SafeDeleteContext? context, Interop.SspiCli.C
 053            AcceptSecurityContext(IdOf(credential), IdOf(context), inFlags);
 54
 55        [Event(AcceptSecuritContextId, Level = EventLevel.Informational)]
 56        private void AcceptSecurityContext(string credential, string context, Interop.SspiCli.ContextFlags inFlags) =>
 057            WriteEvent(AcceptSecuritContextId, credential, context, (int)inFlags);
 58
 59        [Event(OperationReturnedSomethingId, Level = EventLevel.Informational, Message = "{0} returned {1}.")]
 60        public void OperationReturnedSomething(string operation, Interop.SECURITY_STATUS errorCode) =>
 061            WriteEvent(OperationReturnedSomethingId, operation, errorCode);
 62
 63        [Event(SecurityContextInputBufferId, Level = EventLevel.Informational)]
 64        public void SecurityContextInputBuffer(string context, int inputBufferSize, int outputBufferSize, Interop.SECURI
 65            WriteEvent(SecurityContextInputBufferId, context, inputBufferSize, outputBufferSize, (int)errorCode);
 66
 67        [Event(SecurityContextInputBuffersId, Level = EventLevel.Informational)]
 68        public void SecurityContextInputBuffers(string context, int inputBuffersSize, int outputBufferSize, Interop.SECU
 069            WriteEvent(SecurityContextInputBuffersId, context, inputBuffersSize, outputBufferSize, (int)errorCode);
 70
 71        [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:UnrecognizedReflectionPattern",
 72                   Justification = EventSourceSuppressMessage)]
 73        [NonEvent]
 74        private unsafe void WriteEvent(int eventId, string? arg1, int arg2, int arg3, int arg4)
 075        {
 076            arg1 ??= "";
 77
 078            fixed (char* arg1Ptr = arg1)
 079            {
 80                const int NumEventDatas = 4;
 081                EventData* descrs = stackalloc EventData[NumEventDatas];
 82
 083                descrs[0] = new EventData
 084                {
 085                    DataPointer = (IntPtr)(arg1Ptr),
 086                    Size = (arg1.Length + 1) * sizeof(char)
 087                };
 088                descrs[1] = new EventData
 089                {
 090                    DataPointer = (IntPtr)(&arg2),
 091                    Size = sizeof(int)
 092                };
 093                descrs[2] = new EventData
 094                {
 095                    DataPointer = (IntPtr)(&arg3),
 096                    Size = sizeof(int)
 097                };
 098                descrs[3] = new EventData
 099                {
 0100                    DataPointer = (IntPtr)(&arg4),
 0101                    Size = sizeof(int)
 0102                };
 103
 0104                WriteEventCore(eventId, NumEventDatas, descrs);
 0105            }
 0106        }
 107
 108        [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:UnrecognizedReflectionPattern",
 109                   Justification = EventSourceSuppressMessage)]
 110        [NonEvent]
 111        private unsafe void WriteEvent(int eventId, string? arg1, int arg2, string? arg3)
 0112        {
 0113            arg1 ??= "";
 0114            arg3 ??= "";
 115
 0116            fixed (char* arg1Ptr = arg1)
 0117            fixed (char* arg3Ptr = arg3)
 0118            {
 119                const int NumEventDatas = 3;
 0120                EventData* descrs = stackalloc EventData[NumEventDatas];
 121
 0122                descrs[0] = new EventData
 0123                {
 0124                    DataPointer = (IntPtr)(arg1Ptr),
 0125                    Size = (arg1.Length + 1) * sizeof(char)
 0126                };
 0127                descrs[1] = new EventData
 0128                {
 0129                    DataPointer = (IntPtr)(&arg2),
 0130                    Size = sizeof(int)
 0131                };
 0132                descrs[2] = new EventData
 0133                {
 0134                    DataPointer = (IntPtr)(arg3Ptr),
 0135                    Size = (arg3.Length + 1) * sizeof(char)
 0136                };
 137
 0138                WriteEventCore(eventId, NumEventDatas, descrs);
 0139            }
 0140        }
 141
 142        [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:UnrecognizedReflectionPattern",
 143                   Justification = EventSourceSuppressMessage)]
 144        [NonEvent]
 145        private unsafe void WriteEvent(int eventId, string? arg1, string? arg2, string? arg3, int arg4)
 0146        {
 0147            arg1 ??= "";
 0148            arg2 ??= "";
 0149            arg3 ??= "";
 150
 0151            fixed (char* arg1Ptr = arg1)
 0152            fixed (char* arg2Ptr = arg2)
 0153            fixed (char* arg3Ptr = arg3)
 0154            {
 155                const int NumEventDatas = 4;
 0156                EventData* descrs = stackalloc EventData[NumEventDatas];
 157
 0158                descrs[0] = new EventData
 0159                {
 0160                    DataPointer = (IntPtr)(arg1Ptr),
 0161                    Size = (arg1.Length + 1) * sizeof(char)
 0162                };
 0163                descrs[1] = new EventData
 0164                {
 0165                    DataPointer = (IntPtr)(arg2Ptr),
 0166                    Size = (arg2.Length + 1) * sizeof(char)
 0167                };
 0168                descrs[2] = new EventData
 0169                {
 0170                    DataPointer = (IntPtr)(arg3Ptr),
 0171                    Size = (arg3.Length + 1) * sizeof(char)
 0172                };
 0173                descrs[3] = new EventData
 0174                {
 0175                    DataPointer = (IntPtr)(&arg4),
 0176                    Size = sizeof(int)
 0177                };
 178
 0179                WriteEventCore(eventId, NumEventDatas, descrs);
 0180            }
 0181        }
 182    }
 183}
 184

https://raw.githubusercontent.com/dotnet/runtime/811a7eabb75c42db53440e8ba3f60c07511cfd1f/src/libraries/System.Net.Security/src/System/Net/Security/NetEventSource.Security.cs

#LineLine coverage
 1// Licensed to the .NET Foundation under one or more agreements.
 2// The .NET Foundation licenses this file to you under the MIT license.
 3
 4using System.Diagnostics.CodeAnalysis;
 5using System.Diagnostics.Tracing;
 6using System.IO;
 7using System.Net.Security;
 8using System.Net.Sockets;
 9using System.Security.Authentication;
 10using System.Security.Cryptography.X509Certificates;
 11
 12namespace System.Net
 13{
 14    [EventSource(Name = "Private.InternalDiagnostics.System.Net.Security")]
 15    internal sealed partial class NetEventSource
 16    {
 17#if WINDOWS
 18        // More events are defined in NetEventSource.Security.Windows.cs
 19        private const int LocatingPrivateKeyId = OperationReturnedSomethingId + 1;
 20#else
 21        private const int LocatingPrivateKeyId = NextAvailableEventId;
 22#endif
 23        private const int CertIsType2Id = LocatingPrivateKeyId + 1;
 24        private const int FoundCertInStoreId = CertIsType2Id + 1;
 25        private const int NotFoundCertInStoreId = FoundCertInStoreId + 1;
 26        private const int RemoteCertificateId = NotFoundCertInStoreId + 1;
 27        private const int CertificateFromDelegateId = RemoteCertificateId + 1;
 28        private const int NoDelegateNoClientCertId = CertificateFromDelegateId + 1;
 29        private const int NoDelegateButClientCertId = NoDelegateNoClientCertId + 1;
 30        private const int AttemptingRestartUsingCertId = NoDelegateButClientCertId + 1;
 31        private const int NoIssuersTryAllCertsId = AttemptingRestartUsingCertId + 1;
 32        private const int LookForMatchingCertsId = NoIssuersTryAllCertsId + 1;
 33        private const int SelectedCertId = LookForMatchingCertsId + 1;
 34        private const int CertsAfterFilteringId = SelectedCertId + 1;
 35        private const int FindingMatchingCertsId = CertsAfterFilteringId + 1;
 36        private const int UsingCachedCredentialId = FindingMatchingCertsId + 1;
 37        private const int SspiSelectedCipherSuitId = UsingCachedCredentialId + 1;
 38        private const int RemoteCertificateErrorId = SspiSelectedCipherSuitId + 1;
 39        private const int RemoteVertificateValidId = RemoteCertificateErrorId + 1;
 40        private const int RemoteCertificateSuccessId = RemoteVertificateValidId + 1;
 41        private const int RemoteCertificateInvalidId = RemoteCertificateSuccessId + 1;
 42        private const int SslStreamCtorId = RemoteCertificateInvalidId + 1;
 43        private const int SentFrameId = SslStreamCtorId + 1;
 44        private const int ReceivedFrameId = SentFrameId + 1;
 45        private const int CertificateFromCertContextId = ReceivedFrameId + 1;
 46
 47        [NonEvent]
 48        public void SslStreamCtor(SslStream sslStream, Stream innerStream)
 049        {
 050            string? localId = null;
 051            string? remoteId = null;
 52
 053            if (innerStream is NetworkStream ns)
 054            {
 55                try
 056                {
 057                    localId = ns.Socket.LocalEndPoint?.ToString();
 058                    remoteId = ns.Socket.RemoteEndPoint?.ToString();
 059                }
 060                catch { };
 061            }
 62
 063            localId ??= IdOf(innerStream);
 64
 065            SslStreamCtor(IdOf(sslStream), localId, remoteId);
 066        }
 67
 68        [Event(SslStreamCtorId, Level = EventLevel.Informational)]
 69        private void SslStreamCtor(string thisOrContextObject, string? localId, string? remoteId) =>
 070              WriteEvent(SslStreamCtorId, thisOrContextObject, localId, remoteId);
 71
 72        [NonEvent]
 73        public void LocatingPrivateKey(X509Certificate x509Certificate, object instance) =>
 074            LocatingPrivateKey(x509Certificate.ToString(fVerbose: true), GetHashCode(instance));
 75
 76        [Event(LocatingPrivateKeyId, Level = EventLevel.Informational)]
 77        private void LocatingPrivateKey(string x509Certificate, int sslStreamHash) =>
 078            WriteEvent(LocatingPrivateKeyId, x509Certificate, sslStreamHash);
 79
 80        [NonEvent]
 81        public void CertIsType2(object instance) =>
 082            CertIsType2(GetHashCode(instance));
 83
 84        [Event(CertIsType2Id, Level = EventLevel.Informational)]
 85        private void CertIsType2(int sslStreamHash) =>
 086            WriteEvent(CertIsType2Id, sslStreamHash);
 87
 88        [NonEvent]
 89        public void FoundCertInStore(bool serverMode, object instance) =>
 090            FoundCertInStore(serverMode ? "LocalMachine" : "CurrentUser", GetHashCode(instance));
 91
 92        [Event(FoundCertInStoreId, Level = EventLevel.Informational)]
 93        private void FoundCertInStore(string store, int sslStreamHash) =>
 094            WriteEvent(FoundCertInStoreId, store, sslStreamHash);
 95
 96        [NonEvent]
 97        public void NotFoundCertInStore(object instance) =>
 098            NotFoundCertInStore(GetHashCode(instance));
 99
 100        [Event(NotFoundCertInStoreId, Level = EventLevel.Informational)]
 101        private void NotFoundCertInStore(int sslStreamHash) =>
 0102            WriteEvent(NotFoundCertInStoreId, sslStreamHash);
 103
 104        [NonEvent]
 105        public void RemoteCertificate(X509Certificate? remoteCertificate) =>
 0106            RemoteCertificate(remoteCertificate?.ToString(fVerbose: true));
 107
 108        [Event(RemoteCertificateId, Level = EventLevel.Informational)]
 109        private void RemoteCertificate(string? remoteCertificate) =>
 0110            WriteEvent(RemoteCertificateId, remoteCertificate);
 111
 112        [NonEvent]
 113        public void CertificateFromDelegate(SslStream SslStream) =>
 0114            CertificateFromDelegate(GetHashCode(SslStream));
 115
 116        [Event(CertificateFromDelegateId, Level = EventLevel.Informational)]
 117        private void CertificateFromDelegate(int sslStreamHash) =>
 0118            WriteEvent(CertificateFromDelegateId, sslStreamHash);
 119
 120        [NonEvent]
 121        public void NoDelegateNoClientCert(SslStream SslStream) =>
 0122            NoDelegateNoClientCert(GetHashCode(SslStream));
 123
 124        [Event(NoDelegateNoClientCertId, Level = EventLevel.Informational)]
 125        private void NoDelegateNoClientCert(int sslStreamHash) =>
 0126            WriteEvent(NoDelegateNoClientCertId, sslStreamHash);
 127
 128        [NonEvent]
 129        public void NoDelegateButClientCert(SslStream SslStream) =>
 0130            NoDelegateButClientCert(GetHashCode(SslStream));
 131
 132        [Event(NoDelegateButClientCertId, Level = EventLevel.Informational)]
 133        private void NoDelegateButClientCert(int sslStreamHash) =>
 0134            WriteEvent(NoDelegateButClientCertId, sslStreamHash);
 135
 136        [NonEvent]
 137        public void AttemptingRestartUsingCert(X509Certificate? clientCertificate, SslStream SslStream) =>
 0138            AttemptingRestartUsingCert(clientCertificate?.ToString(fVerbose: true), GetHashCode(SslStream));
 139
 140        [Event(AttemptingRestartUsingCertId, Level = EventLevel.Informational)]
 141        private void AttemptingRestartUsingCert(string? clientCertificate, int sslStreamHash) =>
 0142            WriteEvent(AttemptingRestartUsingCertId, clientCertificate, sslStreamHash);
 143
 144        [NonEvent]
 145        public void NoIssuersTryAllCerts(SslStream SslStream) =>
 0146            NoIssuersTryAllCerts(GetHashCode(SslStream));
 147
 148        [Event(NoIssuersTryAllCertsId, Level = EventLevel.Informational)]
 149        private void NoIssuersTryAllCerts(int sslStreamHash) =>
 0150            WriteEvent(NoIssuersTryAllCertsId, sslStreamHash);
 151
 152        [NonEvent]
 153        public void LookForMatchingCerts(int issuersCount, SslStream SslStream) =>
 0154            LookForMatchingCerts(issuersCount, GetHashCode(SslStream));
 155
 156        [Event(LookForMatchingCertsId, Level = EventLevel.Informational)]
 157        private void LookForMatchingCerts(int issuersCount, int sslStreamHash) =>
 0158            WriteEvent(LookForMatchingCertsId, issuersCount, sslStreamHash);
 159
 160        [NonEvent]
 161        public void SelectedCert(X509Certificate clientCertificate, SslStream SslStream) =>
 0162            SelectedCert(clientCertificate?.ToString(fVerbose: true), GetHashCode(SslStream));
 163
 164        [Event(SelectedCertId, Level = EventLevel.Informational)]
 165        private void SelectedCert(string? clientCertificate, int sslStreamHash) =>
 0166            WriteEvent(SelectedCertId, clientCertificate, sslStreamHash);
 167
 168        [NonEvent]
 169        public void CertsAfterFiltering(int filteredCertsCount, SslStream SslStream) =>
 0170            CertsAfterFiltering(filteredCertsCount, GetHashCode(SslStream));
 171
 172        [Event(CertsAfterFilteringId, Level = EventLevel.Informational)]
 173        private void CertsAfterFiltering(int filteredCertsCount, int sslStreamHash) =>
 0174            WriteEvent(CertsAfterFilteringId, filteredCertsCount, sslStreamHash);
 175
 176        [NonEvent]
 177        public void FindingMatchingCerts(SslStream SslStream) =>
 0178            FindingMatchingCerts(GetHashCode(SslStream));
 179
 180        [Event(FindingMatchingCertsId, Level = EventLevel.Informational)]
 181        private void FindingMatchingCerts(int sslStreamHash) =>
 0182            WriteEvent(FindingMatchingCertsId, sslStreamHash);
 183
 184        [NonEvent]
 185        public void UsingCachedCredential(SslStream SslStream) =>
 0186            UsingCachedCredential(GetHashCode(SslStream));
 187
 188        [Event(UsingCachedCredentialId, Level = EventLevel.Informational)]
 189        private void UsingCachedCredential(int sslStreamHash) =>
 0190            WriteEvent(UsingCachedCredentialId, sslStreamHash);
 191
 192#pragma warning disable SYSLIB0058 // Use NegotiatedCipherSuite.
 193        [Event(SspiSelectedCipherSuitId, Level = EventLevel.Informational)]
 194        public void SspiSelectedCipherSuite(
 195            string process,
 196            SslProtocols sslProtocol,
 197            CipherAlgorithmType cipherAlgorithm,
 198            int cipherStrength,
 199            HashAlgorithmType hashAlgorithm,
 200            int hashStrength,
 201            ExchangeAlgorithmType keyExchangeAlgorithm,
 202            int keyExchangeStrength)
 0203        {
 0204            WriteEvent(SspiSelectedCipherSuitId,
 0205                process, (int)sslProtocol, (int)cipherAlgorithm, cipherStrength,
 0206                (int)hashAlgorithm, hashStrength, (int)keyExchangeAlgorithm, keyExchangeStrength);
 0207        }
 208#pragma warning restore SYSLIB0058 // Use NegotiatedCipherSuite.
 209
 210        [NonEvent]
 211        public void RemoteCertificateError(object sender, string message) =>
 0212            RemoteCertificateError(GetHashCode(sender), message);
 213
 214        [Event(RemoteCertificateErrorId, Level = EventLevel.Verbose)]
 215        private void RemoteCertificateError(int sslStreamHash, string message) =>
 0216            WriteEvent(RemoteCertificateErrorId, sslStreamHash, message);
 217
 218        [NonEvent]
 219        public void RemoteCertDeclaredValid(object sender) =>
 0220            RemoteCertDeclaredValid(GetHashCode(sender));
 221
 222        [Event(RemoteVertificateValidId, Level = EventLevel.Verbose)]
 223        private void RemoteCertDeclaredValid(int sslStreamHash) =>
 0224            WriteEvent(RemoteVertificateValidId, sslStreamHash);
 225
 226        [NonEvent]
 227        public void RemoteCertHasNoErrors(object sender) =>
 0228            RemoteCertHasNoErrors(GetHashCode(sender));
 229
 230        [Event(RemoteCertificateSuccessId, Level = EventLevel.Verbose)]
 231        private void RemoteCertHasNoErrors(int sslStreamHash) =>
 0232            WriteEvent(RemoteCertificateSuccessId, sslStreamHash);
 233
 234        [NonEvent]
 235        public void RemoteCertUserDeclaredInvalid(object sender) =>
 0236            RemoteCertUserDeclaredInvalid(GetHashCode(sender));
 237
 238        [Event(RemoteCertificateInvalidId, Level = EventLevel.Verbose)]
 239        private void RemoteCertUserDeclaredInvalid(int sslStreamHash) =>
 0240            WriteEvent(RemoteCertificateInvalidId, sslStreamHash);
 241
 242        [NonEvent]
 243        public void SentFrame(SslStream sslStream, ReadOnlySpan<byte> frame)
 0244        {
 0245            TlsFrameHelper.TlsFrameInfo info = default;
 0246            bool isComplete = TlsFrameHelper.TryGetFrameInfo(frame, ref info);
 0247            SentFrame(IdOf(sslStream), info.ToString(), isComplete ? 1 : 0);
 0248        }
 249
 250        [Event(SentFrameId, Level = EventLevel.Verbose)]
 251        private void SentFrame(string sslStream, string tlsFrame, int isComplete) =>
 0252            WriteEvent(SentFrameId, sslStream, tlsFrame, isComplete);
 253
 254        [NonEvent]
 255        public void ReceivedFrame(SslStream sslStream, TlsFrameHelper.TlsFrameInfo frameInfo) =>
 0256            ReceivedFrame(IdOf(sslStream), frameInfo.ToString(), 1);
 257
 258        [NonEvent]
 259        public void ReceivedFrame(SslStream sslStream, ReadOnlySpan<byte> frame)
 260        {
 261            TlsFrameHelper.TlsFrameInfo info = default;
 262            bool isComplete = TlsFrameHelper.TryGetFrameInfo(frame, ref info);
 263            ReceivedFrame(IdOf(sslStream), info.ToString(), isComplete ? 1 : 0);
 264        }
 265
 266        [Event(ReceivedFrameId, Level = EventLevel.Verbose)]
 267        private void ReceivedFrame(string sslStream, string tlsFrame, int isComplete) =>
 0268            WriteEvent(ReceivedFrameId, sslStream, tlsFrame, isComplete);
 269
 270        [NonEvent]
 271        public void CertificateFromCertContext(SslStream sslStream) =>
 0272            CertificateFromCertContext(GetHashCode(sslStream));
 273
 274        [Event(CertificateFromCertContextId, Level = EventLevel.Informational)]
 275        public void CertificateFromCertContext(int sslStreamHash) =>
 0276            WriteEvent(CertificateFromCertContextId, sslStreamHash);
 277
 278        static partial void AdditionalCustomizedToString(object value, ref string? result)
 0279        {
 0280            if (value is X509Certificate cert)
 0281            {
 0282                result = cert.ToString(fVerbose: true);
 0283            }
 0284        }
 285
 286        [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:UnrecognizedReflectionPattern",
 287                   Justification = EventSourceSuppressMessage)]
 288        [NonEvent]
 289        private unsafe void WriteEvent(int eventId, string arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int a
 0290        {
 0291            arg1 ??= "";
 292
 0293            fixed (char* arg1Ptr = arg1)
 0294            {
 295                const int NumEventDatas = 8;
 0296                EventData* descrs = stackalloc EventData[NumEventDatas];
 297
 0298                descrs[0] = new EventData
 0299                {
 0300                    DataPointer = (IntPtr)(arg1Ptr),
 0301                    Size = (arg1.Length + 1) * sizeof(char)
 0302                };
 0303                descrs[1] = new EventData
 0304                {
 0305                    DataPointer = (IntPtr)(&arg2),
 0306                    Size = sizeof(int)
 0307                };
 0308                descrs[2] = new EventData
 0309                {
 0310                    DataPointer = (IntPtr)(&arg3),
 0311                    Size = sizeof(int)
 0312                };
 0313                descrs[3] = new EventData
 0314                {
 0315                    DataPointer = (IntPtr)(&arg4),
 0316                    Size = sizeof(int)
 0317                };
 0318                descrs[4] = new EventData
 0319                {
 0320                    DataPointer = (IntPtr)(&arg5),
 0321                    Size = sizeof(int)
 0322                };
 0323                descrs[5] = new EventData
 0324                {
 0325                    DataPointer = (IntPtr)(&arg6),
 0326                    Size = sizeof(int)
 0327                };
 0328                descrs[6] = new EventData
 0329                {
 0330                    DataPointer = (IntPtr)(&arg7),
 0331                    Size = sizeof(int)
 0332                };
 0333                descrs[7] = new EventData
 0334                {
 0335                    DataPointer = (IntPtr)(&arg8),
 0336                    Size = sizeof(int)
 0337                };
 338
 0339                WriteEventCore(eventId, NumEventDatas, descrs);
 0340            }
 0341        }
 342    }
 343}
 344

Methods/Properties

.cctor()
Info(System.Object,System.FormattableString,System.String)
Info(System.Object,System.Object,System.String)
Info(System.String,System.String,System.String)
Error(System.Object,System.FormattableString,System.String)
Error(System.Object,System.Object,System.String)
ErrorMessage(System.String,System.String,System.String)
IdOf(System.Object)
GetHashCode(System.Object)
Format(System.Object)
Format(System.FormattableString)
WriteEvent(System.Int32,System.String,System.String,System.Int32)
DumpBuffer(System.Object,System.ReadOnlySpan`1<System.Byte>,System.String)
DumpBuffer(System.String,System.String,System.Byte[])
WriteEvent(System.Int32,System.String,System.String,System.Byte[])
EnumerateSecurityPackages(System.String)
SspiPackageNotFound(System.String)
AcquireDefaultCredential(System.String,Interop/SspiCli/CredentialUse)
AcquireCredentialsHandle(System.String,Interop/SspiCli/CredentialUse,System.Object)
AcquireCredentialsHandle(System.String,Interop/SspiCli/CredentialUse,System.String)
InitializeSecurityContext(System.Net.Security.SafeFreeCredentials,System.Net.Security.SafeDeleteContext,System.String,Interop/SspiCli/ContextFlags)
InitializeSecurityContext(System.String,System.String,System.String,Interop/SspiCli/ContextFlags)
AcceptSecurityContext(System.Net.Security.SafeFreeCredentials,System.Net.Security.SafeDeleteContext,Interop/SspiCli/ContextFlags)
AcceptSecurityContext(System.String,System.String,Interop/SspiCli/ContextFlags)
OperationReturnedSomething(System.String,Interop/SECURITY_STATUS)
SecurityContextInputBuffers(System.String,System.Int32,System.Int32,Interop/SECURITY_STATUS)
WriteEvent(System.Int32,System.String,System.Int32,System.Int32,System.Int32)
WriteEvent(System.Int32,System.String,System.Int32,System.String)
WriteEvent(System.Int32,System.String,System.String,System.String,System.Int32)
SslStreamCtor(System.Net.Security.SslStream,System.IO.Stream)
SslStreamCtor(System.String,System.String,System.String)
LocatingPrivateKey(System.Security.Cryptography.X509Certificates.X509Certificate,System.Object)
LocatingPrivateKey(System.String,System.Int32)
CertIsType2(System.Object)
CertIsType2(System.Int32)
FoundCertInStore(System.Boolean,System.Object)
FoundCertInStore(System.String,System.Int32)
NotFoundCertInStore(System.Object)
NotFoundCertInStore(System.Int32)
RemoteCertificate(System.Security.Cryptography.X509Certificates.X509Certificate)
RemoteCertificate(System.String)
CertificateFromDelegate(System.Net.Security.SslStream)
CertificateFromDelegate(System.Int32)
NoDelegateNoClientCert(System.Net.Security.SslStream)
NoDelegateNoClientCert(System.Int32)
NoDelegateButClientCert(System.Net.Security.SslStream)
NoDelegateButClientCert(System.Int32)
AttemptingRestartUsingCert(System.Security.Cryptography.X509Certificates.X509Certificate,System.Net.Security.SslStream)
AttemptingRestartUsingCert(System.String,System.Int32)
NoIssuersTryAllCerts(System.Net.Security.SslStream)
NoIssuersTryAllCerts(System.Int32)
LookForMatchingCerts(System.Int32,System.Net.Security.SslStream)
LookForMatchingCerts(System.Int32,System.Int32)
SelectedCert(System.Security.Cryptography.X509Certificates.X509Certificate,System.Net.Security.SslStream)
SelectedCert(System.String,System.Int32)
CertsAfterFiltering(System.Int32,System.Net.Security.SslStream)
CertsAfterFiltering(System.Int32,System.Int32)
FindingMatchingCerts(System.Net.Security.SslStream)
FindingMatchingCerts(System.Int32)
UsingCachedCredential(System.Net.Security.SslStream)
UsingCachedCredential(System.Int32)
SspiSelectedCipherSuite(System.String,System.Security.Authentication.SslProtocols,System.Security.Authentication.CipherAlgorithmType,System.Int32,System.Security.Authentication.HashAlgorithmType,System.Int32,System.Security.Authentication.ExchangeAlgorithmType,System.Int32)
RemoteCertificateError(System.Object,System.String)
RemoteCertificateError(System.Int32,System.String)
RemoteCertDeclaredValid(System.Object)
RemoteCertDeclaredValid(System.Int32)
RemoteCertHasNoErrors(System.Object)
RemoteCertHasNoErrors(System.Int32)
RemoteCertUserDeclaredInvalid(System.Object)
RemoteCertUserDeclaredInvalid(System.Int32)
SentFrame(System.Net.Security.SslStream,System.ReadOnlySpan`1<System.Byte>)
SentFrame(System.String,System.String,System.Int32)
ReceivedFrame(System.Net.Security.SslStream,System.Net.Security.TlsFrameHelper/TlsFrameInfo)
ReceivedFrame(System.String,System.String,System.Int32)
CertificateFromCertContext(System.Net.Security.SslStream)
CertificateFromCertContext(System.Int32)
AdditionalCustomizedToString(System.Object,System.String&)
WriteEvent(System.Int32,System.String,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)