CrlEntry
using System;
namespace Org.BouncyCastle.Asn1.X509
{
    public class CrlEntry : Asn1Encodable
    {
        private readonly Asn1Sequence m_seq;
        private readonly DerInteger m_userCertificate;
        private readonly Time m_revocationDate;
        private readonly X509Extensions m_crlEntryExtensions;
        public DerInteger UserCertificate => m_userCertificate;
        public Time RevocationDate => m_revocationDate;
        public X509Extensions Extensions => m_crlEntryExtensions;
        public static CrlEntry GetInstance(object obj)
        {
            if (obj == null)
                return null;
            CrlEntry crlEntry = obj as CrlEntry;
            if (crlEntry != null)
                return crlEntry;
            return new CrlEntry(Asn1Sequence.GetInstance(obj));
        }
        public static CrlEntry GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
        {
            return new CrlEntry(Asn1Sequence.GetInstance(taggedObject, declaredExplicit));
        }
        public static CrlEntry GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit)
        {
            return new CrlEntry(Asn1Sequence.GetTagged(taggedObject, declaredExplicit));
        }
        [Obsolete("Use 'GetInstance' instead")]
        public CrlEntry(Asn1Sequence seq)
        {
            int count = seq.Count;
            int sequencePosition = 0;
            if (count < 2 || count > 3)
                throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq");
            m_userCertificate = DerInteger.GetInstance(seq[sequencePosition++]);
            m_revocationDate = Time.GetInstance(seq[sequencePosition++]);
            m_crlEntryExtensions = Asn1Utilities.ReadOptional(seq, ref sequencePosition, X509Extensions.GetOptional);
            if (sequencePosition != count)
                throw new ArgumentException("Unexpected elements in sequence", "seq");
            m_seq = seq;
        }
        public override Asn1Object ToAsn1Object()
        {
            return m_seq;
        }
    }
}