Пример #1
0
        /// <summary>
        /// Gets the certificate details
        /// </summary>
        /// <param name="certificatePath">Certificate File Path</param>
        /// <param name="password">Password is set any</param>
        /// <returns>Certificate Details <see cref="CertificateDetails"/></returns>
        public static CertificateDetails GetCertificateDetails(string certificatePath, string password = null)
        {
            X509Certificate2   _certificate = new X509Certificate2(certificatePath, password);
            CertificateDetails details      = new CertificateDetails();

            details.SerialNumber         = _certificate.SerialNumber;
            details.IssuedBy             = _certificate.Issuer.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Where(x => x.Contains("CN")).FirstOrDefault().Replace("CN=", string.Empty);
            details.IssuedTo             = _certificate.Subject.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Where(x => x.Contains("CN")).FirstOrDefault().Replace("CN=", string.Empty);
            details.Issuer               = _certificate.Issuer;
            details.StartDate            = _certificate.NotBefore;
            details.ExpiryDate           = _certificate.NotAfter;
            details.SignatureAlgorithm   = new Oid("", _certificate.SignatureAlgorithm.FriendlyName);
            details.PrivateKeyExportable = _certificate.HasPrivateKey;
            details.KeyLength            = _certificate.PublicKey.Key.KeySize;

            return(details);
        }
Пример #2
0
        /// <summary>
        /// Determines whether the specified <see cref="System.Object"/> is equal to this instance.
        /// </summary>
        /// <param name="obj">The <see cref="System.Object"/> to compare with this instance.</param>
        /// <returns>
        ///   <c>true</c> if the specified <see cref="System.Object"/> is equal to this instance; otherwise, <c>false</c>.
        /// </returns>
        public override bool Equals(object obj)
        {
            CertificateDetails other = (CertificateDetails)obj;

            return(this.IssuedTo == other.IssuedTo && this.Issuer == other.Issuer && this.IssuedBy == other.IssuedBy && this.StartDate == other.StartDate && this.ExpiryDate == other.ExpiryDate);
        }