/// <summary> /// Verifies if the digital certificate password is correct. /// </summary> /// <param name="pfxCertificateStream">PFX certificate stream</param> /// <param name="password">PFX password</param> /// <returns></returns> public static Boolean VerifyPassword(Stream pfxCertificateStream, String password) { if (pfxCertificateStream == null) { throw new ArgumentNullException(nameof(pfxCertificateStream)); } if (!pfxCertificateStream.CanRead) { throw new IOException($"Cannot read the '{nameof(pfxCertificateStream)}' parameter."); } if (password == null) { throw new ArgumentNullException(nameof(password)); } try { X509CertificateHelpers.LoadCertificate(pfxCertificateStream, password); return(true); } catch (CryptographicException ex) { if (ex.Message.Contains("senha") || ex.Message.Contains("pass")) { return(false); } else { throw; } } }
/// <summary> /// Get the expiration date of a certificate. /// </summary> /// <param name="pfxCertificateStream">PFX certificate stream</param> /// <param name="password">PFX password</param> /// <returns></returns> public static DateTime GetExpirationDate(Stream pfxCertificateStream, String password) { if (pfxCertificateStream == null) { throw new ArgumentNullException(nameof(pfxCertificateStream)); } if (!pfxCertificateStream.CanRead) { throw new IOException($"Cannot read the '{nameof(pfxCertificateStream)}' parameter."); } if (password == null) { throw new ArgumentNullException(nameof(password)); } var certificate = X509CertificateHelpers.LoadCertificate(pfxCertificateStream, password); return(certificate.NotAfter); }