Skip to content

Commit 9961e6f

Browse files
author
gefeili
committed
Give RevocationTest's eeCertWithDistPoint a valid non-empty CRL distribution point so it survives the empty-SEQUENCE CRLDistPoint hardening, relates to github #2331.
1 parent df26a27 commit 9961e6f

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

pkix/src/test/java/org/bouncycastle/pkix/test/TestUtil.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,15 @@
1212

1313
import javax.security.auth.x500.X500Principal;
1414

15-
import org.bouncycastle.asn1.DERSequence;
1615
import org.bouncycastle.asn1.x500.X500Name;
1716
import org.bouncycastle.asn1.x509.BasicConstraints;
17+
import org.bouncycastle.asn1.x509.CRLDistPoint;
1818
import org.bouncycastle.asn1.x509.CRLReason;
19+
import org.bouncycastle.asn1.x509.DistributionPoint;
20+
import org.bouncycastle.asn1.x509.DistributionPointName;
1921
import org.bouncycastle.asn1.x509.Extension;
22+
import org.bouncycastle.asn1.x509.GeneralName;
23+
import org.bouncycastle.asn1.x509.GeneralNames;
2024
import org.bouncycastle.cert.X509v1CertificateBuilder;
2125
import org.bouncycastle.cert.X509v2CRLBuilder;
2226
import org.bouncycastle.cert.X509v3CertificateBuilder;
@@ -131,10 +135,20 @@ public static X509Certificate makeEeCertificate(boolean withDistPoint, X509Certi
131135

132136
if (withDistPoint)
133137
{
138+
// RFC 5280: CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint,
139+
// so the extension must carry at least one DistributionPoint. Point at the issuer's
140+
// directory name; no CRL is published for it, so revocation checking finds none,
141+
// which is exactly what the soft-fail path under test needs.
142+
DistributionPoint dp = new DistributionPoint(
143+
new DistributionPointName(new GeneralNames(
144+
new GeneralName(GeneralName.directoryName,
145+
X500Name.getInstance(issuer.getSubjectX500Principal().getEncoded())))),
146+
null, null);
147+
134148
v3CertGen.addExtension(
135149
Extension.cRLDistributionPoints,
136150
false,
137-
new DERSequence());
151+
new CRLDistPoint(new DistributionPoint[]{ dp }));
138152
}
139153

140154
JcaContentSignerBuilder contentSignerBuilder = new JcaContentSignerBuilder("SHA256WithRSA").setProvider("BC");

0 commit comments

Comments
 (0)