예제 #1
0
        public RevocationValues(
            IEnumerable crlVals,
            IEnumerable ocspVals,
            OtherRevVals otherRevVals)
        {
            if (crlVals != null)
            {
                if (!CollectionUtilities.CheckElementsAreOfType(crlVals, typeof(CertificateList)))
                {
                    throw new ArgumentException("Must contain only 'CertificateList' objects", "crlVals");
                }

                this.crlVals = new DerSequence(
                    Asn1EncodableVector.FromEnumerable(crlVals));
            }

            if (ocspVals != null)
            {
                if (!CollectionUtilities.CheckElementsAreOfType(ocspVals, typeof(BasicOcspResponse)))
                {
                    throw new ArgumentException("Must contain only 'BasicOcspResponse' objects", "ocspVals");
                }

                this.ocspVals = new DerSequence(
                    Asn1EncodableVector.FromEnumerable(ocspVals));
            }

            this.otherRevVals = otherRevVals;
        }
예제 #2
0
        public RevocationValues(
            CertificateList[]       crlVals,
            BasicOcspResponse[]     ocspVals,
            OtherRevVals otherRevVals)
        {
            if (crlVals != null)
            {
                this.crlVals = new DerSequence(crlVals);
            }

            if (ocspVals != null)
            {
                this.ocspVals = new DerSequence(ocspVals);
            }

            this.otherRevVals = otherRevVals;
        }
예제 #3
0
        private RevocationValues(
            Asn1Sequence seq)
        {
            if (seq == null)
            {
                throw new ArgumentNullException("seq");
            }
            if (seq.Count > 3)
            {
                throw new ArgumentException("Bad sequence size: " + seq.Count, "seq");
            }

            foreach (Asn1TaggedObject taggedObj in seq)
            {
                Asn1Object asn1Obj = taggedObj.GetObject();
                switch (taggedObj.TagNo)
                {
                case 0:
                    Asn1Sequence crlValsSeq = (Asn1Sequence)asn1Obj;
                    foreach (Asn1Encodable ae in crlValsSeq)
                    {
                        CertificateList.GetInstance(ae.ToAsn1Object());
                    }
                    this.crlVals = crlValsSeq;
                    break;

                case 1:
                    Asn1Sequence ocspValsSeq = (Asn1Sequence)asn1Obj;
                    foreach (Asn1Encodable ae in ocspValsSeq)
                    {
                        BasicOcspResponse.GetInstance(ae.ToAsn1Object());
                    }
                    this.ocspVals = ocspValsSeq;
                    break;

                case 2:
                    this.otherRevVals = OtherRevVals.GetInstance(asn1Obj);
                    break;

                default:
                    throw new ArgumentException("Illegal tag in RevocationValues", "seq");
                }
            }
        }