Exemplo n.º 1
0
        /**
         * Constructor from Asn1Sequence.
         * <p/>
         * The sequence is of type CertificatePair:
         * <p/>
         * <pre>
         *       CertificatePair ::= SEQUENCE {
         *         forward		[0]	Certificate OPTIONAL,
         *         reverse		[1]	Certificate OPTIONAL,
         *         -- at least one of the pair shall be present -- }
         * </pre>
         *
         * @param seq The ASN.1 sequence.
         */
        private CertificatePair(
            Asn1Sequence seq)
        {
            if (seq.Count != 1 && seq.Count != 2)
            {
                throw new ArgumentException("Bad sequence size: " + seq.Count, "seq");
            }

            foreach (object obj in seq)
            {
                Asn1TaggedObject o = Asn1TaggedObject.GetInstance(obj);
                if (o.TagNo == 0)
                {
                    forward = X509CertificateStructure.GetInstance(o, true);
                }
                else if (o.TagNo == 1)
                {
                    reverse = X509CertificateStructure.GetInstance(o, true);
                }
                else
                {
                    throw new ArgumentException("Bad tag number: " + o.TagNo);
                }
            }
        }