diff --git a/pgpainless-core/src/main/java/org/pgpainless/encryption_signing/EncryptionStream.java b/pgpainless-core/src/main/java/org/pgpainless/encryption_signing/EncryptionStream.java index d2a16e08..7af5a7b3 100644 --- a/pgpainless-core/src/main/java/org/pgpainless/encryption_signing/EncryptionStream.java +++ b/pgpainless-core/src/main/java/org/pgpainless/encryption_signing/EncryptionStream.java @@ -30,7 +30,6 @@ import org.pgpainless.algorithm.StreamEncoding; import org.pgpainless.algorithm.SymmetricKeyAlgorithm; import org.pgpainless.implementation.ImplementationFactory; import org.pgpainless.key.SubkeyIdentifier; -import org.pgpainless.util.ArmorUtils; import org.pgpainless.util.ArmoredOutputStreamFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -91,20 +90,6 @@ public final class EncryptionStream extends OutputStream { LOGGER.debug("Wrap encryption output in ASCII armor"); armorOutputStream = ArmoredOutputStreamFactory.get(outermostStream, options); - if (options.hasComment()) { - String[] commentLines = options.getComment().split("\n"); - for (String commentLine : commentLines) { - if (!commentLine.trim().isEmpty()) { - ArmorUtils.addCommentHeader(armorOutputStream, commentLine.trim()); - } - } - } - if (options.hasVersion()) { - String version = options.getVersion().trim(); - if (!version.isEmpty()) { - ArmorUtils.setVersionHeader(armorOutputStream, version); - } - } outermostStream = armorOutputStream; } diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/ArmoredOutputStreamFactory.java b/pgpainless-core/src/main/java/org/pgpainless/util/ArmoredOutputStreamFactory.java index fc3a0bea..269f8674 100644 --- a/pgpainless-core/src/main/java/org/pgpainless/util/ArmoredOutputStreamFactory.java +++ b/pgpainless-core/src/main/java/org/pgpainless/util/ArmoredOutputStreamFactory.java @@ -29,6 +29,18 @@ public final class ArmoredOutputStreamFactory { } + private static ArmoredOutputStream.Builder getBuilder() { + ArmoredOutputStream.Builder builder = ArmoredOutputStream.builder(); + builder.clearHeaders(); + if (version != null && !version.isEmpty()) { + builder.setVersion(version); + } + for (String comment : comment) { + builder.addComment(comment); + } + return builder; + } + /** * Wrap an {@link OutputStream} inside a preconfigured {@link ArmoredOutputStream}. * @@ -37,16 +49,7 @@ public final class ArmoredOutputStreamFactory { */ @Nonnull public static ArmoredOutputStream get(@Nonnull OutputStream outputStream) { - ArmoredOutputStream armoredOutputStream = new ArmoredOutputStream(outputStream); - armoredOutputStream.clearHeaders(); - if (version != null && !version.isEmpty()) { - armoredOutputStream.setHeader(ArmorUtils.HEADER_VERSION, version); - } - - for (String comment : comment) { - ArmorUtils.addCommentHeader(armoredOutputStream, comment); - } - return armoredOutputStream; + return getBuilder().build(outputStream); } /** @@ -58,13 +61,17 @@ public final class ArmoredOutputStreamFactory { */ @Nonnull public static ArmoredOutputStream get(@Nonnull OutputStream outputStream, @Nonnull ProducerOptions options) { + ArmoredOutputStream.Builder builder = getBuilder(); if (options.isHideArmorHeaders()) { - ArmoredOutputStream armorOut = new ArmoredOutputStream(outputStream); - armorOut.clearHeaders(); - return armorOut; - } else { - return get(outputStream); + builder.clearHeaders(); } + if (options.hasVersion()) { + builder.setVersion(options.getVersion()); + } + if (options.hasComment()) { + builder.setComment(options.getComment()); + } + return builder.build(outputStream); } /**