using System; using System.IO; using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Math; namespace Org.BouncyCastle.X509 { /// Interface for an X.509 Attribute Certificate. public interface IX509AttributeCertificate : IX509Extension { /// The version number for the certificate. int Version { get; } /// The serial number for the certificate. BigInteger SerialNumber { get; } /// The UTC DateTime before which the certificate is not valid. DateTime NotBefore { get; } /// The UTC DateTime after which the certificate is not valid. DateTime NotAfter { get; } /// The holder of the certificate. AttributeCertificateHolder Holder { get; } /// The issuer details for the certificate. AttributeCertificateIssuer Issuer { get; } /// Return the attributes contained in the attribute block in the certificate. /// An array of attributes. X509Attribute[] GetAttributes(); /// Return the attributes with the same type as the passed in oid. /// The object identifier we wish to match. /// An array of matched attributes, null if there is no match. X509Attribute[] GetAttributes(string oid); bool[] GetIssuerUniqueID(); bool IsValidNow { get; } bool IsValid(DateTime date); void CheckValidity(); void CheckValidity(DateTime date); byte[] GetSignature(); void Verify(AsymmetricKeyParameter publicKey); /// Return an ASN.1 encoded byte array representing the attribute certificate. /// An ASN.1 encoded byte array. /// If the certificate cannot be encoded. byte[] GetEncoded(); } }