示例#1
0
        public static OcesCertificateType GetOcesCertificateType(X509Certificate2 certificate)
        {
            try {
                CertificateSubject subject = new CertificateSubject(certificate.Subject);

                string ssn = subject.SerialNumberValue;
                if (ssn.Contains("RID:"))
                {
                    return(OcesCertificateType.OcesEmployee);
                }
                if (ssn.Contains("UID:"))
                {
                    return(OcesCertificateType.OcesOrganisation);
                }
                if (ssn.Contains("PID:"))
                {
                    return(OcesCertificateType.OcesPersonal);
                }
                if (ssn.Contains("DID:"))
                {
                    return(OcesCertificateType.OcesDevice);
                }
            }
            catch (Exception) { }
            return(OcesCertificateType.NonOces);
        }
示例#2
0
 /// <summary>
 /// Constructor that takes the X509Certificate wrapped. If the certificate is not
 /// an OCES-certificate an exception will be thrown.
 /// </summary>
 /// <param name="certificate">An OCES x509 certificate</param>
 public OcesX509Certificate(X509Certificate2 certificate)
 {
     if (certificate == null)
     {
         throw new ArgumentNullException("certificate");
     }
     _x509Certificate = certificate;
     _subject         = new CertificateSubject(_x509Certificate.Subject);
     SetCertificateType();
     if (_ocesCertificateType == OcesCertificateType.NonOces)
     {
         throw new NotAValidOcesCertificateException(certificate);
     }
 }
示例#3
0
        /// <summary>
        /// Compares two instances of a certificate subject.
        /// The subject string is compared.
        /// </summary>
        /// <param name="obj">The object to compare against "this"</param>
        /// <returns>True if equal</returns>
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            if (this.GetType() != obj.GetType())
            {
                return(false);
            }
            CertificateSubject other = (CertificateSubject)obj;

            return(other._subjectString.Equals(_subjectString));
        }