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); }
/// <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); } }
/// <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)); }