From bfbcb095b1957cebe50f0ab74bb9307d32cc8fd9 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Mon, 6 Sep 2021 20:06:33 +0200 Subject: [PATCH] Avoid S.S.Permissions dependency in S.S.Crypto.Xml Avoid the S.S.Permissions dependency by referencing the latest available System.Security.AccessControl package which contans the Evidence types in all tfms in the System.Security.Cryptography.Xml project. Add suppression file for Permissions --- eng/Versions.props | 2 +- .../System.Security.AccessControl.Evidence.cs | 48 ----------- .../ref/System.Security.AccessControl.cs | 41 +++++++++ .../ref/System.Security.AccessControl.csproj | 1 - .../System.Security.Cryptography.Xml.csproj | 4 +- .../System.Security.Cryptography.Xml.csproj | 4 +- .../System.Security.Permissions.Forwards.cs | 2 - .../ref/System.Security.Permissions.csproj | 1 - .../src/CompatibilitySuppressions.xml | 84 +++++++++++++++++++ .../src/System.Security.Permissions.csproj | 2 - 10 files changed, 130 insertions(+), 59 deletions(-) delete mode 100644 src/libraries/System.Security.AccessControl/ref/System.Security.AccessControl.Evidence.cs diff --git a/eng/Versions.props b/eng/Versions.props index 7fc2169c6419ea..010f1139124dec 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -103,7 +103,7 @@ 4.3.0 4.3.0 4.3.0 - 5.0.0 + 6.0.0-rc.2.21454.1 4.3.1 5.0.0 5.0.0 diff --git a/src/libraries/System.Security.AccessControl/ref/System.Security.AccessControl.Evidence.cs b/src/libraries/System.Security.AccessControl/ref/System.Security.AccessControl.Evidence.cs deleted file mode 100644 index 9c42db1a8f5189..00000000000000 --- a/src/libraries/System.Security.AccessControl/ref/System.Security.AccessControl.Evidence.cs +++ /dev/null @@ -1,48 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// ------------------------------------------------------------------------------ -// Changes to this file must follow the https://aka.ms/api-review process. -// ------------------------------------------------------------------------------ - -#nullable enable - -namespace System.Security.Policy -{ - public sealed partial class Evidence : System.Collections.ICollection, System.Collections.IEnumerable - { - public Evidence() { } - [System.ObsoleteAttribute("This constructor is obsolete. Use the constructor which accepts arrays of EvidenceBase instead.")] - public Evidence(object[] hostEvidence, object[] assemblyEvidence) { } - public Evidence(System.Security.Policy.Evidence evidence) { } - public Evidence(System.Security.Policy.EvidenceBase[] hostEvidence, System.Security.Policy.EvidenceBase[] assemblyEvidence) { } - [System.ObsoleteAttribute("Evidence should not be treated as an ICollection. Use GetHostEnumerator and GetAssemblyEnumerator to iterate over the evidence to collect a count.")] - public int Count { get { throw null; } } - public bool IsReadOnly { get { throw null; } } - public bool IsSynchronized { get { throw null; } } - public bool Locked { get { throw null; } set { } } - public object SyncRoot { get { throw null; } } - [System.ObsoleteAttribute("Evidence.AddAssembly has been deprecated. Use AddAssemblyEvidence instead.")] - public void AddAssembly(object id) { } - public void AddAssemblyEvidence(T evidence) where T : System.Security.Policy.EvidenceBase { } - [System.ObsoleteAttribute("Evidence.AddHost has been deprecated. Use AddHostEvidence instead.")] - public void AddHost(object id) { } - public void AddHostEvidence(T evidence) where T : System.Security.Policy.EvidenceBase { } - public void Clear() { } - public System.Security.Policy.Evidence? Clone() { throw null; } - [System.ObsoleteAttribute("Evidence should not be treated as an ICollection. Use the GetHostEnumerator and GetAssemblyEnumerator methods rather than using CopyTo.")] - public void CopyTo(System.Array array, int index) { } - public System.Collections.IEnumerator GetAssemblyEnumerator() { throw null; } - public T? GetAssemblyEvidence() where T : System.Security.Policy.EvidenceBase { throw null; } - [System.ObsoleteAttribute("GetEnumerator is obsolete. Use GetAssemblyEnumerator and GetHostEnumerator instead.")] - public System.Collections.IEnumerator GetEnumerator() { throw null; } - public System.Collections.IEnumerator GetHostEnumerator() { throw null; } - public T? GetHostEvidence() where T : System.Security.Policy.EvidenceBase { throw null; } - public void Merge(System.Security.Policy.Evidence evidence) { } - public void RemoveType(System.Type t) { } - } - public abstract partial class EvidenceBase - { - protected EvidenceBase() { } - public virtual System.Security.Policy.EvidenceBase? Clone() { throw null; } - } -} diff --git a/src/libraries/System.Security.AccessControl/ref/System.Security.AccessControl.cs b/src/libraries/System.Security.AccessControl/ref/System.Security.AccessControl.cs index b47ecfdc101652..54edec6fe4570a 100644 --- a/src/libraries/System.Security.AccessControl/ref/System.Security.AccessControl.cs +++ b/src/libraries/System.Security.AccessControl/ref/System.Security.AccessControl.cs @@ -530,3 +530,44 @@ public void SetAudit(System.Security.AccessControl.AuditFlags auditFlags, System public void SetAudit(System.Security.Principal.SecurityIdentifier sid, System.Security.AccessControl.ObjectAuditRule rule) { } } } + +namespace System.Security.Policy +{ + public sealed partial class Evidence : System.Collections.ICollection, System.Collections.IEnumerable + { + public Evidence() { } + [System.ObsoleteAttribute("This constructor is obsolete. Use the constructor which accepts arrays of EvidenceBase instead.")] + public Evidence(object[] hostEvidence, object[] assemblyEvidence) { } + public Evidence(System.Security.Policy.Evidence evidence) { } + public Evidence(System.Security.Policy.EvidenceBase[] hostEvidence, System.Security.Policy.EvidenceBase[] assemblyEvidence) { } + [System.ObsoleteAttribute("Evidence should not be treated as an ICollection. Use GetHostEnumerator and GetAssemblyEnumerator to iterate over the evidence to collect a count.")] + public int Count { get { throw null; } } + public bool IsReadOnly { get { throw null; } } + public bool IsSynchronized { get { throw null; } } + public bool Locked { get { throw null; } set { } } + public object SyncRoot { get { throw null; } } + [System.ObsoleteAttribute("Evidence.AddAssembly has been deprecated. Use AddAssemblyEvidence instead.")] + public void AddAssembly(object id) { } + public void AddAssemblyEvidence(T evidence) where T : System.Security.Policy.EvidenceBase { } + [System.ObsoleteAttribute("Evidence.AddHost has been deprecated. Use AddHostEvidence instead.")] + public void AddHost(object id) { } + public void AddHostEvidence(T evidence) where T : System.Security.Policy.EvidenceBase { } + public void Clear() { } + public System.Security.Policy.Evidence? Clone() { throw null; } + [System.ObsoleteAttribute("Evidence should not be treated as an ICollection. Use the GetHostEnumerator and GetAssemblyEnumerator methods rather than using CopyTo.")] + public void CopyTo(System.Array array, int index) { } + public System.Collections.IEnumerator GetAssemblyEnumerator() { throw null; } + public T? GetAssemblyEvidence() where T : System.Security.Policy.EvidenceBase { throw null; } + [System.ObsoleteAttribute("GetEnumerator is obsolete. Use GetAssemblyEnumerator and GetHostEnumerator instead.")] + public System.Collections.IEnumerator GetEnumerator() { throw null; } + public System.Collections.IEnumerator GetHostEnumerator() { throw null; } + public T? GetHostEvidence() where T : System.Security.Policy.EvidenceBase { throw null; } + public void Merge(System.Security.Policy.Evidence evidence) { } + public void RemoveType(System.Type t) { } + } + public abstract partial class EvidenceBase + { + protected EvidenceBase() { } + public virtual System.Security.Policy.EvidenceBase? Clone() { throw null; } + } +} diff --git a/src/libraries/System.Security.AccessControl/ref/System.Security.AccessControl.csproj b/src/libraries/System.Security.AccessControl/ref/System.Security.AccessControl.csproj index 348ff2fe1971ed..391997c918a936 100644 --- a/src/libraries/System.Security.AccessControl/ref/System.Security.AccessControl.csproj +++ b/src/libraries/System.Security.AccessControl/ref/System.Security.AccessControl.csproj @@ -5,7 +5,6 @@ - diff --git a/src/libraries/System.Security.Cryptography.Xml/ref/System.Security.Cryptography.Xml.csproj b/src/libraries/System.Security.Cryptography.Xml/ref/System.Security.Cryptography.Xml.csproj index dca38dde22bf8b..d6f285edd38c72 100644 --- a/src/libraries/System.Security.Cryptography.Xml/ref/System.Security.Cryptography.Xml.csproj +++ b/src/libraries/System.Security.Cryptography.Xml/ref/System.Security.Cryptography.Xml.csproj @@ -13,7 +13,9 @@ - + + + diff --git a/src/libraries/System.Security.Cryptography.Xml/src/System.Security.Cryptography.Xml.csproj b/src/libraries/System.Security.Cryptography.Xml/src/System.Security.Cryptography.Xml.csproj index 2417c752edc4b7..3ffca2e0cc7569 100644 --- a/src/libraries/System.Security.Cryptography.Xml/src/System.Security.Cryptography.Xml.csproj +++ b/src/libraries/System.Security.Cryptography.Xml/src/System.Security.Cryptography.Xml.csproj @@ -130,9 +130,6 @@ System.Security.Cryptography.Xml.XmlLicenseTransform - - - @@ -154,6 +151,7 @@ System.Security.Cryptography.Xml.XmlLicenseTransform + diff --git a/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.Forwards.cs b/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.Forwards.cs index ef7cb3ac3f7348..4d9a824761f533 100644 --- a/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.Forwards.cs +++ b/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.Forwards.cs @@ -13,10 +13,8 @@ [assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Security.Permissions.SecurityAttribute))] [assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Security.Permissions.SecurityPermissionAttribute))] [assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Security.Permissions.SecurityPermissionFlag))] -#if NET6_0_OR_GREATER [assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Security.Policy.Evidence))] [assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Security.Policy.EvidenceBase))] -#endif #if NETCOREAPP [assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Security.IStackWalk))] [assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Security.PermissionSet))] diff --git a/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.csproj b/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.csproj index 8c77b3223cb0c7..1bfcb7285abf8a 100644 --- a/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.csproj +++ b/src/libraries/System.Security.Permissions/ref/System.Security.Permissions.csproj @@ -6,7 +6,6 @@ - diff --git a/src/libraries/System.Security.Permissions/src/CompatibilitySuppressions.xml b/src/libraries/System.Security.Permissions/src/CompatibilitySuppressions.xml index 7f4c719e0a9bdf..defbb6beb0892a 100644 --- a/src/libraries/System.Security.Permissions/src/CompatibilitySuppressions.xml +++ b/src/libraries/System.Security.Permissions/src/CompatibilitySuppressions.xml @@ -40,4 +40,88 @@ lib/netstandard2.0/System.Security.Permissions.dll true + + CP0001 + T:System.Security.Policy.Evidence + ref/net5.0/System.Security.Permissions.dll + lib/net5.0/System.Security.Permissions.dll + true + + + CP0001 + T:System.Security.Policy.EvidenceBase + ref/net5.0/System.Security.Permissions.dll + lib/net5.0/System.Security.Permissions.dll + true + + + CP0001 + T:System.Security.Policy.Evidence + ref/netcoreapp3.0/System.Security.Permissions.dll + lib/netstandard2.0/System.Security.Permissions.dll + true + + + CP0001 + T:System.Security.Policy.EvidenceBase + ref/netcoreapp3.0/System.Security.Permissions.dll + lib/netstandard2.0/System.Security.Permissions.dll + true + + + CP0001 + T:System.Security.Policy.Evidence + ref/netstandard2.0/System.Security.Permissions.dll + lib/netstandard2.0/System.Security.Permissions.dll + true + + + CP0001 + T:System.Security.Policy.EvidenceBase + ref/netstandard2.0/System.Security.Permissions.dll + lib/netstandard2.0/System.Security.Permissions.dll + true + + + CP0001 + T:System.Security.Policy.Evidence + lib/net5.0/System.Security.Permissions.dll + lib/net5.0/System.Security.Permissions.dll + true + + + CP0001 + T:System.Security.Policy.EvidenceBase + lib/net5.0/System.Security.Permissions.dll + lib/net5.0/System.Security.Permissions.dll + true + + + CP0001 + T:System.Security.Policy.Evidence + lib/netcoreapp3.0/System.Security.Permissions.dll + lib/netstandard2.0/System.Security.Permissions.dll + true + + + CP0001 + T:System.Security.Policy.EvidenceBase + lib/netcoreapp3.0/System.Security.Permissions.dll + lib/netstandard2.0/System.Security.Permissions.dll + true + + + CP0001 + T:System.Security.Policy.Evidence + lib/netstandard2.0/System.Security.Permissions.dll + lib/netstandard2.0/System.Security.Permissions.dll + true + + + CP0001 + T:System.Security.Policy.EvidenceBase + lib/netstandard2.0/System.Security.Permissions.dll + lib/netstandard2.0/System.Security.Permissions.dll + true + \ No newline at end of file diff --git a/src/libraries/System.Security.Permissions/src/System.Security.Permissions.csproj b/src/libraries/System.Security.Permissions/src/System.Security.Permissions.csproj index 19be1eaf34dd8d..a2e84882939d59 100644 --- a/src/libraries/System.Security.Permissions/src/System.Security.Permissions.csproj +++ b/src/libraries/System.Security.Permissions/src/System.Security.Permissions.csproj @@ -132,8 +132,6 @@ - -