From 7213eede8ccdbc665cf54ac471ce01c373a8aa1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20K=C3=B6rber?= Date: Sun, 6 Mar 2016 16:53:39 +0100 Subject: [PATCH] Add a convenience method to write CSR to an OutputStream --- .../java/org/shredzone/acme4j/util/CSRBuilder.java | 14 +++++++++++++- .../org/shredzone/acme4j/util/CSRBuilderTest.java | 9 +++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/acme4j-utils/src/main/java/org/shredzone/acme4j/util/CSRBuilder.java b/acme4j-utils/src/main/java/org/shredzone/acme4j/util/CSRBuilder.java index a320b96a..4d7da2c6 100644 --- a/acme4j-utils/src/main/java/org/shredzone/acme4j/util/CSRBuilder.java +++ b/acme4j-utils/src/main/java/org/shredzone/acme4j/util/CSRBuilder.java @@ -14,6 +14,8 @@ package org.shredzone.acme4j.util; import java.io.IOException; +import java.io.OutputStream; +import java.io.OutputStreamWriter; import java.io.Writer; import java.security.KeyPair; import java.security.PrivateKey; @@ -189,7 +191,7 @@ public class CSRBuilder { } /** - * Writes the signed certificate request to a file. + * Writes the signed certificate request to a {@link Writer}. * * @param w * {@link Writer} to write the PEM file to @@ -204,6 +206,16 @@ public class CSRBuilder { } } + /** + * Writes the signed certificate request to an {@link OutputStream}. + * + * @param out + * {@link OutputStream} to write the PEM file to + */ + public void write(OutputStream out) throws IOException { + write(new OutputStreamWriter(out, "utf-8")); + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); diff --git a/acme4j-utils/src/test/java/org/shredzone/acme4j/util/CSRBuilderTest.java b/acme4j-utils/src/test/java/org/shredzone/acme4j/util/CSRBuilderTest.java index 6b432042..1f4d71fa 100644 --- a/acme4j-utils/src/test/java/org/shredzone/acme4j/util/CSRBuilderTest.java +++ b/acme4j-utils/src/test/java/org/shredzone/acme4j/util/CSRBuilderTest.java @@ -16,6 +16,7 @@ package org.shredzone.acme4j.util; import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; +import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; @@ -180,6 +181,14 @@ public class CSRBuilderTest { // Verify that both keypairs are the same assertThat(builder.getCSR(), not(sameInstance(readCsr))); assertThat(builder.getEncoded(), is(equalTo(readCsr.getEncoded()))); + + // OutputStream is identical? + byte[] pemBytes; + try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) { + builder.write(baos); + pemBytes = baos.toByteArray(); + } + assertThat(new String(pemBytes, "utf-8"), is(equalTo(pem))); } /**