use der::{asn1::BitStringRef, AnyRef, Choice, Sequence, ValueOrd};
use spki::ObjectIdentifier;
use x509_cert::Certificate;
type AttributeCertificateV1<'a> = BitStringRef<'a>;
type AttributeCertificateV2<'a> = BitStringRef<'a>;
type ExtendedCertificate<'a> = BitStringRef<'a>;
#[derive(Clone, Debug, PartialEq, Eq, Sequence, ValueOrd)]
pub struct OtherCertificateFormat<'a> {
other_cert_format: ObjectIdentifier,
other_cert: AnyRef<'a>,
}
#[derive(Clone, Debug, PartialEq, Eq, Choice, ValueOrd)]
#[allow(clippy::large_enum_variant)]
pub enum CertificateChoices<'a> {
Certificate(Certificate),
#[deprecated]
#[asn1(context_specific = "0", tag_mode = "IMPLICIT")]
ExtendedCertificate(ExtendedCertificate<'a>),
#[deprecated]
#[asn1(context_specific = "1", tag_mode = "IMPLICIT")]
V1AttrCert(AttributeCertificateV1<'a>),
#[asn1(context_specific = "2", tag_mode = "IMPLICIT")]
V2AttrCert(AttributeCertificateV2<'a>),
#[asn1(context_specific = "3", tag_mode = "IMPLICIT")]
Other(OtherCertificateFormat<'a>),
}