From 0cae63e449f3c9beed0be0021e7026683cdc64e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20K=C3=B6rber?= Date: Sat, 7 Jul 2018 18:03:27 +0200 Subject: [PATCH] Cleanup certificate writer --- .../acme4j/util/CertificateUtils.java | 34 ++++++------------- .../acme4j/util/CertificateUtilsTest.java | 6 ++++ 2 files changed, 17 insertions(+), 23 deletions(-) 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 359d9b9a..992b5d65 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 @@ -79,9 +79,7 @@ public final class CertificateUtils { * after use. */ public static void writeX509Certificate(X509Certificate cert, Writer w) throws IOException { - try (JcaPEMWriter jw = new JcaPEMWriter(w)) { - writeCertIfNotNull(jw, cert); - } + writeX509Certificates(w, cert); } /** @@ -101,12 +99,10 @@ public final class CertificateUtils { @Deprecated public static void writeX509CertificateChain(Writer w, X509Certificate cert, X509Certificate... chain) throws IOException { - try (JcaPEMWriter jw = new JcaPEMWriter(w)) { - writeCertIfNotNull(jw, cert); - for (X509Certificate c : chain) { - writeCertIfNotNull(jw, c); - } - } + X509Certificate[] certs = new X509Certificate[chain.length + 1]; + certs[0] = cert; + System.arraycopy(chain, 0, certs, 1, chain.length); + writeX509Certificates(w, certs); } /** @@ -122,20 +118,12 @@ public final class CertificateUtils { */ public static void writeX509Certificates(Writer w, X509Certificate... certs) throws IOException { - writeX509CertificateChain(w, null, certs); - } - - /** - * Writes an {@link X509Certificate} unless it is {@code null}. - * - * @param jw - * {@link JcaPEMWriter} to write to - * @param cert - * {@link X509Certificate} to write, or {@code null} - */ - private static void writeCertIfNotNull(JcaPEMWriter jw, X509Certificate cert) throws IOException { - if (cert != null) { - jw.writeObject(cert); + try (JcaPEMWriter jw = new JcaPEMWriter(w)) { + for (X509Certificate c : certs) { + if (c != null) { + jw.writeObject(c); + } + } } } 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 223bb80b..b1ed8616 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 @@ -113,6 +113,12 @@ public class CertificateUtilsTest { } assertThat(countCertificates(out), is(3)); + try (StringWriter w = new StringWriter()) { + CertificateUtils.writeX509Certificates(w); + out = w.toString(); + } + assertThat(countCertificates(out), is(0)); + try (StringWriter w = new StringWriter()) { CertificateUtils.writeX509Certificates(w, leaf); out = w.toString();