Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2012-07-27 15:21:17 +0400
committerMarek Safar <marek.safar@gmail.com>2012-07-27 15:25:43 +0400
commitc45375b4c85fcc2e775aaadd9f16759b8259eb98 (patch)
tree617ad26d93599f025fc4352ab57b93d12e2d44d1
parent241c64c12cdb36d46fad84a39047900cf6cd924f (diff)
Fix types signature
-rw-r--r--mcs/class/corlib/System.Runtime.Hosting/ActivationArguments.cs7
-rw-r--r--mcs/class/corlib/System.Security.AccessControl/ObjectSecurity.cs6
-rw-r--r--mcs/class/corlib/System.Security.AccessControl/ObjectSecurity_T.cs22
-rw-r--r--mcs/class/corlib/System.Security.Cryptography/CryptoStream.cs5
-rw-r--r--mcs/class/corlib/System.Security.Cryptography/KeyedHashAlgorithm.cs5
-rw-r--r--mcs/class/corlib/System.Security.Cryptography/MACTripleDES.cs5
-rw-r--r--mcs/class/corlib/System.Security.Cryptography/PasswordDeriveBytes.cs9
-rw-r--r--mcs/class/corlib/System.Security.Cryptography/RIPEMD160Managed.cs6
-rw-r--r--mcs/class/corlib/System.Security.Cryptography/SymmetricAlgorithm.cs11
-rw-r--r--mcs/class/corlib/System.Security.Permissions/ReflectionPermissionAttribute.cs2
-rw-r--r--mcs/class/corlib/System.Security.Policy/ApplicationDirectory.cs6
-rw-r--r--mcs/class/corlib/System.Security.Policy/ApplicationTrust.cs6
-rw-r--r--mcs/class/corlib/System.Security.Policy/Evidence.cs31
-rw-r--r--mcs/class/corlib/System.Security.Policy/EvidenceBase.cs47
-rw-r--r--mcs/class/corlib/System.Security.Policy/Gac.cs6
-rw-r--r--mcs/class/corlib/System.Security.Policy/Hash.cs6
-rw-r--r--mcs/class/corlib/System.Security.Policy/PermissionRequestEvidence.cs6
-rw-r--r--mcs/class/corlib/System.Security.Policy/Publisher.cs6
-rw-r--r--mcs/class/corlib/System.Security.Policy/Site.cs6
-rw-r--r--mcs/class/corlib/System.Security.Policy/StrongName.cs6
-rw-r--r--mcs/class/corlib/System.Security.Policy/Url.cs6
-rw-r--r--mcs/class/corlib/System.Security.Policy/Zone.cs6
-rw-r--r--mcs/class/corlib/System.Security/SecureString.cs17
-rw-r--r--mcs/class/corlib/System.Text/Encoding.cs2
-rw-r--r--mcs/class/corlib/corlib.dll.sources1
25 files changed, 154 insertions, 82 deletions
diff --git a/mcs/class/corlib/System.Runtime.Hosting/ActivationArguments.cs b/mcs/class/corlib/System.Runtime.Hosting/ActivationArguments.cs
index 0911f0ef8cb..6c84da5da5e 100644
--- a/mcs/class/corlib/System.Runtime.Hosting/ActivationArguments.cs
+++ b/mcs/class/corlib/System.Runtime.Hosting/ActivationArguments.cs
@@ -27,12 +27,17 @@
//
using System.Runtime.InteropServices;
+using System.Security.Policy;
namespace System.Runtime.Hosting {
[Serializable]
[ComVisible (true)]
- public sealed class ActivationArguments {
+ public sealed class ActivationArguments
+#if NET_4_0
+ : EvidenceBase
+#endif
+ {
private ActivationContext _context;
private ApplicationIdentity _identity;
diff --git a/mcs/class/corlib/System.Security.AccessControl/ObjectSecurity.cs b/mcs/class/corlib/System.Security.AccessControl/ObjectSecurity.cs
index ea0c2301f60..a875b7864ae 100644
--- a/mcs/class/corlib/System.Security.AccessControl/ObjectSecurity.cs
+++ b/mcs/class/corlib/System.Security.AccessControl/ObjectSecurity.cs
@@ -33,6 +33,9 @@ using System.Collections.Generic;
using System.Security.Principal;
using System.Runtime.InteropServices;
using System.Threading;
+#if NET_4_0
+using System.Runtime.ExceptionServices;
+#endif
namespace System.Security.AccessControl
{
@@ -349,6 +352,9 @@ namespace System.Security.AccessControl
}
[MonoTODO]
+#if NET_4_0
+ [HandleProcessCorruptedStateExceptions]
+#endif
protected virtual void Persist (bool enableOwnershipPrivilege, string name, AccessControlSections includeSections)
{
throw new NotImplementedException ();
diff --git a/mcs/class/corlib/System.Security.AccessControl/ObjectSecurity_T.cs b/mcs/class/corlib/System.Security.AccessControl/ObjectSecurity_T.cs
index 5977c7066df..8d930093fde 100644
--- a/mcs/class/corlib/System.Security.AccessControl/ObjectSecurity_T.cs
+++ b/mcs/class/corlib/System.Security.AccessControl/ObjectSecurity_T.cs
@@ -105,32 +105,32 @@ namespace System.Security.AccessControl
return new AccessRule<T> (identityReference, accessMask, isInherited, inheritanceFlags, propagationFlags, type);
}
- public void AddAccessRule (AccessRule<T> rule)
+ public virtual void AddAccessRule (AccessRule<T> rule)
{
AddAccessRule ((AccessRule)rule);
}
- public bool RemoveAccessRule (AccessRule<T> rule)
+ public virtual bool RemoveAccessRule (AccessRule<T> rule)
{
return RemoveAccessRule ((AccessRule)rule);
}
- public void RemoveAccessRuleAll (AccessRule<T> rule)
+ public virtual void RemoveAccessRuleAll (AccessRule<T> rule)
{
RemoveAccessRuleAll ((AccessRule)rule);
}
- public void RemoveAccessRuleSpecific (AccessRule<T> rule)
+ public virtual void RemoveAccessRuleSpecific (AccessRule<T> rule)
{
RemoveAccessRuleSpecific ((AccessRule)rule);
}
- public void ResetAccessRule (AccessRule<T> rule)
+ public virtual void ResetAccessRule (AccessRule<T> rule)
{
ResetAccessRule ((AccessRule)rule);
}
- public void SetAccessRule (AccessRule<T> rule)
+ public virtual void SetAccessRule (AccessRule<T> rule)
{
SetAccessRule ((AccessRule)rule);
}
@@ -142,27 +142,27 @@ namespace System.Security.AccessControl
return new AuditRule<T> (identityReference, accessMask, isInherited, inheritanceFlags, propagationFlags, flags);
}
- public void AddAuditRule (AuditRule<T> rule)
+ public virtual void AddAuditRule (AuditRule<T> rule)
{
AddAuditRule ((AuditRule)rule);
}
- public bool RemoveAuditRule (AuditRule<T> rule)
+ public virtual bool RemoveAuditRule (AuditRule<T> rule)
{
return RemoveAuditRule((AuditRule)rule);
}
- public void RemoveAuditRuleAll (AuditRule<T> rule)
+ public virtual void RemoveAuditRuleAll (AuditRule<T> rule)
{
RemoveAuditRuleAll((AuditRule)rule);
}
- public void RemoveAuditRuleSpecific (AuditRule<T> rule)
+ public virtual void RemoveAuditRuleSpecific (AuditRule<T> rule)
{
RemoveAuditRuleSpecific((AuditRule)rule);
}
- public void SetAuditRule (AuditRule<T> rule)
+ public virtual void SetAuditRule (AuditRule<T> rule)
{
SetAuditRule((AuditRule)rule);
}
diff --git a/mcs/class/corlib/System.Security.Cryptography/CryptoStream.cs b/mcs/class/corlib/System.Security.Cryptography/CryptoStream.cs
index e749a7cd719..0a57ad272e5 100644
--- a/mcs/class/corlib/System.Security.Cryptography/CryptoStream.cs
+++ b/mcs/class/corlib/System.Security.Cryptography/CryptoStream.cs
@@ -79,11 +79,6 @@ namespace System.Security.Cryptography {
}
}
- ~CryptoStream ()
- {
- Dispose (false);
- }
-
public override bool CanRead {
get { return (_mode == CryptoStreamMode.Read); }
}
diff --git a/mcs/class/corlib/System.Security.Cryptography/KeyedHashAlgorithm.cs b/mcs/class/corlib/System.Security.Cryptography/KeyedHashAlgorithm.cs
index d8586526b87..616a8131654 100644
--- a/mcs/class/corlib/System.Security.Cryptography/KeyedHashAlgorithm.cs
+++ b/mcs/class/corlib/System.Security.Cryptography/KeyedHashAlgorithm.cs
@@ -42,11 +42,6 @@ public abstract class KeyedHashAlgorithm : HashAlgorithm {
// create a random 64 bits key
}
- ~KeyedHashAlgorithm ()
- {
- Dispose (false);
- }
-
public virtual byte[] Key {
get {
return (byte[]) KeyValue.Clone ();
diff --git a/mcs/class/corlib/System.Security.Cryptography/MACTripleDES.cs b/mcs/class/corlib/System.Security.Cryptography/MACTripleDES.cs
index 89089707fdf..393b872bc7d 100644
--- a/mcs/class/corlib/System.Security.Cryptography/MACTripleDES.cs
+++ b/mcs/class/corlib/System.Security.Cryptography/MACTripleDES.cs
@@ -88,11 +88,6 @@ namespace System.Security.Cryptography {
mac = new MACAlgorithm (tdes);
m_disposed = false;
}
-
- ~MACTripleDES ()
- {
- Dispose (false);
- }
[ComVisible (false)]
public PaddingMode Padding {
diff --git a/mcs/class/corlib/System.Security.Cryptography/PasswordDeriveBytes.cs b/mcs/class/corlib/System.Security.Cryptography/PasswordDeriveBytes.cs
index a8e76b48e01..80a1dbeead1 100644
--- a/mcs/class/corlib/System.Security.Cryptography/PasswordDeriveBytes.cs
+++ b/mcs/class/corlib/System.Security.Cryptography/PasswordDeriveBytes.cs
@@ -110,15 +110,9 @@ public class PasswordDeriveBytes : DeriveBytes {
}
}
- ~PasswordDeriveBytes ()
- {
#if NET_4_0
- Dispose (false);
- }
-
protected override void Dispose (bool disposing)
{
-#endif
// zeroize buffer
if (initial != null) {
Array.Clear (initial, 0, initial.Length);
@@ -129,10 +123,9 @@ public class PasswordDeriveBytes : DeriveBytes {
Array.Clear (password, 0, password.Length);
password = null;
}
-#if NET_4_0
base.Dispose (disposing);
-#endif
}
+#endif
private void Prepare (string strPassword, byte[] rgbSalt, string strHashName, int iterations)
{
diff --git a/mcs/class/corlib/System.Security.Cryptography/RIPEMD160Managed.cs b/mcs/class/corlib/System.Security.Cryptography/RIPEMD160Managed.cs
index 634d9accbef..2383b261213 100644
--- a/mcs/class/corlib/System.Security.Cryptography/RIPEMD160Managed.cs
+++ b/mcs/class/corlib/System.Security.Cryptography/RIPEMD160Managed.cs
@@ -120,12 +120,6 @@ namespace System.Security.Cryptography {
}
return hash;
}
- /// <summary>
- /// Finalizes the RIPEMD160Managed.
- /// </summary>
- ~RIPEMD160Managed() {
- Dispose(false);
- }
/// <summary>
/// Processes one block of data.
diff --git a/mcs/class/corlib/System.Security.Cryptography/SymmetricAlgorithm.cs b/mcs/class/corlib/System.Security.Cryptography/SymmetricAlgorithm.cs
index f915376048f..1a331415c2f 100644
--- a/mcs/class/corlib/System.Security.Cryptography/SymmetricAlgorithm.cs
+++ b/mcs/class/corlib/System.Security.Cryptography/SymmetricAlgorithm.cs
@@ -58,19 +58,8 @@ namespace System.Security.Cryptography {
{
ModeValue = CipherMode.CBC;
PaddingValue = PaddingMode.PKCS7;
- m_disposed = false;
}
-#if MOONLIGHT
- // No Finalizer or IDisposable.Dispose in Silverlight 2.0
- // Documentation makes it "clear" that Clear MUST BE CALLED to zero out sensitive information
-#else
- ~SymmetricAlgorithm ()
- {
- Dispose (false);
- }
-#endif
-
#if NET_4_0
public void Dispose ()
#else
diff --git a/mcs/class/corlib/System.Security.Permissions/ReflectionPermissionAttribute.cs b/mcs/class/corlib/System.Security.Permissions/ReflectionPermissionAttribute.cs
index 68d85e81064..849a0865b55 100644
--- a/mcs/class/corlib/System.Security.Permissions/ReflectionPermissionAttribute.cs
+++ b/mcs/class/corlib/System.Security.Permissions/ReflectionPermissionAttribute.cs
@@ -73,7 +73,9 @@ namespace System.Security.Permissions {
}
}
+#if NET_4_0
[Obsolete]
+#endif
public bool ReflectionEmit
{
get { return reflectionEmit; }
diff --git a/mcs/class/corlib/System.Security.Policy/ApplicationDirectory.cs b/mcs/class/corlib/System.Security.Policy/ApplicationDirectory.cs
index 82215f60b77..55a8e7f1d35 100644
--- a/mcs/class/corlib/System.Security.Policy/ApplicationDirectory.cs
+++ b/mcs/class/corlib/System.Security.Policy/ApplicationDirectory.cs
@@ -39,7 +39,11 @@ namespace System.Security.Policy {
[Serializable]
[ComVisible (true)]
- public sealed class ApplicationDirectory : IBuiltInEvidence {
+ public sealed class ApplicationDirectory :
+#if NET_4_0
+ EvidenceBase,
+#endif
+ IBuiltInEvidence {
private string directory;
diff --git a/mcs/class/corlib/System.Security.Policy/ApplicationTrust.cs b/mcs/class/corlib/System.Security.Policy/ApplicationTrust.cs
index 7fe57c08bc8..a73f5daabc1 100644
--- a/mcs/class/corlib/System.Security.Policy/ApplicationTrust.cs
+++ b/mcs/class/corlib/System.Security.Policy/ApplicationTrust.cs
@@ -39,7 +39,11 @@ namespace System.Security.Policy
{
[Serializable]
[ComVisible (true)]
- public sealed class ApplicationTrust : ISecurityEncodable {
+ public sealed class ApplicationTrust :
+#if NET_4_0
+ EvidenceBase,
+#endif
+ ISecurityEncodable {
private ApplicationIdentity _appid;
private PolicyStatement _defaultPolicy;
diff --git a/mcs/class/corlib/System.Security.Policy/Evidence.cs b/mcs/class/corlib/System.Security.Policy/Evidence.cs
index 5d932f5259d..e4f71881c3e 100644
--- a/mcs/class/corlib/System.Security.Policy/Evidence.cs
+++ b/mcs/class/corlib/System.Security.Policy/Evidence.cs
@@ -53,7 +53,6 @@ namespace System.Security.Policy {
private bool _locked;
private ArrayList hostEvidenceList;
private ArrayList assemblyEvidenceList;
- private int _hashCode;
public Evidence ()
{
@@ -140,7 +139,6 @@ namespace System.Security.Policy {
public void AddAssembly (object id)
{
AssemblyEvidenceList.Add (id);
- _hashCode = 0;
}
#if NET_4_0
@@ -152,7 +150,6 @@ namespace System.Security.Policy {
new SecurityPermission (SecurityPermissionFlag.ControlEvidence).Demand ();
}
HostEvidenceList.Add (id);
- _hashCode = 0;
}
[ComVisible (false)]
@@ -162,7 +159,6 @@ namespace System.Security.Policy {
hostEvidenceList.Clear ();
if (assemblyEvidenceList != null)
assemblyEvidenceList.Clear ();
- _hashCode = 0;
}
#if NET_4_0
@@ -180,6 +176,7 @@ namespace System.Security.Policy {
assemblyEvidenceList.CopyTo (array, index + hc);
}
+#if !NET_4_0
[ComVisible (false)]
public override bool Equals (object obj)
{
@@ -219,6 +216,7 @@ namespace System.Security.Policy {
return true;
}
+#endif
#if NET_4_0
[Obsolete]
@@ -239,23 +237,23 @@ namespace System.Security.Policy {
return AssemblyEvidenceList.GetEnumerator ();
}
+#if !NET_4_0
[ComVisible (false)]
public override int GetHashCode ()
{
- // kind of long so we cache it
- if (_hashCode == 0) {
- if (hostEvidenceList != null) {
- for (int i = 0; i < hostEvidenceList.Count; i++)
- _hashCode ^= hostEvidenceList [i].GetHashCode ();
- }
- if (assemblyEvidenceList != null) {
- for (int i = 0; i < assemblyEvidenceList.Count; i++)
- _hashCode ^= assemblyEvidenceList [i].GetHashCode ();
- }
+ int _hashCode = 0;
+ if (hostEvidenceList != null) {
+ for (int i = 0; i < hostEvidenceList.Count; i++)
+ _hashCode ^= hostEvidenceList [i].GetHashCode ();
}
+ if (assemblyEvidenceList != null) {
+ for (int i = 0; i < assemblyEvidenceList.Count; i++)
+ _hashCode ^= assemblyEvidenceList [i].GetHashCode ();
+ }
+
return _hashCode;
}
-
+#endif
public IEnumerator GetHostEnumerator ()
{
return HostEvidenceList.GetEnumerator ();
@@ -272,7 +270,6 @@ namespace System.Security.Policy {
foreach (object o in evidence.assemblyEvidenceList)
AddAssembly (o);
}
- _hashCode = 0;
}
}
@@ -282,13 +279,11 @@ namespace System.Security.Policy {
for (int i = hostEvidenceList.Count; i >= 0; i--) {
if (hostEvidenceList.GetType () == t) {
hostEvidenceList.RemoveAt (i);
- _hashCode = 0;
}
}
for (int i = assemblyEvidenceList.Count; i >= 0; i--) {
if (assemblyEvidenceList.GetType () == t) {
assemblyEvidenceList.RemoveAt (i);
- _hashCode = 0;
}
}
}
diff --git a/mcs/class/corlib/System.Security.Policy/EvidenceBase.cs b/mcs/class/corlib/System.Security.Policy/EvidenceBase.cs
new file mode 100644
index 00000000000..806d9717385
--- /dev/null
+++ b/mcs/class/corlib/System.Security.Policy/EvidenceBase.cs
@@ -0,0 +1,47 @@
+//
+// EvidenceBase.cs
+//
+// Authors:
+// Marek Safar <marek.safar@gmail.com>
+//
+// Copyright (C) 2012 Xamarin Inc (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+#if NET_4_0
+
+using System.Security.Permissions;
+
+namespace System.Security.Policy
+{
+ [Serializable]
+ [PermissionSetAttribute (SecurityAction.InheritanceDemand, Unrestricted = true)]
+ public abstract class EvidenceBase
+ {
+ [SecurityPermissionAttribute (SecurityAction.Assert, SerializationFormatter = true)]
+ public virtual EvidenceBase Clone ()
+ {
+ throw new NotImplementedException ();
+ }
+ }
+}
+
+#endif \ No newline at end of file
diff --git a/mcs/class/corlib/System.Security.Policy/Gac.cs b/mcs/class/corlib/System.Security.Policy/Gac.cs
index bd638ac8e5c..d5cae7f5aa9 100644
--- a/mcs/class/corlib/System.Security.Policy/Gac.cs
+++ b/mcs/class/corlib/System.Security.Policy/Gac.cs
@@ -34,7 +34,11 @@ namespace System.Security.Policy {
[Serializable]
[ComVisible (true)]
- public sealed class GacInstalled : IIdentityPermissionFactory, IBuiltInEvidence {
+ public sealed class GacInstalled :
+#if NET_4_0
+ EvidenceBase,
+#endif
+ IIdentityPermissionFactory, IBuiltInEvidence {
public GacInstalled ()
{
diff --git a/mcs/class/corlib/System.Security.Policy/Hash.cs b/mcs/class/corlib/System.Security.Policy/Hash.cs
index 7287b97f31a..b135cca778d 100644
--- a/mcs/class/corlib/System.Security.Policy/Hash.cs
+++ b/mcs/class/corlib/System.Security.Policy/Hash.cs
@@ -43,7 +43,11 @@ namespace System.Security.Policy {
[Serializable]
[ComVisible (true)]
-public sealed class Hash : ISerializable, IBuiltInEvidence {
+public sealed class Hash :
+#if NET_4_0
+ EvidenceBase,
+#endif
+ ISerializable, IBuiltInEvidence {
private Assembly assembly;
private byte[] data;
diff --git a/mcs/class/corlib/System.Security.Policy/PermissionRequestEvidence.cs b/mcs/class/corlib/System.Security.Policy/PermissionRequestEvidence.cs
index 3c61240fc30..484bfd394b9 100644
--- a/mcs/class/corlib/System.Security.Policy/PermissionRequestEvidence.cs
+++ b/mcs/class/corlib/System.Security.Policy/PermissionRequestEvidence.cs
@@ -34,7 +34,11 @@ namespace System.Security.Policy {
[Serializable]
[ComVisible (true)]
- public sealed class PermissionRequestEvidence : IBuiltInEvidence {
+ public sealed class PermissionRequestEvidence :
+#if NET_4_0
+ EvidenceBase,
+#endif
+ IBuiltInEvidence {
private PermissionSet requested, optional, denied;
diff --git a/mcs/class/corlib/System.Security.Policy/Publisher.cs b/mcs/class/corlib/System.Security.Policy/Publisher.cs
index 59356a8f2a4..d473e98d59a 100644
--- a/mcs/class/corlib/System.Security.Policy/Publisher.cs
+++ b/mcs/class/corlib/System.Security.Policy/Publisher.cs
@@ -35,7 +35,11 @@ namespace System.Security.Policy {
[Serializable]
[ComVisible (true)]
- public sealed class Publisher : IIdentityPermissionFactory, IBuiltInEvidence {
+ public sealed class Publisher :
+#if NET_4_0
+ EvidenceBase,
+#endif
+ IIdentityPermissionFactory, IBuiltInEvidence {
private X509Certificate m_cert;
diff --git a/mcs/class/corlib/System.Security.Policy/Site.cs b/mcs/class/corlib/System.Security.Policy/Site.cs
index ba5a424329b..6cef12ef808 100644
--- a/mcs/class/corlib/System.Security.Policy/Site.cs
+++ b/mcs/class/corlib/System.Security.Policy/Site.cs
@@ -39,7 +39,11 @@ namespace System.Security.Policy {
[Serializable]
[ComVisible (true)]
- public sealed class Site: IIdentityPermissionFactory, IBuiltInEvidence {
+ public sealed class Site:
+#if NET_4_0
+ EvidenceBase,
+#endif
+ IIdentityPermissionFactory, IBuiltInEvidence {
internal string origin_site;
diff --git a/mcs/class/corlib/System.Security.Policy/StrongName.cs b/mcs/class/corlib/System.Security.Policy/StrongName.cs
index 70013a6a861..940e5c3f04d 100644
--- a/mcs/class/corlib/System.Security.Policy/StrongName.cs
+++ b/mcs/class/corlib/System.Security.Policy/StrongName.cs
@@ -34,7 +34,11 @@ namespace System.Security.Policy {
[Serializable]
[ComVisible (true)]
-public sealed class StrongName : IIdentityPermissionFactory, IBuiltInEvidence {
+public sealed class StrongName :
+#if NET_4_0
+ EvidenceBase,
+#endif
+ IIdentityPermissionFactory, IBuiltInEvidence {
private StrongNamePublicKeyBlob publickey;
private string name;
diff --git a/mcs/class/corlib/System.Security.Policy/Url.cs b/mcs/class/corlib/System.Security.Policy/Url.cs
index 5ac53d15dbf..2f421b635cd 100644
--- a/mcs/class/corlib/System.Security.Policy/Url.cs
+++ b/mcs/class/corlib/System.Security.Policy/Url.cs
@@ -39,7 +39,11 @@ namespace System.Security.Policy {
[Serializable]
[ComVisible (true)]
- public sealed class Url: IIdentityPermissionFactory, IBuiltInEvidence {
+ public sealed class Url :
+#if NET_4_0
+ EvidenceBase,
+#endif
+ IIdentityPermissionFactory, IBuiltInEvidence {
private string origin_url;
diff --git a/mcs/class/corlib/System.Security.Policy/Zone.cs b/mcs/class/corlib/System.Security.Policy/Zone.cs
index 6b40975ad0e..1ea46bef327 100644
--- a/mcs/class/corlib/System.Security.Policy/Zone.cs
+++ b/mcs/class/corlib/System.Security.Policy/Zone.cs
@@ -41,7 +41,11 @@ namespace System.Security.Policy {
[Serializable]
[ComVisible (true)]
- public sealed class Zone : IIdentityPermissionFactory, IBuiltInEvidence {
+ public sealed class Zone :
+#if NET_4_0
+ EvidenceBase,
+#endif
+ IIdentityPermissionFactory, IBuiltInEvidence {
private SecurityZone zone;
diff --git a/mcs/class/corlib/System.Security/SecureString.cs b/mcs/class/corlib/System.Security/SecureString.cs
index ba39ce7d5da..7b1d142ac1d 100644
--- a/mcs/class/corlib/System.Security/SecureString.cs
+++ b/mcs/class/corlib/System.Security/SecureString.cs
@@ -33,11 +33,14 @@ using System.Runtime.InteropServices;
using System.Runtime.ConstrainedExecution;
using System.Security.Cryptography;
using System.Security.Permissions;
+#if NET_4_0
+using System.Runtime.ExceptionServices;
+#endif
namespace System.Security {
[MonoTODO ("work in progress - encryption is missing")]
- public sealed class SecureString : CriticalFinalizerObject, IDisposable {
+ public sealed class SecureString : IDisposable {
private const int BlockSize = 16;
private const int MaxSize = 65536;
@@ -88,6 +91,9 @@ namespace System.Security {
}
}
+#if NET_4_0
+ [HandleProcessCorruptedStateExceptions]
+#endif
public void AppendChar (char c)
{
if (disposed)
@@ -144,6 +150,9 @@ namespace System.Security {
length = 0;
}
+#if NET_4_0
+ [HandleProcessCorruptedStateExceptions]
+#endif
public void InsertAt (int index, char c)
{
if (disposed)
@@ -185,6 +194,9 @@ namespace System.Security {
read_only = true;
}
+#if NET_4_0
+ [HandleProcessCorruptedStateExceptions]
+#endif
public void RemoveAt (int index)
{
if (disposed)
@@ -206,6 +218,9 @@ namespace System.Security {
}
}
+#if NET_4_0
+ [HandleProcessCorruptedStateExceptions]
+#endif
public void SetAt (int index, char c)
{
if (disposed)
diff --git a/mcs/class/corlib/System.Text/Encoding.cs b/mcs/class/corlib/System.Text/Encoding.cs
index ee24613d48d..8570be97604 100644
--- a/mcs/class/corlib/System.Text/Encoding.cs
+++ b/mcs/class/corlib/System.Text/Encoding.cs
@@ -43,7 +43,7 @@ public abstract class Encoding : ICloneable
internal int windows_code_page;
bool is_readonly = true;
- protected static readonly byte[] empty = new byte[0];
+ internal static readonly byte[] empty = new byte[0];
// Constructor.
protected Encoding ()
diff --git a/mcs/class/corlib/corlib.dll.sources b/mcs/class/corlib/corlib.dll.sources
index a4bba228bb4..c28cc0beb08 100644
--- a/mcs/class/corlib/corlib.dll.sources
+++ b/mcs/class/corlib/corlib.dll.sources
@@ -1416,6 +1416,7 @@ System.Security.Policy/CodeConnectAccess.cs
System.Security.Policy/CodeGroup.cs
System.Security.Policy/DefaultPolicies.cs
System.Security.Policy/Evidence.cs
+System.Security.Policy/EvidenceBase.cs
System.Security.Policy/FileCodeGroup.cs
System.Security.Policy/FirstMatchCodeGroup.cs
System.Security.Policy/Gac.cs