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 } }
private IssuingDistributionPoint(Asn1Sequence seq) { this.seq = 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: _onlyContainsUserCerts = DerBoolean.GetInstance(instance, isExplicit: false).IsTrue; break; case 2: _onlyContainsCACerts = DerBoolean.GetInstance(instance, isExplicit: false).IsTrue; break; case 3: _onlySomeReasons = new ReasonFlags(DerBitString.GetInstance(instance, isExplicit: false)); break; case 4: _indirectCRL = DerBoolean.GetInstance(instance, isExplicit: false).IsTrue; break; case 5: _onlyContainsAttributeCerts = DerBoolean.GetInstance(instance, isExplicit: 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 IssuingDistributionPoint(DistributionPointName distributionPoint, bool onlyContainsUserCerts, bool onlyContainsCACerts, ReasonFlags onlySomeReasons, bool indirectCRL, bool onlyContainsAttributeCerts) { _distributionPoint = distributionPoint; _indirectCRL = indirectCRL; _onlyContainsAttributeCerts = onlyContainsAttributeCerts; _onlyContainsCACerts = onlyContainsCACerts; _onlyContainsUserCerts = onlyContainsUserCerts; _onlySomeReasons = onlySomeReasons; Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(); if (distributionPoint != null) { asn1EncodableVector.Add(new DerTaggedObject(explicitly: true, 0, distributionPoint)); } if (onlyContainsUserCerts) { asn1EncodableVector.Add(new DerTaggedObject(explicitly: false, 1, DerBoolean.True)); } if (onlyContainsCACerts) { asn1EncodableVector.Add(new DerTaggedObject(explicitly: false, 2, DerBoolean.True)); } if (onlySomeReasons != null) { asn1EncodableVector.Add(new DerTaggedObject(explicitly: false, 3, onlySomeReasons)); } if (indirectCRL) { asn1EncodableVector.Add(new DerTaggedObject(explicitly: false, 4, DerBoolean.True)); } if (onlyContainsAttributeCerts) { asn1EncodableVector.Add(new DerTaggedObject(explicitly: false, 5, DerBoolean.True)); } seq = new DerSequence(asn1EncodableVector); }
public DP(string dp, ReasonFlags reasons, string issuer) { DistributionPoint = dp; Reasons = reasons; CRLIssuer = issuer; }
public DP (string dp, ReasonFlags reasons, string issuer) { DistributionPoint = dp; Reasons = reasons; CRLIssuer = issuer; }