public CrlEntry(
            Asn1Sequence seq)
        {
            if (seq.Count < 2 || seq.Count > 3)
            {
                throw new ArgumentException("Bad sequence size: " + seq.Count);
            }

            this.seq = seq;

            userCertificate = DerInteger.GetInstance(seq[0]);
            revocationDate = Time.GetInstance(seq[1]);
        }
 private OptionalValidity(Asn1Sequence seq)
 {
     foreach (Asn1TaggedObject tObj in seq)
     {
         if (tObj.TagNo == 0)
         {
             notBefore = Time.GetInstance(tObj, true);
         }
         else
         {
             notAfter = Time.GetInstance(tObj, true);
         }
     }
 }
        public void AddCrlEntry(DerInteger userCertificate, Time revocationDate, int reason,
            DerGeneralizedTime invalidityDate)
        {
            IList extOids = Platform.CreateArrayList();
            IList extValues = Platform.CreateArrayList();

            if (reason != 0)
            {
                CrlReason crlReason = new CrlReason(reason);

                try
                {
                    extOids.Add(X509Extensions.ReasonCode);
                    extValues.Add(new X509Extension(false, new DerOctetString(crlReason.GetEncoded())));
                }
                catch (IOException e)
                {
                    throw new ArgumentException("error encoding reason: " + e);
                }
            }

            if (invalidityDate != null)
            {
                try
                {
                    extOids.Add(X509Extensions.InvalidityDate);
                    extValues.Add(new X509Extension(false, new DerOctetString(invalidityDate.GetEncoded())));
                }
                catch (IOException e)
                {
                    throw new ArgumentException("error encoding invalidityDate: " + e);
                }
            }

            if (extOids.Count != 0)
            {
                AddCrlEntry(userCertificate, revocationDate, new X509Extensions(extOids, extValues));
            }
            else
            {
                AddCrlEntry(userCertificate, revocationDate, null);
            }
        }
 public void SetStartDate(
     DerUtcTime startDate)
 {
     this.startDate = new Time(startDate);
 }
 public void SetStartDate(
     Time startDate)
 {
     this.startDate = startDate;
 }
 public void SetEndDate(
     Time endDate)
 {
     this.endDate = endDate;
 }
 public void AddCrlEntry(DerInteger userCertificate, Time revocationDate, int reason)
 {
     AddCrlEntry(userCertificate, revocationDate, reason, null);
 }
 public void SetThisUpdate(
     Time thisUpdate)
 {
     this.thisUpdate = thisUpdate;
 }
 public void SetThisUpdate(
     DerUtcTime thisUpdate)
 {
     this.thisUpdate = new Time(thisUpdate);
 }
 public void SetNextUpdate(
     Time nextUpdate)
 {
     this.nextUpdate = nextUpdate;
 }
        public void AddCrlEntry(DerInteger userCertificate, Time revocationDate, X509Extensions extensions)
        {
            Asn1EncodableVector v = new Asn1EncodableVector(
                userCertificate, revocationDate);

            if (extensions != null)
            {
                v.Add(extensions);
            }

            AddCrlEntry(new DerSequence(v));
        }
        internal TbsCertificateList(
            Asn1Sequence seq)
        {
            if (seq.Count < 3 || seq.Count > 7)
            {
                throw new ArgumentException("Bad sequence size: " + seq.Count);
            }

            int seqPos = 0;

            this.seq = seq;

            if (seq[seqPos] is DerInteger)
            {
                version = DerInteger.GetInstance(seq[seqPos++]);
            }
            else
            {
                version = new DerInteger(0);
            }

            signature = AlgorithmIdentifier.GetInstance(seq[seqPos++]);
            issuer = X509Name.GetInstance(seq[seqPos++]);
            thisUpdate = Time.GetInstance(seq[seqPos++]);

            if (seqPos < seq.Count
                && (seq[seqPos] is DerUtcTime
                   || seq[seqPos] is DerGeneralizedTime
                   || seq[seqPos] is Time))
            {
                nextUpdate = Time.GetInstance(seq[seqPos++]);
            }

            if (seqPos < seq.Count
                && !(seq[seqPos] is DerTaggedObject))
            {
                revokedCertificates = Asn1Sequence.GetInstance(seq[seqPos++]);
            }

            if (seqPos < seq.Count
                && seq[seqPos] is DerTaggedObject)
            {
                crlExtensions = X509Extensions.GetInstance(seq[seqPos]);
            }
        }