Inheritance: Asn1Encodable, IAsn1Choice
Esempio n. 1
0
 public DistributionPoint(
     DistributionPointName	distributionPointName,
     ReasonFlags				reasons,
     GeneralNames			crlIssuer)
 {
     this.distributionPoint = distributionPointName;
     this.reasons = reasons;
     this.cRLIssuer = crlIssuer;
 }
Esempio n. 2
0
 public DistributionPoint(
     DistributionPointName distributionPointName,
     ReasonFlags reasons,
     GeneralNames crlIssuer)
 {
     this.distributionPoint = distributionPointName;
     this.reasons           = reasons;
     this.cRLIssuer         = crlIssuer;
 }
Esempio n. 3
0
        public IssuingDistributionPoint(DistributionPointName distributionPoint, bool onlyContainsUserCerts, bool onlyContainsCACerts, ReasonFlags onlySomeReasons, bool indirectCRL, bool onlyContainsAttributeCerts)
        {
            this._distributionPoint          = distributionPoint;
            this._indirectCRL                = indirectCRL;
            this._onlyContainsAttributeCerts = onlyContainsAttributeCerts;
            this._onlyContainsCACerts        = onlyContainsCACerts;
            this._onlyContainsUserCerts      = onlyContainsUserCerts;
            this._onlySomeReasons            = onlySomeReasons;
            Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(new Asn1Encodable[0]);

            if (distributionPoint != null)
            {
                asn1EncodableVector.Add(new Asn1Encodable[]
                {
                    new DerTaggedObject(true, 0, distributionPoint)
                });
            }
            if (onlyContainsUserCerts)
            {
                asn1EncodableVector.Add(new Asn1Encodable[]
                {
                    new DerTaggedObject(false, 1, DerBoolean.True)
                });
            }
            if (onlyContainsCACerts)
            {
                asn1EncodableVector.Add(new Asn1Encodable[]
                {
                    new DerTaggedObject(false, 2, DerBoolean.True)
                });
            }
            if (onlySomeReasons != null)
            {
                asn1EncodableVector.Add(new Asn1Encodable[]
                {
                    new DerTaggedObject(false, 3, onlySomeReasons)
                });
            }
            if (indirectCRL)
            {
                asn1EncodableVector.Add(new Asn1Encodable[]
                {
                    new DerTaggedObject(false, 4, DerBoolean.True)
                });
            }
            if (onlyContainsAttributeCerts)
            {
                asn1EncodableVector.Add(new Asn1Encodable[]
                {
                    new DerTaggedObject(false, 5, DerBoolean.True)
                });
            }
            this.seq = new DerSequence(asn1EncodableVector);
        }
