[utilities COMMIT] /java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/security/SelfSignedCertifi...
noreply at shibboleth.net
noreply at shibboleth.net
Wed Aug 6 21:01:32 EDT 2014
Author: scantor
Date: Wed Aug 6 21:01:32 2014
New Revision: 654
URL: http://svn.shibboleth.net/view/utilities?rev=654&view=rev
Log:
Update to latest BC version, and port cert generation to new APIs for testing.
Modified:
java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/security/SelfSignedCertificateGenerator.java
Modified: java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/security/SelfSignedCertificateGenerator.java
URL: http://svn.shibboleth.net/view/utilities/java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/security/SelfSignedCertificateGenerator.java?rev=654&r1=653&r2=654&view=diff
==============================================================================
--- java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/security/SelfSignedCertificateGenerator.java (original)
+++ java-support/trunk/src/main/java/net/shibboleth/utilities/java/support/security/SelfSignedCertificateGenerator.java Wed Aug 6 21:01:32 2014
@@ -30,6 +30,7 @@
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
@@ -43,19 +44,18 @@
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import org.bouncycastle.asn1.ASN1Encodable;
-import org.bouncycastle.asn1.ASN1ObjectIdentifier;
-import org.bouncycastle.asn1.ASN1Primitive;
-import org.bouncycastle.asn1.DERPrintableString;
import org.bouncycastle.asn1.DERSequence;
-import org.bouncycastle.asn1.DERUTF8String;
+import org.bouncycastle.asn1.x500.X500Name;
+import org.bouncycastle.asn1.x509.Extension;
import org.bouncycastle.asn1.x509.GeneralName;
import org.bouncycastle.asn1.x509.GeneralNames;
-import org.bouncycastle.asn1.x509.X509Extensions;
-import org.bouncycastle.asn1.x509.X509Name;
-import org.bouncycastle.asn1.x509.X509NameEntryConverter;
-import org.bouncycastle.openssl.PEMWriter;
-import org.bouncycastle.x509.X509V3CertificateGenerator;
-import org.bouncycastle.x509.extension.SubjectKeyIdentifierStructure;
+import org.bouncycastle.cert.X509CertificateHolder;
+import org.bouncycastle.cert.X509v3CertificateBuilder;
+import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter;
+import org.bouncycastle.cert.jcajce.JcaX509ExtensionUtils;
+import org.bouncycastle.cert.jcajce.JcaX509v3CertificateBuilder;
+import org.bouncycastle.openssl.jcajce.JcaPEMWriter;
+import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -229,14 +229,14 @@
// Write the requested files.
if (args.privateKeyFile != null) {
- final PEMWriter keyOut = new PEMWriter(new FileWriter(args.privateKeyFile));
+ final JcaPEMWriter keyOut = new JcaPEMWriter(new FileWriter(args.privateKeyFile));
keyOut.writeObject(keypair.getPrivate());
keyOut.flush();
keyOut.close();
}
if (args.certificateFile != null) {
- final PEMWriter certOut = new PEMWriter(new FileWriter(args.certificateFile));
+ final JcaPEMWriter certOut = new JcaPEMWriter(new FileWriter(args.certificateFile));
certOut.writeObject(certificate);
certOut.flush();
certOut.close();
@@ -297,32 +297,36 @@
*/
@Nonnull protected X509Certificate generateCertificate(@Nonnull final KeyPair keypair) throws Exception {
- final X509V3CertificateGenerator certifcateGenerator = new X509V3CertificateGenerator();
- certifcateGenerator.setPublicKey(keypair.getPublic());
-
- final StringBuffer dnBuffer = new StringBuffer("CN=").append(args.hostname);
-
- final X509Name dn = new X509Name(false, dnBuffer.toString(), new RdnConverter());
- certifcateGenerator.setIssuerDN(dn);
- certifcateGenerator.setSubjectDN(dn);
-
- final GregorianCalendar date = new GregorianCalendar();
- certifcateGenerator.setNotBefore(date.getTime());
-
- date.set(GregorianCalendar.YEAR, date.get(GregorianCalendar.YEAR) + args.certificateLifetime);
- certifcateGenerator.setNotAfter(date.getTime());
-
- certifcateGenerator.setSerialNumber(new BigInteger(160, new SecureRandom()));
-
- certifcateGenerator.setSignatureAlgorithm(args.certAlg);
-
- certifcateGenerator.addExtension(X509Extensions.SubjectAlternativeName, false,
+ final X500Name dn = new X500Name("CN=" + args.hostname);
+ final GregorianCalendar notBefore = new GregorianCalendar();
+ final GregorianCalendar notOnOrAfter = new GregorianCalendar();
+ notOnOrAfter.set(GregorianCalendar.YEAR, notOnOrAfter.get(GregorianCalendar.YEAR) + args.certificateLifetime);
+
+ final X509v3CertificateBuilder builder = new JcaX509v3CertificateBuilder(
+ dn,
+ new BigInteger(160, new SecureRandom()),
+ notBefore.getTime(),
+ notOnOrAfter.getTime(),
+ dn,
[... 48 lines stripped ...]
More information about the commits
mailing list