Cleanup certificate writer

acmev1
Richard Körber 2018-07-07 18:03:27 +02:00
parent 8d78553659
commit 0cae63e449
No known key found for this signature in database
GPG Key ID: AAB9FD19C78AA3E0
2 changed files with 17 additions and 23 deletions

View File

@ -79,9 +79,7 @@ public final class CertificateUtils {
* after use. * after use.
*/ */
public static void writeX509Certificate(X509Certificate cert, Writer w) throws IOException { public static void writeX509Certificate(X509Certificate cert, Writer w) throws IOException {
try (JcaPEMWriter jw = new JcaPEMWriter(w)) { writeX509Certificates(w, cert);
writeCertIfNotNull(jw, cert);
}
} }
/** /**
@ -101,12 +99,10 @@ public final class CertificateUtils {
@Deprecated @Deprecated
public static void writeX509CertificateChain(Writer w, X509Certificate cert, X509Certificate... chain) public static void writeX509CertificateChain(Writer w, X509Certificate cert, X509Certificate... chain)
throws IOException { throws IOException {
try (JcaPEMWriter jw = new JcaPEMWriter(w)) { X509Certificate[] certs = new X509Certificate[chain.length + 1];
writeCertIfNotNull(jw, cert); certs[0] = cert;
for (X509Certificate c : chain) { System.arraycopy(chain, 0, certs, 1, chain.length);
writeCertIfNotNull(jw, c); writeX509Certificates(w, certs);
}
}
} }
/** /**
@ -122,20 +118,12 @@ public final class CertificateUtils {
*/ */
public static void writeX509Certificates(Writer w, X509Certificate... certs) public static void writeX509Certificates(Writer w, X509Certificate... certs)
throws IOException { throws IOException {
writeX509CertificateChain(w, null, certs); try (JcaPEMWriter jw = new JcaPEMWriter(w)) {
} for (X509Certificate c : certs) {
if (c != null) {
/** jw.writeObject(c);
* 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);
} }
} }

View File

@ -113,6 +113,12 @@ public class CertificateUtilsTest {
} }
assertThat(countCertificates(out), is(3)); 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()) { try (StringWriter w = new StringWriter()) {
CertificateUtils.writeX509Certificates(w, leaf); CertificateUtils.writeX509Certificates(w, leaf);
out = w.toString(); out = w.toString();