diff --git a/pgpainless-dump/build.gradle b/pgpainless-dump/build.gradle new file mode 100644 index 00000000..5faf158f --- /dev/null +++ b/pgpainless-dump/build.gradle @@ -0,0 +1,27 @@ +// SPDX-FileCopyrightText: 2022 Paul Schaub +// +// SPDX-License-Identifier: Apache-2.0 + +plugins { + id 'java-library' +} + +group 'org.pgpainless' + +repositories { + mavenCentral() +} + +dependencies { + testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion" + testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitVersion" + + // Logging + testImplementation "ch.qos.logback:logback-classic:$logbackVersion" + + implementation(project(":pgpainless-core")) +} + +test { + useJUnitPlatform() +} diff --git a/pgpainless-core/src/main/java/org/pgpainless/util/StreamDumper.java b/pgpainless-dump/src/main/java/org/pgpainless/dump/StreamDumper.java similarity index 98% rename from pgpainless-core/src/main/java/org/pgpainless/util/StreamDumper.java rename to pgpainless-dump/src/main/java/org/pgpainless/dump/StreamDumper.java index dbbedc92..34b216b0 100644 --- a/pgpainless-core/src/main/java/org/pgpainless/util/StreamDumper.java +++ b/pgpainless-dump/src/main/java/org/pgpainless/dump/StreamDumper.java @@ -1,8 +1,8 @@ -// SPDX-FileCopyrightText: 2021 Paul Schaub +// SPDX-FileCopyrightText: 2022 Paul Schaub // // SPDX-License-Identifier: Apache-2.0 -package org.pgpainless.util; +package org.pgpainless.dump; import java.io.IOException; import java.io.InputStream; @@ -68,6 +68,8 @@ import org.pgpainless.algorithm.StreamEncoding; import org.pgpainless.algorithm.SymmetricKeyAlgorithm; import org.pgpainless.key.util.RevocationAttributes; import org.pgpainless.signature.subpackets.KeyServerPreferences; +import org.pgpainless.util.CollectionUtils; +import org.pgpainless.util.DateUtil; public class StreamDumper { @@ -85,7 +87,8 @@ public class StreamDumper { } - public static void dump(InputStream inputStream, PGPSessionKey sessionKey, OutputStream outputStream) throws IOException, PGPException { + public static void dump(InputStream inputStream, PGPSessionKey sessionKey, OutputStream outputStream) + throws IOException, PGPException { PrintWriter printWriter = new PrintWriter(outputStream); PrintWriterWrapper pww = new PrintWriterWrapper(printWriter); @@ -94,16 +97,15 @@ public class StreamDumper { printWriter.flush(); } - private static void walkObjects(PrintWriterWrapper pww, PGPObjectFactory objectFactory, PGPSessionKey sessionKey) throws IOException, PGPException { + private static void walkObjects(PrintWriterWrapper pww, PGPObjectFactory objectFactory, PGPSessionKey sessionKey) + throws IOException, PGPException { Object next; while ((next = objectFactory.nextObject()) != null) { if (next instanceof PGPOnePassSignatureList) { PGPOnePassSignatureList onePassSignatures = (PGPOnePassSignatureList) next; - Iterator iterator = onePassSignatures.iterator(); - while (iterator.hasNext()) { - PGPOnePassSignature pgpOnePassSignature = iterator.next(); + for (PGPOnePassSignature pgpOnePassSignature : onePassSignatures) { pww.appendLine("One-Pass Signature Packet").iind() .appendLine("Type: " + SignatureType.valueOf(pgpOnePassSignature.getSignatureType())) .appendLine("Public Key Algorithm: " + PublicKeyAlgorithm.fromId(pgpOnePassSignature.getKeyAlgorithm())) @@ -276,7 +278,7 @@ public class StreamDumper { else if (next instanceof Packet) { Packet packet = (Packet) next; - pww.appendLine("Experimental Packet: " + packet.toString()); + pww.appendLine("Experimental Packet: " + packet); } /* diff --git a/pgpainless-dump/src/main/java/org/pgpainless/dump/package-info.java b/pgpainless-dump/src/main/java/org/pgpainless/dump/package-info.java new file mode 100644 index 00000000..a07d0dc0 --- /dev/null +++ b/pgpainless-dump/src/main/java/org/pgpainless/dump/package-info.java @@ -0,0 +1,8 @@ +// SPDX-FileCopyrightText: 2022 Paul Schaub +// +// SPDX-License-Identifier: Apache-2.0 + +/** + * OpenPGP Packet Dumper. + */ +package org.pgpainless.dump; diff --git a/pgpainless-core/src/test/java/org/pgpainless/util/StreamDumpTest.java b/pgpainless-dump/src/test/java/org/pgpainless/dump/StreamDumpTest.java similarity index 98% rename from pgpainless-core/src/test/java/org/pgpainless/util/StreamDumpTest.java rename to pgpainless-dump/src/test/java/org/pgpainless/dump/StreamDumpTest.java index ba315849..05bb2e62 100644 --- a/pgpainless-core/src/test/java/org/pgpainless/util/StreamDumpTest.java +++ b/pgpainless-dump/src/test/java/org/pgpainless/dump/StreamDumpTest.java @@ -1,8 +1,8 @@ -// SPDX-FileCopyrightText: 2021 Paul Schaub +// SPDX-FileCopyrightText: 2022 Paul Schaub // // SPDX-License-Identifier: Apache-2.0 -package org.pgpainless.util; +package org.pgpainless.dump; import java.io.ByteArrayInputStream; import java.io.IOException; diff --git a/settings.gradle b/settings.gradle index aea19392..35adb383 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,5 +6,6 @@ rootProject.name = 'PGPainless' include 'pgpainless-core', 'pgpainless-sop', - 'pgpainless-cli' + 'pgpainless-cli', + 'pgpainless-dump'