|
12 | 12 |
|
13 | 13 | import javax.security.auth.x500.X500Principal; |
14 | 14 |
|
15 | | -import org.bouncycastle.asn1.DERSequence; |
16 | 15 | import org.bouncycastle.asn1.x500.X500Name; |
17 | 16 | import org.bouncycastle.asn1.x509.BasicConstraints; |
| 17 | +import org.bouncycastle.asn1.x509.CRLDistPoint; |
18 | 18 | import org.bouncycastle.asn1.x509.CRLReason; |
| 19 | +import org.bouncycastle.asn1.x509.DistributionPoint; |
| 20 | +import org.bouncycastle.asn1.x509.DistributionPointName; |
19 | 21 | import org.bouncycastle.asn1.x509.Extension; |
| 22 | +import org.bouncycastle.asn1.x509.GeneralName; |
| 23 | +import org.bouncycastle.asn1.x509.GeneralNames; |
20 | 24 | import org.bouncycastle.cert.X509v1CertificateBuilder; |
21 | 25 | import org.bouncycastle.cert.X509v2CRLBuilder; |
22 | 26 | import org.bouncycastle.cert.X509v3CertificateBuilder; |
@@ -131,10 +135,20 @@ public static X509Certificate makeEeCertificate(boolean withDistPoint, X509Certi |
131 | 135 |
|
132 | 136 | if (withDistPoint) |
133 | 137 | { |
| 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 | + |
134 | 148 | v3CertGen.addExtension( |
135 | 149 | Extension.cRLDistributionPoints, |
136 | 150 | false, |
137 | | - new DERSequence()); |
| 151 | + new CRLDistPoint(new DistributionPoint[]{ dp })); |
138 | 152 | } |
139 | 153 |
|
140 | 154 | JcaContentSignerBuilder contentSignerBuilder = new JcaContentSignerBuilder("SHA256WithRSA").setProvider("BC"); |
|
0 commit comments