public void Constructor_MD5 () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); Assert.IsNotNull (hash); Assert.AreEqual (md5, hash.HashAlgorithm, "HashAlgorithm"); Assert.AreEqual (BitConverter.ToString (digestMd5), BitConverter.ToString (hash.HashValue), "HashValue"); }
public void Constructor_SHA1 () { HashMembershipCondition hash = new HashMembershipCondition (sha1, digestSha1); Assert.IsNotNull (hash); Assert.AreEqual (sha1, hash.HashAlgorithm, "HashAlgorithm"); Assert.AreEqual (BitConverter.ToString (digestSha1), BitConverter.ToString (hash.HashValue), "HashValue"); }
// Token: 0x06002AD1 RID: 10961 RVA: 0x0009EEE4 File Offset: 0x0009D0E4 bool IReportMatchMembershipCondition.Check(Evidence evidence, out object usedEvidence) { usedEvidence = null; if (evidence == null) { return(false); } Hash hostEvidence = evidence.GetHostEvidence <Hash>(); if (hostEvidence != null) { if (this.m_value == null && this.m_element != null) { this.ParseHashValue(); } if (this.m_hashAlg == null && this.m_element != null) { this.ParseHashAlgorithm(); } byte[] array = null; object internalSyncObject = this.InternalSyncObject; lock (internalSyncObject) { array = hostEvidence.GenerateHash(this.m_hashAlg); } if (array != null && HashMembershipCondition.CompareArrays(array, this.m_value)) { usedEvidence = hostEvidence; return(true); } } return(false); }
public override bool Equals(object o) { HashMembershipCondition other = (o as HashMembershipCondition); if (other == null) { return(false); } return((other.HashAlgorithm == hash_algorithm) && Compare(hash_value, other.hash_value)); }
/// <summary>Gets the hash code for the current membership condition.</summary> /// <returns>The hash code for the current membership condition.</returns> // Token: 0x06002AD8 RID: 10968 RVA: 0x0009F1E4 File Offset: 0x0009D3E4 public override int GetHashCode() { if (this.m_hashAlg == null && this.m_element != null) { this.ParseHashAlgorithm(); } int num = (this.m_hashAlg != null) ? this.m_hashAlg.GetType().GetHashCode() : 0; if (this.m_value == null && this.m_element != null) { this.ParseHashValue(); } return(num ^ HashMembershipCondition.GetByteArrayHashCode(this.m_value)); }
public void HashValue () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); // we can't change the instance data by getting a reference inside it byte[] value = hash.HashValue; value [0] = 0xFF; Assert.IsFalse (value [0] == hash.HashValue [0], "reference"); Assert.AreEqual (BitConverter.ToString (digestMd5), BitConverter.ToString (hash.HashValue), "HashValue"); // and we can't change the instance data by keeping a reference to what we supply hash.HashValue = value; value [0] = 0x00; Assert.IsFalse (value [0] == hash.HashValue [0], "reference-2"); Assert.AreEqual (0xFF, hash.HashValue [0], "HashValue[0]"); }
public static void HashMembershipConditionCallMethods() { HashMembershipCondition hmc = new HashMembershipCondition(Cryptography.SHA1.Create(), new byte[1]); bool check = hmc.Check(new Evidence()); IMembershipCondition obj = hmc.Copy(); check = hmc.Equals(new object()); int hash = hmc.GetHashCode(); string str = hmc.ToString(); SecurityElement se = new SecurityElement(""); PolicyLevel pl = (PolicyLevel)Activator.CreateInstance(typeof(PolicyLevel), true); hmc.FromXml(se); hmc.FromXml(se, pl); se = hmc.ToXml(); se = hmc.ToXml(pl); }
public override bool Equals(Object o) { HashMembershipCondition that = (o as HashMembershipCondition); if (that != null) { if (this.m_hashAlg == null && this.m_element != null) { this.ParseHashAlgorithm(); } if (that.m_hashAlg == null && that.m_element != null) { that.ParseHashAlgorithm(); } if (this.m_hashAlg != null && that.m_hashAlg != null && this.m_hashAlg.GetType() == that.m_hashAlg.GetType()) { if (this.m_value == null && this.m_element != null) { this.ParseHashValue(); } if (that.m_value == null && that.m_element != null) { that.ParseHashValue(); } if (this.m_value.Length != that.m_value.Length) { return(false); } for (int i = 0; i < m_value.Length; i++) { if (this.m_value[i] != that.m_value[i]) { return(false); } } return(true); } } return(false); }
/// <summary>确定指定对象中的 <see cref="P:System.Security.Policy.HashMembershipCondition.HashValue" /> 和 <see cref="P:System.Security.Policy.HashMembershipCondition.HashAlgorithm" /> 是否等效于包含在当前 <see cref="T:System.Security.Policy.HashMembershipCondition" /> 中的 <see cref="P:System.Security.Policy.HashMembershipCondition.HashValue" /> 和 <see cref="P:System.Security.Policy.HashMembershipCondition.HashAlgorithm" />。</summary> /// <returns>如果指定对象中的 <see cref="P:System.Security.Policy.HashMembershipCondition.HashValue" /> 和 <see cref="P:System.Security.Policy.HashMembershipCondition.HashAlgorithm" /> 等效于包含在当前 <see cref="T:System.Security.Policy.HashMembershipCondition" /> 中的 <see cref="P:System.Security.Policy.HashMembershipCondition.HashValue" /> 和 <see cref="P:System.Security.Policy.HashMembershipCondition.HashAlgorithm" />,则为 true;否则为 false。</returns> /// <param name="o">与当前的 <see cref="T:System.Security.Policy.HashMembershipCondition" /> 比较的对象。</param> /// <PermissionSet> /// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" /> /// </PermissionSet> public override bool Equals(object o) { HashMembershipCondition membershipCondition = o as HashMembershipCondition; if (membershipCondition != null) { if (this.m_hashAlg == null && this.m_element != null) { this.ParseHashAlgorithm(); } if (membershipCondition.m_hashAlg == null && membershipCondition.m_element != null) { membershipCondition.ParseHashAlgorithm(); } if (this.m_hashAlg != null && membershipCondition.m_hashAlg != null && this.m_hashAlg.GetType() == membershipCondition.m_hashAlg.GetType()) { if (this.m_value == null && this.m_element != null) { this.ParseHashValue(); } if (membershipCondition.m_value == null && membershipCondition.m_element != null) { membershipCondition.ParseHashValue(); } if (this.m_value.Length != membershipCondition.m_value.Length) { return(false); } for (int index = 0; index < this.m_value.Length; ++index) { if ((int)this.m_value[index] != (int)membershipCondition.m_value[index]) { return(false); } } return(true); } } return(false); }
public override bool Equals(object o) { HashMembershipCondition condition = o as HashMembershipCondition; if (condition != null) { if ((this.m_hashAlg == null) && (this.m_element != null)) { this.ParseHashAlgorithm(); } if ((condition.m_hashAlg == null) && (condition.m_element != null)) { condition.ParseHashAlgorithm(); } if (((this.m_hashAlg != null) && (condition.m_hashAlg != null)) && (this.m_hashAlg.GetType() == condition.m_hashAlg.GetType())) { if ((this.m_value == null) && (this.m_element != null)) { this.ParseHashValue(); } if ((condition.m_value == null) && (condition.m_element != null)) { condition.ParseHashValue(); } if (this.m_value.Length != condition.m_value.Length) { return(false); } for (int i = 0; i < this.m_value.Length; i++) { if (this.m_value[i] != condition.m_value[i]) { return(false); } } return(true); } } return(false); }
public void Check () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); Evidence e = null; Assert.IsFalse (hash.Check (e), "Check (null)"); e = new Evidence (); Assert.IsFalse (hash.Check (e), "Check (empty)"); e.AddHost (new Zone (SecurityZone.MyComputer)); Assert.IsFalse (hash.Check (e), "Check (zone)"); e.AddAssembly (hashEvidence); Assert.IsFalse (hash.Check (e), "Check (hash-assembly)"); e = new Evidence (); e.AddHost (hashEvidence); Assert.IsTrue (hash.Check (e), "Check (MD5-host)"); hash = new HashMembershipCondition (sha1, digestSha1); Assert.IsTrue (hash.Check (e), "Check (SHA1-host)"); }
public void Equals () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); Assert.IsFalse (hash.Equals (null), "Equals(null)"); Assert.IsFalse (hash.Equals (new object ()), "Equals (object)"); HashMembershipCondition h2 = new HashMembershipCondition (md5, digestMd5); Assert.IsTrue (hash.Equals (h2), "Equals(h2)"); Assert.IsTrue (h2.Equals (hash), "Equals(hash)"); // same assembly but different algorithm / value hash = new HashMembershipCondition (sha1, digestSha1); Assert.IsFalse (hash.Equals (h2), "Equals(h2)"); Assert.IsFalse (h2.Equals (hash), "Equals(hash)"); }
public void ToString_ () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); Assert.IsTrue (hash.ToString ().StartsWith ("Hash - System.Security.Cryptography.MD5"), "MD5"); hash = new HashMembershipCondition (sha1, digestSha1); Assert.IsTrue (hash.ToString ().StartsWith ("Hash - System.Security.Cryptography.SHA1"), "SHA1"); }
public void ToXml () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); SecurityElement se = hash.ToXml (); Assert.AreEqual ("IMembershipCondition", se.Tag, "Tag"); Assert.IsTrue (se.Attribute ("class").StartsWith ("System.Security.Policy.HashMembershipCondition"), "class"); Assert.AreEqual ("1", se.Attribute ("version"), "version"); Assert.AreEqual (se.ToString (), hash.ToXml (null).ToString (), "ToXml(null)"); Assert.AreEqual (se.ToString (), hash.ToXml (PolicyLevel.CreateAppDomainLevel ()).ToString (), "ToXml(PolicyLevel)"); }
public void FromXml_PolicyLevelNull () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); SecurityElement se = hash.ToXml (); hash.FromXml (se, null); }
public void GetHashCode_ () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); HashMembershipCondition copy = (HashMembershipCondition)hash.Copy (); Assert.AreEqual (hash.GetHashCode (), copy.GetHashCode ()); }
public void Copy () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); HashMembershipCondition copy = (HashMembershipCondition)hash.Copy (); Assert.AreEqual (hash, copy, "Equals"); Assert.IsFalse (Object.ReferenceEquals (hash, copy), "ReferenceEquals"); }
public void FromXml_SecurityElementNull () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); hash.FromXml (null, PolicyLevel.CreateAppDomainLevel ()); }
public void FromXml_Null () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); hash.FromXml (null); }
public void FromXml_InvalidTag () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); SecurityElement se = hash.ToXml (); se.Tag = "IMonoship"; hash.FromXml (se); }
public void FromXml_NoClass () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); SecurityElement se = hash.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("version", se.Attribute ("version")); hash.FromXml (w); // doesn't even care of the class attribute presence }
public void FromXml_InvalidClass () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); SecurityElement se = hash.ToXml (); se.Attributes ["class"] = "Hello world"; hash.FromXml (se); }
public void FromXml_WrongTagCase () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); SecurityElement se = hash.ToXml (); se.Tag = "IMEMBERSHIPCONDITION"; // instehash of IMembershipCondition hash.FromXml (se); }
public void FromXml_InvalidVersion () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); SecurityElement se = hash.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("class", se.Attribute ("class")); w.AddAttribute ("version", "2"); hash.FromXml (w); // doesn't seems to care about the version number! }
public void FromXml_Empty_ToString () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); SecurityElement se = hash.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("class", se.Attribute ("class")); w.AddAttribute ("version", "1"); hash.FromXml (w); // this is accepted - but doesn't include a hash algorithm or value // both would throw ArgumentNullException from the constructor string s = hash.ToString (); }
public void FromXml_NoVersion () { HashMembershipCondition hash = new HashMembershipCondition (md5, digestMd5); SecurityElement se = hash.ToXml (); SecurityElement w = new SecurityElement (se.Tag); w.AddAttribute ("class", se.Attribute ("class")); hash.FromXml (w); }
/// <summary>Determines whether the <see cref="P:System.Security.Policy.HashMembershipCondition.HashValue" /> and the <see cref="P:System.Security.Policy.HashMembershipCondition.HashAlgorithm" /> from the specified object are equivalent to the <see cref="P:System.Security.Policy.HashMembershipCondition.HashValue" /> and <see cref="P:System.Security.Policy.HashMembershipCondition.HashAlgorithm" /> contained in the current <see cref="T:System.Security.Policy.HashMembershipCondition" />.</summary> /// <returns>true if the <see cref="P:System.Security.Policy.HashMembershipCondition.HashValue" /> and <see cref="P:System.Security.Policy.HashMembershipCondition.HashAlgorithm" /> from the specified object is equivalent to the <see cref="P:System.Security.Policy.HashMembershipCondition.HashValue" /> and <see cref="P:System.Security.Policy.HashMembershipCondition.HashAlgorithm" /> contained in the current <see cref="T:System.Security.Policy.HashMembershipCondition" />; otherwise, false.</returns> /// <param name="o">The object to compare to the current <see cref="T:System.Security.Policy.HashMembershipCondition" />. </param> /// <PermissionSet> /// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" /> /// </PermissionSet> public override bool Equals(object o) { HashMembershipCondition hashMembershipCondition = o as HashMembershipCondition; return(hashMembershipCondition != null && hashMembershipCondition.HashAlgorithm == this.hash_algorithm && this.Compare(this.hash_value, hashMembershipCondition.hash_value)); }