Skip to content

Commit 633e044

Browse files
authored
Enable CA1419 (SafeHandle public parameterless ctor) (#55460)
1 parent 375ca44 commit 633e044

File tree

47 files changed

+94
-25
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+94
-25
lines changed

eng/CodeAnalysis.ruleset

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
<Rule Id="CA1416" Action="Warning" /> <!-- Validate platform compatibility -->
6969
<Rule Id="CA1417" Action="Warning" /> <!-- Do not use 'OutAttribute' on string parameters for P/Invokes -->
7070
<Rule Id="CA1418" Action="Warning" /> <!-- Use valid platform string -->
71+
<Rule Id="CA1419" Action="Warning" /> <!-- Provide a public parameterless constructor for concrete types derived from 'System.Runtime.InteropServices.SafeHandle' -->
7172
<Rule Id="CA1501" Action="None" /> <!-- Avoid excessive inheritance -->
7273
<Rule Id="CA1502" Action="None" /> <!-- Avoid excessive complexity -->
7374
<Rule Id="CA1505" Action="None" /> <!-- Avoid unmaintainable code -->

src/libraries/Common/src/Interop/OSX/System.Security.Cryptography.Native.Apple/Interop.Keychain.macOS.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ internal sealed class SafeTemporaryKeychainHandle : SafeKeychainHandle
401401
private static readonly Dictionary<IntPtr, SafeTemporaryKeychainHandle> s_lookup =
402402
new Dictionary<IntPtr, SafeTemporaryKeychainHandle>();
403403

404-
internal SafeTemporaryKeychainHandle()
404+
public SafeTemporaryKeychainHandle()
405405
{
406406
}
407407

src/libraries/Common/src/Interop/Windows/HttpApi/Interop.HttpApi.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@ internal sealed class SafeLocalFreeChannelBinding : ChannelBinding
508508
{
509509
private int _size;
510510

511-
private SafeLocalFreeChannelBinding() { }
511+
public SafeLocalFreeChannelBinding() { }
512512

513513
public override int Size
514514
{

src/libraries/Common/src/Interop/Windows/SspiCli/SecuritySafeHandles.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public static int SetContextAttributes(
128128

129129
internal sealed class SafeFreeContextBuffer_SECURITY : SafeFreeContextBuffer
130130
{
131-
internal SafeFreeContextBuffer_SECURITY() : base() { }
131+
public SafeFreeContextBuffer_SECURITY() : base() { }
132132

133133
protected override bool ReleaseHandle()
134134
{

src/libraries/Common/src/Microsoft/Win32/SafeHandles/Asn1SafeHandles.Unix.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,15 @@ public override bool IsInvalid
6868

6969
internal sealed class SafeSharedAsn1IntegerHandle : SafeInteriorHandle
7070
{
71-
private SafeSharedAsn1IntegerHandle() :
71+
public SafeSharedAsn1IntegerHandle() :
7272
base(IntPtr.Zero, ownsHandle: true)
7373
{
7474
}
7575
}
7676

7777
internal sealed class SafeSharedAsn1OctetStringHandle : SafeInteriorHandle
7878
{
79-
private SafeSharedAsn1OctetStringHandle() :
79+
public SafeSharedAsn1OctetStringHandle() :
8080
base(IntPtr.Zero, ownsHandle: true)
8181
{
8282
}

src/libraries/Common/src/Microsoft/Win32/SafeHandles/GssSafeHandles.PlatformNotSupported.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ public override bool IsInvalid
1818
}
1919

2020
protected override bool ReleaseHandle() => throw new PlatformNotSupportedException();
21-
private SafeGssNameHandle()
21+
22+
public SafeGssNameHandle()
2223
: base(IntPtr.Zero, true)
2324
{
2425
}
@@ -27,7 +28,7 @@ private SafeGssNameHandle()
2728
[UnsupportedOSPlatform("tvos")]
2829
internal sealed class SafeGssCredHandle : SafeHandle
2930
{
30-
private SafeGssCredHandle()
31+
public SafeGssCredHandle()
3132
: base(IntPtr.Zero, true)
3233
{
3334
}
@@ -43,7 +44,7 @@ public override bool IsInvalid
4344
[UnsupportedOSPlatform("tvos")]
4445
internal sealed class SafeGssContextHandle : SafeHandle
4546
{
46-
private SafeGssContextHandle()
47+
public SafeGssContextHandle()
4748
: base(IntPtr.Zero, true)
4849
{
4950
}

src/libraries/Common/src/Microsoft/Win32/SafeHandles/SafeUnicodeStringHandle.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
using System;
55
using System.Runtime.InteropServices;
66

7+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
8+
79
namespace Microsoft.Win32.SafeHandles
810
{
911
/// <summary>

src/libraries/Common/src/System/Net/Security/SecurityContextTokenHandle.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ internal sealed class SecurityContextTokenHandle : CriticalHandleZeroOrMinusOneI
1616
#endif
1717
private int _disposed;
1818

19-
private SecurityContextTokenHandle() : base()
19+
public SecurityContextTokenHandle() : base()
2020
{
2121
}
2222

src/libraries/Common/src/System/Net/Security/Unix/SafeDeleteNegoContext.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
using System.Text;
88
using Microsoft.Win32.SafeHandles;
99

10+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
11+
1012
namespace System.Net.Security
1113
{
1214
internal sealed class SafeDeleteNegoContext : SafeDeleteContext

src/libraries/Common/src/System/Net/Security/Unix/SafeDeleteSslContext.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
using System.Security.Cryptography;
1212
using System.Security.Cryptography.X509Certificates;
1313

14+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
15+
1416
namespace System.Net.Security
1517
{
1618
internal sealed class SafeDeleteSslContext : SafeDeleteContext

src/libraries/Common/src/System/Net/Security/Unix/SafeFreeCertContext.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
using System.Security.Cryptography;
99
using System.Security.Cryptography.X509Certificates;
1010

11+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
12+
1113
namespace System.Net.Security
1214
{
1315
#if DEBUG

src/libraries/Common/src/System/Net/Security/Unix/SafeFreeNegoCredentials.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
using System.Text;
88
using Microsoft.Win32.SafeHandles;
99

10+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
11+
1012
namespace System.Net.Security
1113
{
1214
internal sealed class SafeFreeNegoCredentials : SafeFreeCredentials

src/libraries/Common/src/System/Net/Security/Unix/SafeFreeSslCredentials.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
using System.Security.Cryptography;
1111
using System.Security.Cryptography.X509Certificates;
1212

13+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
14+
1315
namespace System.Net.Security
1416
{
1517
internal sealed class SafeFreeSslCredentials : SafeFreeCredentials

src/libraries/System.Data.Odbc/src/System/Data/Odbc/OdbcConnectionHandle.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
using System.Runtime.CompilerServices;
77
using System.Runtime.ConstrainedExecution;
88

9+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
10+
911
namespace System.Data.Odbc
1012
{
1113
internal sealed class OdbcConnectionHandle : OdbcHandle

src/libraries/System.Data.Odbc/src/System/Data/Odbc/OdbcHandle.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
using System.Runtime.InteropServices;
88
using System.Text;
99

10+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
11+
1012
namespace System.Data.Odbc
1113
{
1214
internal abstract class OdbcHandle : SafeHandle

src/libraries/System.Data.Odbc/src/System/Data/Odbc/OdbcStatementHandle.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
using System.Data.Common;
55
using System.Runtime.InteropServices;
66

7+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
8+
79
namespace System.Data.Odbc
810
{
911
internal readonly struct SQLLEN

src/libraries/System.Data.Odbc/src/System/Data/Odbc/OdbcUtils.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
using System.Runtime.InteropServices;
77
using System.Text;
88

9+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
10+
911
namespace System.Data.Odbc
1012
{
1113
internal sealed class CNativeBuffer : System.Data.ProviderBase.DbBuffer

src/libraries/System.Data.OleDb/src/OleDbTransaction.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
using System.Runtime.CompilerServices;
88
using System.Runtime.InteropServices;
99

10+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
11+
1012
namespace System.Data.OleDb
1113
{
1214
public sealed class OleDbTransaction : DbTransaction

src/libraries/System.Data.OleDb/src/OleDbWrapper.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
using System.Runtime.CompilerServices;
88
using System.Runtime.InteropServices;
99

10+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
11+
1012
namespace System.Data.OleDb
1113
{
1214
// SafeHandle wrapper around 'DataLinks' object which pools the native OLE DB providers.
@@ -92,7 +94,7 @@ internal sealed class DataSourceWrapper : WrappedIUnknown
9294
// we expect to store IDBInitialize instance pointer in base.handle
9395

9496
// construct a DataSourceWrapper and used as a ref parameter to GetDataSource
95-
internal DataSourceWrapper() : base()
97+
public DataSourceWrapper() : base()
9698
{
9799
}
98100

@@ -229,7 +231,7 @@ internal sealed class SessionWrapper : WrappedIUnknown
229231
// since we maintain an AddRef on IDBCreateCommand it is safe to use the delegate without rechecking its function pointer
230232
private UnsafeNativeMethods.IDBCreateCommandCreateCommand? DangerousIDBCreateCommandCreateCommand;
231233

232-
internal SessionWrapper() : base()
234+
public SessionWrapper() : base()
233235
{
234236
}
235237

src/libraries/System.Data.OleDb/src/PropertyIDSet.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
using System.Data.ProviderBase;
66
using System.Runtime.InteropServices;
77

8+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
9+
810
namespace System.Data.OleDb
911
{
1012
internal sealed class PropertyIDSet : DbBuffer

src/libraries/System.Data.OleDb/src/PropertyInfoSet.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
using System.Runtime.CompilerServices;
88
using System.Runtime.InteropServices;
99

10+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
11+
1012
namespace System.Data.OleDb
1113
{
1214
internal sealed class OleDbPropertyInfo

src/libraries/System.Data.OleDb/src/RowBinding.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
using System.Runtime.CompilerServices;
77
using System.Runtime.InteropServices;
88

9+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
10+
911
namespace System.Data.OleDb
1012
{
1113
internal sealed class RowBinding : System.Data.ProviderBase.DbBuffer

src/libraries/System.Data.OleDb/src/SafeHandles.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
using System.Runtime.Versioning;
1010
using static System.Data.Common.UnsafeNativeMethods;
1111

12+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
13+
1214
namespace System.Data.OleDb
1315
{
1416
internal sealed class DualCoTaskMem : SafeHandle

src/libraries/System.Data.OleDb/src/System/Data/ProviderBase/DbConnectionPool.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ private sealed class PoolWaitHandles : DbBuffer
233233

234234
private readonly int _releaseFlags;
235235

236-
internal PoolWaitHandles() : base(3 * IntPtr.Size)
236+
public PoolWaitHandles() : base(3 * IntPtr.Size)
237237
{
238238
bool mustRelease1 = false, mustRelease2 = false, mustRelease3 = false;
239239

src/libraries/System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/AuthZSet.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -566,8 +566,9 @@ public override void Dispose()
566566
//
567567
private sealed class SafeMemoryPtr : SafeHandle
568568
{
569-
private SafeMemoryPtr() : base(IntPtr.Zero, true)
570-
{ }
569+
public SafeMemoryPtr() : base(IntPtr.Zero, true)
570+
{
571+
}
571572

572573
internal SafeMemoryPtr(IntPtr handle) : base(IntPtr.Zero, true)
573574
{

src/libraries/System.DirectoryServices.Protocols/src/System/DirectoryServices/Protocols/Interop/SafeHandles.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
using System.Runtime.InteropServices;
55
using Microsoft.Win32.SafeHandles;
66

7+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
8+
79
namespace System.DirectoryServices.Protocols
810
{
911
internal sealed class HGlobalMemHandle : SafeHandleZeroOrMinusOneIsInvalid

src/libraries/System.Drawing.Common/src/System/Drawing/Drawing2D/SafeCustomLineCapHandle.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ namespace System.Drawing.Drawing2D
1111
{
1212
internal sealed class SafeCustomLineCapHandle : SafeHandle
1313
{
14+
public SafeCustomLineCapHandle() : base(IntPtr.Zero, true)
15+
{
16+
}
17+
1418
// Create a SafeHandle, informing the base class
1519
// that this SafeHandle instance "owns" the handle,
1620
// and therefore SafeHandle should call

src/libraries/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpChannelBinding.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
using System.Runtime.InteropServices;
66
using System.Security.Authentication.ExtendedProtection;
77
using System.Text;
8-
98
using SafeWinHttpHandle = Interop.WinHttp.SafeWinHttpHandle;
109

10+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
11+
1112
namespace System.Net.Http
1213
{
1314
internal sealed class WinHttpChannelBinding : ChannelBinding

src/libraries/System.Net.HttpListener/src/System/Net/Windows/HttpServerSessionHandle.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
using Microsoft.Win32.SafeHandles;
55
using System.Threading;
66

7+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
8+
79
namespace System.Net
810
{
911
//

src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/Internal/MsQuicApi.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ internal unsafe sealed class MsQuicApi
1616
// This is workaround for a bug in ILTrimmer.
1717
// Without these DynamicDependency attributes, .ctor() will be removed from the safe handles.
1818
// Remove once fixed: https://github.com/mono/linker/issues/1660
19-
[DynamicDependency(DynamicallyAccessedMemberTypes.NonPublicConstructors, typeof(SafeMsQuicRegistrationHandle))]
20-
[DynamicDependency(DynamicallyAccessedMemberTypes.NonPublicConstructors, typeof(SafeMsQuicConfigurationHandle))]
21-
[DynamicDependency(DynamicallyAccessedMemberTypes.NonPublicConstructors, typeof(SafeMsQuicListenerHandle))]
22-
[DynamicDependency(DynamicallyAccessedMemberTypes.NonPublicConstructors, typeof(SafeMsQuicConnectionHandle))]
23-
[DynamicDependency(DynamicallyAccessedMemberTypes.NonPublicConstructors, typeof(SafeMsQuicStreamHandle))]
19+
[DynamicDependency(DynamicallyAccessedMemberTypes.PublicConstructors, typeof(SafeMsQuicRegistrationHandle))]
20+
[DynamicDependency(DynamicallyAccessedMemberTypes.PublicConstructors, typeof(SafeMsQuicConfigurationHandle))]
21+
[DynamicDependency(DynamicallyAccessedMemberTypes.PublicConstructors, typeof(SafeMsQuicListenerHandle))]
22+
[DynamicDependency(DynamicallyAccessedMemberTypes.PublicConstructors, typeof(SafeMsQuicConnectionHandle))]
23+
[DynamicDependency(DynamicallyAccessedMemberTypes.PublicConstructors, typeof(SafeMsQuicStreamHandle))]
2424
private MsQuicApi(NativeApi* vtable)
2525
{
2626
uint status;

src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/Interop/SafeMsQuicConfigurationHandle.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ internal sealed class SafeMsQuicConfigurationHandle : SafeHandle
2121

2222
public override bool IsInvalid => handle == IntPtr.Zero;
2323

24-
private SafeMsQuicConfigurationHandle()
24+
public SafeMsQuicConfigurationHandle()
2525
: base(IntPtr.Zero, ownsHandle: true)
2626
{ }
2727

src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/Interop/SafeMsQuicConnectionHandle.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ internal sealed class SafeMsQuicConnectionHandle : SafeHandle
99
{
1010
public override bool IsInvalid => handle == IntPtr.Zero;
1111

12-
private SafeMsQuicConnectionHandle()
12+
public SafeMsQuicConnectionHandle()
1313
: base(IntPtr.Zero, ownsHandle: true)
1414
{ }
1515

src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/Interop/SafeMsQuicListenerHandle.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ internal sealed class SafeMsQuicListenerHandle : SafeHandle
99
{
1010
public override bool IsInvalid => handle == IntPtr.Zero;
1111

12-
private SafeMsQuicListenerHandle()
12+
public SafeMsQuicListenerHandle()
1313
: base(IntPtr.Zero, ownsHandle: true)
1414
{ }
1515

src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/Interop/SafeMsQuicRegistrationHandle.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ internal sealed class SafeMsQuicRegistrationHandle : SafeHandle
99
{
1010
public override bool IsInvalid => handle == IntPtr.Zero;
1111

12-
private SafeMsQuicRegistrationHandle()
12+
public SafeMsQuicRegistrationHandle()
1313
: base(IntPtr.Zero, ownsHandle: true)
1414
{ }
1515

src/libraries/System.Net.Quic/src/System/Net/Quic/Implementations/MsQuic/Interop/SafeMsQuicStreamHandle.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ internal sealed class SafeMsQuicStreamHandle : SafeHandle
99
{
1010
public override bool IsInvalid => handle == IntPtr.Zero;
1111

12-
private SafeMsQuicStreamHandle()
12+
public SafeMsQuicStreamHandle()
1313
: base(IntPtr.Zero, ownsHandle: true)
1414
{ }
1515

src/libraries/System.Net.Security/src/System/Net/Security/Pal.Android/SafeDeleteSslContext.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
using PAL_KeyAlgorithm = Interop.AndroidCrypto.PAL_KeyAlgorithm;
1414
using PAL_SSLStreamStatus = Interop.AndroidCrypto.PAL_SSLStreamStatus;
1515

16+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
17+
1618
namespace System.Net
1719
{
1820
internal sealed class SafeDeleteSslContext : SafeDeleteContext

src/libraries/System.Net.Security/src/System/Net/Security/Pal.Managed/SafeChannelBindingHandle.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
using System.Security.Authentication.ExtendedProtection;
77
using System.Text;
88

9+
#pragma warning disable CA1419 // TODO https://github.com/dotnet/roslyn-analyzers/issues/5232: not intended for use with P/Invoke
10+
911
namespace System.Net.Security
1012
{
1113
internal sealed class SafeChannelBindingHandle : ChannelBinding

0 commit comments

Comments
 (0)