Esempio n. 4
0
        /**
         * Constructor from given details.
         *
         * @param distributionPoint
         *            May contain an URI as pointer to most current CRL.
         * @param onlyContainsUserCerts Covers revocation information for end certificates.
         * @param onlyContainsCACerts Covers revocation information for CA certificates.
         *
         * @param onlySomeReasons
         *            Which revocation reasons does this point cover.
         * @param indirectCRL
         *            If <code>true</code> then the CRL contains revocation
         *            information about certificates ssued by other CAs.
         * @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
         */
        public IssuingDistributionPoint(
            DistributionPointName distributionPoint,
            bool onlyContainsUserCerts,
            bool onlyContainsCACerts,
            ReasonFlags onlySomeReasons,
            bool indirectCRL,
            bool onlyContainsAttributeCerts)
        {
            this._distributionPoint          = distributionPoint;
            this._indirectCRL                = indirectCRL;
            this._onlyContainsAttributeCerts = onlyContainsAttributeCerts;
            this._onlyContainsCACerts        = onlyContainsCACerts;
            this._onlyContainsUserCerts      = onlyContainsUserCerts;
            this._onlySomeReasons            = onlySomeReasons;

            Asn1EncodableVector vec = new Asn1EncodableVector();

            if (distributionPoint != null)
            {                   // CHOICE item so explicitly tagged
                vec.Add(new DerTaggedObject(true, 0, distributionPoint));
            }
            if (onlyContainsUserCerts)
            {
                vec.Add(new DerTaggedObject(false, 1, DerBoolean.True));
            }
            if (onlyContainsCACerts)
            {
                vec.Add(new DerTaggedObject(false, 2, DerBoolean.True));
            }
            if (onlySomeReasons != null)
            {
                vec.Add(new DerTaggedObject(false, 3, onlySomeReasons));
            }
            if (indirectCRL)
            {
                vec.Add(new DerTaggedObject(false, 4, DerBoolean.True));
            }
            if (onlyContainsAttributeCerts)
            {
                vec.Add(new DerTaggedObject(false, 5, DerBoolean.True));
            }

            seq = new DerSequence(vec);
        }
		/**
		 * Constructor from given details.
		 * 
		 * @param distributionPoint
		 *            May contain an URI as pointer to most current CRL.
		 * @param onlyContainsUserCerts Covers revocation information for end certificates.
		 * @param onlyContainsCACerts Covers revocation information for CA certificates.
		 * 
		 * @param onlySomeReasons
		 *            Which revocation reasons does this point cover.
		 * @param indirectCRL
		 *            If <code>true</code> then the CRL contains revocation
		 *            information about certificates ssued by other CAs.
		 * @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
		 */
		public IssuingDistributionPoint(
			DistributionPointName	distributionPoint,
			bool					onlyContainsUserCerts,
			bool					onlyContainsCACerts,
			ReasonFlags				onlySomeReasons,
			bool					indirectCRL,
			bool					onlyContainsAttributeCerts)
		{
			this._distributionPoint = distributionPoint;
			this._indirectCRL = indirectCRL;
			this._onlyContainsAttributeCerts = onlyContainsAttributeCerts;
			this._onlyContainsCACerts = onlyContainsCACerts;
			this._onlyContainsUserCerts = onlyContainsUserCerts;
			this._onlySomeReasons = onlySomeReasons;

			Asn1EncodableVector vec = new Asn1EncodableVector();
			if (distributionPoint != null)
			{	// CHOICE item so explicitly tagged
				vec.Add(new DerTaggedObject(true, 0, distributionPoint));
			}
			if (onlyContainsUserCerts)
			{
				vec.Add(new DerTaggedObject(false, 1, DerBoolean.True));
			}
			if (onlyContainsCACerts)
			{
				vec.Add(new DerTaggedObject(false, 2, DerBoolean.True));
			}
			if (onlySomeReasons != null)
			{
				vec.Add(new DerTaggedObject(false, 3, onlySomeReasons));
			}
			if (indirectCRL)
			{
				vec.Add(new DerTaggedObject(false, 4, DerBoolean.True));
			}
			if (onlyContainsAttributeCerts)
			{
				vec.Add(new DerTaggedObject(false, 5, DerBoolean.True));
			}

			seq = new DerSequence(vec);
		}
Esempio n. 6
0
		private DistributionPoint(Asn1Sequence seq)
		{
			for (int i = 0; i != seq.Count; i++)
			{
				Asn1TaggedObject instance = Asn1TaggedObject.GetInstance(seq[i]);
				switch (instance.TagNo)
				{
				case 0:
					distributionPoint = DistributionPointName.GetInstance(instance, explicitly: true);
					break;
				case 1:
					reasons = new ReasonFlags(DerBitString.GetInstance(instance, isExplicit: false));
					break;
				case 2:
					cRLIssuer = GeneralNames.GetInstance(instance, explicitly: false);
					break;
				}
			}
		}
