2 // PublisherMembershipCondition.cs: Publisher Membership Condition
5 // Sebastien Pouliot (spouliot@motus.com)
7 // (C) 2002 Motus Technologies Inc. (http://www.motus.com)
11 using System.Security.Cryptography.X509Certificates;
13 namespace System.Security.Policy {
16 public sealed class PublisherMembershipCondition : IMembershipCondition, ISecurityEncodable, ISecurityPolicyEncodable {
18 private X509Certificate x509;
20 // LAMESPEC: Undocumented ArgumentNullException exception
21 public PublisherMembershipCondition (X509Certificate certificate)
23 if (certificate == null)
24 throw new ArgumentNullException ("certificate");
25 // needed to match MS implementation
26 if (certificate.GetRawCertData() == null)
27 throw new NullReferenceException ("certificate");
31 public X509Certificate Certificate {
35 throw new ArgumentNullException ("value");
41 public bool Check (Evidence evidence)
46 public IMembershipCondition Copy ()
48 return new PublisherMembershipCondition (x509);
51 public override bool Equals (object o)
53 if (!(o is PublisherMembershipCondition))
54 throw new ArgumentException ("not a PublisherMembershipCondition");
55 return x509.Equals ((o as PublisherMembershipCondition).Certificate);
59 public void FromXml (SecurityElement e)
64 public void FromXml (SecurityElement e, PolicyLevel level)
68 public override int GetHashCode ()
70 return x509.GetHashCode ();
73 public override string ToString ()
75 return "Publisher - " + x509.GetPublicKeyString ();
79 public SecurityElement ToXml ()
85 public SecurityElement ToXml (PolicyLevel level)