diff --git a/acme4j-client/src/test/java/org/shredzone/acme4j/AuthorizationTest.java b/acme4j-client/src/test/java/org/shredzone/acme4j/AuthorizationTest.java index 1f218a11..b3fec57e 100644 --- a/acme4j-client/src/test/java/org/shredzone/acme4j/AuthorizationTest.java +++ b/acme4j-client/src/test/java/org/shredzone/acme4j/AuthorizationTest.java @@ -68,7 +68,6 @@ public class AuthorizationTest { * combinations. */ @Test - @SuppressWarnings("unchecked") public void testFindCombination() throws IOException { Authorization authorization = createChallengeAuthorization(); diff --git a/acme4j-utils/src/main/java/org/shredzone/acme4j/util/CertificateUtils.java b/acme4j-utils/src/main/java/org/shredzone/acme4j/util/CertificateUtils.java index a2076959..359d9b9a 100644 --- a/acme4j-utils/src/main/java/org/shredzone/acme4j/util/CertificateUtils.java +++ b/acme4j-utils/src/main/java/org/shredzone/acme4j/util/CertificateUtils.java @@ -13,31 +13,18 @@ */ package org.shredzone.acme4j.util; -import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; -import java.math.BigInteger; -import java.security.KeyPair; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; -import java.time.Duration; -import java.time.Instant; -import java.util.Date; -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.cert.jcajce.JcaX509v3CertificateBuilder; import org.bouncycastle.openssl.PEMParser; import org.bouncycastle.openssl.jcajce.JcaPEMWriter; -import org.bouncycastle.operator.OperatorCreationException; -import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder; import org.bouncycastle.pkcs.PKCS10CertificationRequest; import org.shredzone.acme4j.Certificate; @@ -170,46 +157,4 @@ public final class CertificateUtils { } } - /** - * Creates a generic self-signed challenge {@link X509Certificate}. The certificate is - * valid for 7 days. - * - * @param keypair - * A domain {@link KeyPair} to be used for the challenge - * @param subject - * Subjects to create a certificate for - * @return Created certificate - */ - private static X509Certificate createCertificate(KeyPair keypair, String... subject) throws IOException { - final long now = System.currentTimeMillis(); - final String signatureAlg = "SHA256withRSA"; - - try { - X500Name issuer = new X500Name("CN=acme.invalid"); - BigInteger serial = BigInteger.valueOf(now); - Instant notBefore = Instant.ofEpochMilli(now); - Instant notAfter = notBefore.plus(Duration.ofDays(7)); - - JcaX509v3CertificateBuilder certBuilder = new JcaX509v3CertificateBuilder( - issuer, serial, Date.from(notBefore), Date.from(notAfter), - issuer, keypair.getPublic()); - - GeneralName[] gns = new GeneralName[subject.length]; - for (int ix = 0; ix < subject.length; ix++) { - gns[ix] = new GeneralName(GeneralName.dNSName, subject[ix]); - } - - certBuilder.addExtension(Extension.subjectAlternativeName, false, new GeneralNames(gns)); - - JcaContentSignerBuilder signerBuilder = new JcaContentSignerBuilder(signatureAlg); - - byte[] cert = certBuilder.build(signerBuilder.build(keypair.getPrivate())).getEncoded(); - - CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); - return (X509Certificate) certificateFactory.generateCertificate(new ByteArrayInputStream(cert)); - } catch (CertificateException | OperatorCreationException ex) { - throw new IOException(ex); - } - } - } diff --git a/acme4j-utils/src/test/java/org/shredzone/acme4j/util/CertificateUtilsTest.java b/acme4j-utils/src/test/java/org/shredzone/acme4j/util/CertificateUtilsTest.java index d007e789..223bb80b 100644 --- a/acme4j-utils/src/test/java/org/shredzone/acme4j/util/CertificateUtilsTest.java +++ b/acme4j-utils/src/test/java/org/shredzone/acme4j/util/CertificateUtilsTest.java @@ -26,13 +26,8 @@ import java.lang.reflect.Modifier; import java.security.KeyPair; import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; -import java.security.cert.CertificateParsingException; import java.security.cert.X509Certificate; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.bouncycastle.asn1.x509.GeneralName; import org.bouncycastle.pkcs.PKCS10CertificationRequest; import org.junit.Before; import org.junit.Test; @@ -204,23 +199,4 @@ public class CertificateUtilsTest { return count; } - /** - * Extracts all DNSName SANs from a certificate. - * - * @param cert - * {@link X509Certificate} - * @return Set of DNSName - */ - private Set getSANs(X509Certificate cert) throws CertificateParsingException { - Set result = new HashSet<>(); - - for (List list : cert.getSubjectAlternativeNames()) { - if (((Number) list.get(0)).intValue() == GeneralName.dNSName) { - result.add((String) list.get(1)); - } - } - - return result; - } - }