Esempio n. 7
0
        /**
         * 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");
                }
            }
        }
Esempio n. 8
0
        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;
                }
            }
        }
Esempio n. 9
0
        private DistributionPoint(Asn1Sequence seq)
        {
            for (int num = 0; num != seq.Count; num++)
            {
                Asn1TaggedObject instance = Asn1TaggedObject.GetInstance(seq[num]);
                switch (instance.TagNo)
                {
                case 0:
                    this.distributionPoint = DistributionPointName.GetInstance(instance, true);
                    break;

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

                case 2:
                    this.cRLIssuer = GeneralNames.GetInstance(instance, false);
                    break;
                }
            }
        }
		private void checkValues(
			IssuingDistributionPoint	point,
			DistributionPointName		distributionPoint,
			bool						onlyContainsUserCerts,
			bool						onlyContainsCACerts,
			ReasonFlags					onlySomeReasons,
			bool						indirectCRL,
			bool						onlyContainsAttributeCerts)
		{
			if (point.OnlyContainsUserCerts != onlyContainsUserCerts)
			{
				Fail("mismatch on onlyContainsUserCerts");
			}

			if (point.OnlyContainsCACerts != onlyContainsCACerts)
			{
				Fail("mismatch on onlyContainsCACerts");
			}

			if (point.IsIndirectCrl != indirectCRL)
			{
				Fail("mismatch on indirectCRL");
			}

			if (point.OnlyContainsAttributeCerts != onlyContainsAttributeCerts)
			{
				Fail("mismatch on onlyContainsAttributeCerts");
			}

			if (!isEquiv(onlySomeReasons, point.OnlySomeReasons))
			{
				Fail("mismatch on onlySomeReasons");
			}

			if (!isEquiv(distributionPoint, point.DistributionPoint))
			{
				Fail("mismatch on distributionPoint");
			}
		}
		public override void PerformTest()
		{
			DistributionPointName name = new DistributionPointName(
				new GeneralNames(new GeneralName(new X509Name("cn=test"))));
			ReasonFlags reasonFlags = new ReasonFlags(ReasonFlags.CACompromise);

			checkPoint(6, name, true, true, reasonFlags, true, true);

			checkPoint(2, name, false, false, reasonFlags, false, false);

			checkPoint(0, null, false, false, null, false, false);

			try
			{
				IssuingDistributionPoint.GetInstance(new object());

				Fail("GetInstance() failed to detect bad object.");
			}
			catch (ArgumentException)
			{
				// expected
			}
		}
Esempio n. 12
0
        private IssuingDistributionPoint(Asn1Sequence seq)
        {
            this.seq = seq;
            for (int num = 0; num != seq.Count; num++)
            {
                Asn1TaggedObject instance = Asn1TaggedObject.GetInstance(seq[num]);
                switch (instance.TagNo)
                {
                case 0:
                    this._distributionPoint = DistributionPointName.GetInstance(instance, true);
                    break;

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

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

                case 3:
                    this._onlySomeReasons = new ReasonFlags(DerBitString.GetInstance(instance, false));
                    break;

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

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

                default:
                    throw new ArgumentException("unknown tag in IssuingDistributionPoint");
                }
            }
        }
		private void checkPoint(
			int						size,
			DistributionPointName	distributionPoint,
			bool					onlyContainsUserCerts,
			bool					onlyContainsCACerts,
			ReasonFlags				onlySomeReasons,
			bool					indirectCRL,
			bool					onlyContainsAttributeCerts)
		{
			IssuingDistributionPoint point = new IssuingDistributionPoint(distributionPoint, onlyContainsUserCerts, onlyContainsCACerts, onlySomeReasons, indirectCRL, onlyContainsAttributeCerts);

			checkValues(point, distributionPoint, onlyContainsUserCerts, onlyContainsCACerts, onlySomeReasons, indirectCRL, onlyContainsAttributeCerts);

			Asn1Sequence seq = Asn1Sequence.GetInstance(Asn1Object.FromByteArray(point.GetEncoded()));

			if (seq.Count != size)
			{
				Fail("size mismatch");
			}

			point = IssuingDistributionPoint.GetInstance(seq);

			checkValues(point, distributionPoint, onlyContainsUserCerts, onlyContainsCACerts, onlySomeReasons, indirectCRL, onlyContainsAttributeCerts);
		}
 public static DistributionPointName GetInstance(Asn1TaggedObject obj, bool explicitly)
 {
     return(DistributionPointName.GetInstance(Asn1TaggedObject.GetInstance(obj, true)));
 }
		/**
         * 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");
                }
            }
        }