mirror of https://github.com/shred/acme4j
Remove unused code
parent
d6b4a43847
commit
8d78553659
|
@ -68,7 +68,6 @@ public class AuthorizationTest {
|
||||||
* combinations.
|
* combinations.
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public void testFindCombination() throws IOException {
|
public void testFindCombination() throws IOException {
|
||||||
Authorization authorization = createChallengeAuthorization();
|
Authorization authorization = createChallengeAuthorization();
|
||||||
|
|
||||||
|
|
|
@ -13,31 +13,18 @@
|
||||||
*/
|
*/
|
||||||
package org.shredzone.acme4j.util;
|
package org.shredzone.acme4j.util;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.io.OutputStreamWriter;
|
import java.io.OutputStreamWriter;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
import java.math.BigInteger;
|
|
||||||
import java.security.KeyPair;
|
|
||||||
import java.security.cert.CertificateException;
|
import java.security.cert.CertificateException;
|
||||||
import java.security.cert.CertificateFactory;
|
import java.security.cert.CertificateFactory;
|
||||||
import java.security.cert.X509Certificate;
|
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.PEMParser;
|
||||||
import org.bouncycastle.openssl.jcajce.JcaPEMWriter;
|
import org.bouncycastle.openssl.jcajce.JcaPEMWriter;
|
||||||
import org.bouncycastle.operator.OperatorCreationException;
|
|
||||||
import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder;
|
|
||||||
import org.bouncycastle.pkcs.PKCS10CertificationRequest;
|
import org.bouncycastle.pkcs.PKCS10CertificationRequest;
|
||||||
import org.shredzone.acme4j.Certificate;
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,13 +26,8 @@ import java.lang.reflect.Modifier;
|
||||||
import java.security.KeyPair;
|
import java.security.KeyPair;
|
||||||
import java.security.cert.CertificateException;
|
import java.security.cert.CertificateException;
|
||||||
import java.security.cert.CertificateFactory;
|
import java.security.cert.CertificateFactory;
|
||||||
import java.security.cert.CertificateParsingException;
|
|
||||||
import java.security.cert.X509Certificate;
|
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.bouncycastle.pkcs.PKCS10CertificationRequest;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -204,23 +199,4 @@ public class CertificateUtilsTest {
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Extracts all DNSName SANs from a certificate.
|
|
||||||
*
|
|
||||||
* @param cert
|
|
||||||
* {@link X509Certificate}
|
|
||||||
* @return Set of DNSName
|
|
||||||
*/
|
|
||||||
private Set<String> getSANs(X509Certificate cert) throws CertificateParsingException {
|
|
||||||
Set<String> result = new HashSet<>();
|
|
||||||
|
|
||||||
for (List<?> list : cert.getSubjectAlternativeNames()) {
|
|
||||||
if (((Number) list.get(0)).intValue() == GeneralName.dNSName) {
|
|
||||||
result.add((String) list.get(1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue