public DistributionPoint( DistributionPointName distributionPointName, ReasonFlags reasons, GeneralNames crlIssuer) { this.distributionPoint = distributionPointName; this.reasons = reasons; this.cRLIssuer = crlIssuer; }
/** * 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 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; } } }