From ed92f321dd08da89ac947249a8833bd594eeec2d Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Tue, 13 May 2025 15:36:09 +0200 Subject: [PATCH] Generate-Key: Use new packet tags --- .../kotlin/org/pgpainless/sop/GenerateKeyImpl.kt | 5 +++-- .../main/kotlin/org/pgpainless/sop/MergeCertsImpl.kt | 3 +-- .../main/kotlin/org/pgpainless/sop/RevokeKeyImpl.kt | 12 ++++++------ .../operation/PGPainlessMergeCertsTest.java | 11 +++++++++++ 4 files changed, 21 insertions(+), 10 deletions(-) create mode 100644 pgpainless-sop/src/test/java/sop/testsuite/pgpainless/operation/PGPainlessMergeCertsTest.java diff --git a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/GenerateKeyImpl.kt b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/GenerateKeyImpl.kt index d343652d..841a12ae 100644 --- a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/GenerateKeyImpl.kt +++ b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/GenerateKeyImpl.kt @@ -8,6 +8,7 @@ import java.io.OutputStream import java.lang.RuntimeException import java.security.InvalidAlgorithmParameterException import java.security.NoSuchAlgorithmException +import org.bouncycastle.bcpg.PacketFormat import org.bouncycastle.openpgp.PGPException import org.bouncycastle.openpgp.api.OpenPGPKey import org.pgpainless.PGPainless @@ -49,10 +50,10 @@ class GenerateKeyImpl(private val api: PGPainless) : GenerateKey { return object : Ready() { override fun writeTo(outputStream: OutputStream) { if (armor) { - val armored = key.toAsciiArmoredString() + val armored = key.toAsciiArmoredString(PacketFormat.CURRENT) outputStream.write(armored.toByteArray()) } else { - key.pgpKeyRing.encode(outputStream) + outputStream.write(key.getEncoded(PacketFormat.CURRENT)) } } } diff --git a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/MergeCertsImpl.kt b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/MergeCertsImpl.kt index d0997041..13fd0065 100644 --- a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/MergeCertsImpl.kt +++ b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/MergeCertsImpl.kt @@ -7,7 +7,6 @@ package org.pgpainless.sop import java.io.InputStream import java.io.OutputStream import org.bouncycastle.bcpg.KeyIdentifier -import org.bouncycastle.bcpg.PacketFormat import org.bouncycastle.openpgp.api.OpenPGPCertificate import org.pgpainless.PGPainless import org.pgpainless.util.ArmoredOutputStreamFactory @@ -56,7 +55,7 @@ class MergeCertsImpl(private val api: PGPainless) : MergeCerts { // emit merged and updated base certs for (merged in baseCerts.values) { - out.write(merged.getEncoded(PacketFormat.CURRENT)) + out.write(merged.getEncoded()) } if (armor) { diff --git a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/RevokeKeyImpl.kt b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/RevokeKeyImpl.kt index 40b5103f..27717ec0 100644 --- a/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/RevokeKeyImpl.kt +++ b/pgpainless-sop/src/main/kotlin/org/pgpainless/sop/RevokeKeyImpl.kt @@ -7,9 +7,7 @@ package org.pgpainless.sop import java.io.IOException import java.io.InputStream import java.io.OutputStream -import java.lang.RuntimeException import org.bouncycastle.openpgp.PGPException -import org.bouncycastle.openpgp.PGPPublicKeyRingCollection import org.bouncycastle.openpgp.api.OpenPGPCertificate import org.pgpainless.PGPainless import org.pgpainless.bouncycastle.extensions.toOpenPGPCertificate @@ -68,14 +66,16 @@ class RevokeKeyImpl(private val api: PGPainless) : RevokeKey { return object : Ready() { override fun writeTo(outputStream: OutputStream) { - val collection = - PGPPublicKeyRingCollection(revocationCertificates.map { it.pgpPublicKeyRing }) if (armor) { val armorOut = ArmoredOutputStreamFactory.get(outputStream) - collection.encode(armorOut) + for (cert in revocationCertificates) { + armorOut.write(cert.getEncoded()) + } armorOut.close() } else { - collection.encode(outputStream) + for (cert in revocationCertificates) { + outputStream.write(cert.getEncoded()) + } } } } diff --git a/pgpainless-sop/src/test/java/sop/testsuite/pgpainless/operation/PGPainlessMergeCertsTest.java b/pgpainless-sop/src/test/java/sop/testsuite/pgpainless/operation/PGPainlessMergeCertsTest.java new file mode 100644 index 00000000..ba674c5a --- /dev/null +++ b/pgpainless-sop/src/test/java/sop/testsuite/pgpainless/operation/PGPainlessMergeCertsTest.java @@ -0,0 +1,11 @@ +// SPDX-FileCopyrightText: 2025 Paul Schaub +// +// SPDX-License-Identifier: Apache-2.0 + +package sop.testsuite.pgpainless.operation; + +import sop.testsuite.operation.MergeCertsTest; + +public class PGPainlessMergeCertsTest extends MergeCertsTest { + +}