mirror of https://github.com/shred/acme4j
Use constants for PEM labels
parent
fdc05ba70b
commit
231198992a
|
@ -110,7 +110,7 @@ public class Certificate extends AcmeResource {
|
|||
public void writeCertificate(Writer out) throws IOException {
|
||||
try {
|
||||
for (X509Certificate cert : getCertificateChain()) {
|
||||
AcmeUtils.writeToPem(cert.getEncoded(), "CERTIFICATE", out);
|
||||
AcmeUtils.writeToPem(cert.getEncoded(), AcmeUtils.PemLabel.CERTIFICATE, out);
|
||||
}
|
||||
} catch (CertificateEncodingException ex) {
|
||||
throw new IOException("Encoding error", ex);
|
||||
|
|
|
@ -55,6 +55,27 @@ public final class AcmeUtils {
|
|||
|
||||
private static final Base64.Encoder PEM_ENCODER = Base64.getMimeEncoder(64, "\n".getBytes());
|
||||
|
||||
/**
|
||||
* Enumeration of PEM labels.
|
||||
*/
|
||||
public enum PemLabel {
|
||||
CERTIFICATE("CERTIFICATE"),
|
||||
CERTIFICATE_REQUEST("CERTIFICATE REQUEST"),
|
||||
PRIVATE_KEY("PRIVATE KEY"),
|
||||
PUBLIC_KEY("PUBLIC KEY");
|
||||
|
||||
private final String label;
|
||||
|
||||
PemLabel(String label) {
|
||||
this.label = label;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return label;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private AcmeUtils() {
|
||||
// Utility class without constructor
|
||||
|
@ -242,14 +263,14 @@ public final class AcmeUtils {
|
|||
* @param encoded
|
||||
* Encoded data to write
|
||||
* @param label
|
||||
* PEM label, e.g. "CERTIFICATE"
|
||||
* {@link PemLabel} to be used
|
||||
* @param out
|
||||
* {@link Writer} to write to. It will not be closed after use!
|
||||
*/
|
||||
public static void writeToPem(byte[] encoded, String label, Writer out) throws IOException {
|
||||
out.append("-----BEGIN ").append(label).append("-----\n");
|
||||
public static void writeToPem(byte[] encoded, PemLabel label, Writer out) throws IOException {
|
||||
out.append("-----BEGIN ").append(label.toString()).append("-----\n");
|
||||
out.append(new String(PEM_ENCODER.encode(encoded)));
|
||||
out.append("\n-----END ").append(label).append("-----\n");
|
||||
out.append("\n-----END ").append(label.toString()).append("-----\n");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -802,7 +802,7 @@ public class DefaultConnectionTest {
|
|||
for (X509Certificate cert : TestUtils.createCertificate()) {
|
||||
byte[] badCert = cert.getEncoded();
|
||||
Arrays.sort(badCert); // break it
|
||||
AcmeUtils.writeToPem(badCert, "CERTIFICATE", w);
|
||||
AcmeUtils.writeToPem(badCert, AcmeUtils.PemLabel.CERTIFICATE, w);
|
||||
}
|
||||
w.flush();
|
||||
brokenPem = baos.toByteArray();
|
||||
|
|
|
@ -270,7 +270,7 @@ public class AcmeUtilsTest {
|
|||
ByteArrayOutputStream pemFile = new ByteArrayOutputStream();
|
||||
try (Writer w = new OutputStreamWriter(pemFile)) {
|
||||
for (X509Certificate cert : certChain) {
|
||||
AcmeUtils.writeToPem(cert.getEncoded(), "CERTIFICATE", w);
|
||||
AcmeUtils.writeToPem(cert.getEncoded(), AcmeUtils.PemLabel.CERTIFICATE, w);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -379,7 +379,7 @@ public class ClientTest {
|
|||
// Create a validation certificate
|
||||
try (FileWriter fw = new FileWriter("tlssni.crt")) {
|
||||
X509Certificate cert = CertificateUtils.createTlsSni02Certificate(domainKeyPair, subject, sanB);
|
||||
AcmeUtils.writeToPem(cert.getEncoded(), "CERTIFICATE", fw);
|
||||
AcmeUtils.writeToPem(cert.getEncoded(), AcmeUtils.PemLabel.CERTIFICATE, fw);
|
||||
} catch (IOException | CertificateEncodingException ex) {
|
||||
throw new AcmeException("Could not write certificate", ex);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue