<PackageReference Include="BouncyCastle.Cryptography" Version="2.5.0" />

Org.BouncyCastle.X509.X509Certificate

An Object representing an X509 Certificate. Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
namespace Org.BouncyCastle.X509 { public class X509Certificate : X509ExtensionBase { public virtual X509CertificateStructure CertificateStructure { get; } public virtual bool IsValidNow { get; } public virtual int Version { get; } public virtual BigInteger SerialNumber { get; } public virtual X509Name IssuerDN { get; } public virtual X509Name SubjectDN { get; } public virtual DateTime NotBefore { get; } public virtual DateTime NotAfter { get; } public virtual TbsCertificateStructure TbsCertificate { get; } public virtual string SigAlgName { get; } public virtual string SigAlgOid { get; } public virtual AlgorithmIdentifier SignatureAlgorithm { get; } public virtual DerBitString IssuerUniqueID { get; } public virtual DerBitString SubjectUniqueID { get; } public virtual SubjectPublicKeyInfo SubjectPublicKeyInfo { get; } protected X509Certificate(); public X509Certificate(byte[] certData); public X509Certificate(X509CertificateStructure c); public virtual bool IsValid(DateTime time); public virtual void CheckValidity(); public virtual void CheckValidity(DateTime time); public virtual byte[] GetTbsCertificate(); public virtual byte[] GetSignature(); public virtual byte[] GetSigAlgParams(); public virtual bool[] GetKeyUsage(); public virtual IList<DerObjectIdentifier> GetExtendedKeyUsage(); public virtual int GetBasicConstraints(); public virtual GeneralNames GetIssuerAlternativeNameExtension(); public virtual GeneralNames GetSubjectAlternativeNameExtension(); public virtual IList<IList<object>> GetIssuerAlternativeNames(); public virtual IList<IList<object>> GetSubjectAlternativeNames(); protected virtual GeneralNames GetAlternativeNameExtension(DerObjectIdentifier oid); protected virtual IList<IList<object>> GetAlternativeNames(DerObjectIdentifier oid); public virtual AsymmetricKeyParameter GetPublicKey(); public virtual byte[] GetEncoded(); public virtual bool IsSignatureValid(AsymmetricKeyParameter key); public virtual bool IsSignatureValid(IVerifierFactoryProvider verifierProvider); public virtual bool IsAlternativeSignatureValid(AsymmetricKeyParameter publicKey); public virtual bool IsAlternativeSignatureValid(IVerifierFactoryProvider verifierProvider); public virtual void Verify(AsymmetricKeyParameter key); public virtual void Verify(IVerifierFactoryProvider verifierProvider); public virtual void VerifyAltSignature(IVerifierFactoryProvider verifierProvider); protected virtual void CheckSignature(IVerifierFactory verifier); protected virtual bool CheckSignatureValid(IVerifierFactory verifier); } }