1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2024-11-25 22:02:05 +01:00

Make use of new ArmoredOutputStream.Builder

This commit is contained in:
Paul Schaub 2023-08-01 16:53:55 +02:00
parent 8cdb7ee4e0
commit e167fa37f3
Signed by: vanitasvitae
GPG key ID: 62BEE9264BF17311
2 changed files with 22 additions and 30 deletions

View file

@ -30,7 +30,6 @@ import org.pgpainless.algorithm.StreamEncoding;
import org.pgpainless.algorithm.SymmetricKeyAlgorithm; import org.pgpainless.algorithm.SymmetricKeyAlgorithm;
import org.pgpainless.implementation.ImplementationFactory; import org.pgpainless.implementation.ImplementationFactory;
import org.pgpainless.key.SubkeyIdentifier; import org.pgpainless.key.SubkeyIdentifier;
import org.pgpainless.util.ArmorUtils;
import org.pgpainless.util.ArmoredOutputStreamFactory; import org.pgpainless.util.ArmoredOutputStreamFactory;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -91,20 +90,6 @@ public final class EncryptionStream extends OutputStream {
LOGGER.debug("Wrap encryption output in ASCII armor"); LOGGER.debug("Wrap encryption output in ASCII armor");
armorOutputStream = ArmoredOutputStreamFactory.get(outermostStream, options); 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; outermostStream = armorOutputStream;
} }

View file

@ -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}. * Wrap an {@link OutputStream} inside a preconfigured {@link ArmoredOutputStream}.
* *
@ -37,16 +49,7 @@ public final class ArmoredOutputStreamFactory {
*/ */
@Nonnull @Nonnull
public static ArmoredOutputStream get(@Nonnull OutputStream outputStream) { public static ArmoredOutputStream get(@Nonnull OutputStream outputStream) {
ArmoredOutputStream armoredOutputStream = new ArmoredOutputStream(outputStream); return getBuilder().build(outputStream);
armoredOutputStream.clearHeaders();
if (version != null && !version.isEmpty()) {
armoredOutputStream.setHeader(ArmorUtils.HEADER_VERSION, version);
}
for (String comment : comment) {
ArmorUtils.addCommentHeader(armoredOutputStream, comment);
}
return armoredOutputStream;
} }
/** /**
@ -58,13 +61,17 @@ public final class ArmoredOutputStreamFactory {
*/ */
@Nonnull @Nonnull
public static ArmoredOutputStream get(@Nonnull OutputStream outputStream, @Nonnull ProducerOptions options) { public static ArmoredOutputStream get(@Nonnull OutputStream outputStream, @Nonnull ProducerOptions options) {
ArmoredOutputStream.Builder builder = getBuilder();
if (options.isHideArmorHeaders()) { if (options.isHideArmorHeaders()) {
ArmoredOutputStream armorOut = new ArmoredOutputStream(outputStream); builder.clearHeaders();
armorOut.clearHeaders();
return armorOut;
} else {
return get(outputStream);
} }
if (options.hasVersion()) {
builder.setVersion(options.getVersion());
}
if (options.hasComment()) {
builder.setComment(options.getComment());
}
return builder.build(outputStream);
} }
/** /**