/**
         * Constructor from Asn1Sequence
         */
        private IssuingDistributionPoint(
            Asn1Sequence seq)
        {
            this.seq = seq;

            for (int i = 0; i != seq.Count; i++)
            {
                Asn1TaggedObject o = Asn1TaggedObject.GetInstance(seq[i]);

                switch (o.TagNo)
                {
                case 0:
                    // CHOICE so explicit
                    _distributionPoint = DistributionPointName.GetInstance(o, true);
                    break;

                case 1:
                    _onlyContainsUserCerts = DerBoolean.GetInstance(o, false).IsTrue;
                    break;

                case 2:
                    _onlyContainsCACerts = DerBoolean.GetInstance(o, false).IsTrue;
                    break;

                case 3:
                    _onlySomeReasons = new ReasonFlags(ReasonFlags.GetInstance(o, false));
                    break;

                case 4:
                    _indirectCRL = DerBoolean.GetInstance(o, false).IsTrue;
                    break;

                case 5:
                    _onlyContainsAttributeCerts = DerBoolean.GetInstance(o, false).IsTrue;
                    break;

                default:
                    throw new ArgumentException("unknown tag in IssuingDistributionPoint");
                }
            }
        }
        private DistributionPoint(
            Asn1Sequence seq)
        {
            for (int i = 0; i != seq.Count; i++)
            {
                Asn1TaggedObject t = Asn1TaggedObject.GetInstance(seq[i]);

                switch (t.TagNo)
                {
                case 0:
                    distributionPoint = DistributionPointName.GetInstance(t, true);
                    break;

                case 1:
                    reasons = new ReasonFlags(DerBitString.GetInstance(t, false));
                    break;

                case 2:
                    cRLIssuer = GeneralNames.GetInstance(t, false);
                    break;
                }
            }
        }