1
0
Fork 0
mirror of https://github.com/pgpainless/pgpainless.git synced 2025-09-09 18:29:39 +02:00

Generate-Key: Use new packet tags

This commit is contained in:
Paul Schaub 2025-05-13 15:36:09 +02:00
parent 963e442b3c
commit e552255aa6
Signed by: vanitasvitae
GPG key ID: 62BEE9264BF17311
4 changed files with 21 additions and 10 deletions

View file

@ -8,6 +8,7 @@ import java.io.OutputStream
import java.lang.RuntimeException import java.lang.RuntimeException
import java.security.InvalidAlgorithmParameterException import java.security.InvalidAlgorithmParameterException
import java.security.NoSuchAlgorithmException import java.security.NoSuchAlgorithmException
import org.bouncycastle.bcpg.PacketFormat
import org.bouncycastle.openpgp.PGPException import org.bouncycastle.openpgp.PGPException
import org.bouncycastle.openpgp.api.OpenPGPKey import org.bouncycastle.openpgp.api.OpenPGPKey
import org.pgpainless.PGPainless import org.pgpainless.PGPainless
@ -49,10 +50,10 @@ class GenerateKeyImpl(private val api: PGPainless) : GenerateKey {
return object : Ready() { return object : Ready() {
override fun writeTo(outputStream: OutputStream) { override fun writeTo(outputStream: OutputStream) {
if (armor) { if (armor) {
val armored = key.toAsciiArmoredString() val armored = key.toAsciiArmoredString(PacketFormat.CURRENT)
outputStream.write(armored.toByteArray()) outputStream.write(armored.toByteArray())
} else { } else {
key.pgpKeyRing.encode(outputStream) outputStream.write(key.getEncoded(PacketFormat.CURRENT))
} }
} }
} }

View file

@ -7,7 +7,6 @@ package org.pgpainless.sop
import java.io.InputStream import java.io.InputStream
import java.io.OutputStream import java.io.OutputStream
import org.bouncycastle.bcpg.KeyIdentifier import org.bouncycastle.bcpg.KeyIdentifier
import org.bouncycastle.bcpg.PacketFormat
import org.bouncycastle.openpgp.api.OpenPGPCertificate import org.bouncycastle.openpgp.api.OpenPGPCertificate
import org.pgpainless.PGPainless import org.pgpainless.PGPainless
import org.pgpainless.util.ArmoredOutputStreamFactory import org.pgpainless.util.ArmoredOutputStreamFactory
@ -56,7 +55,7 @@ class MergeCertsImpl(private val api: PGPainless) : MergeCerts {
// emit merged and updated base certs // emit merged and updated base certs
for (merged in baseCerts.values) { for (merged in baseCerts.values) {
out.write(merged.getEncoded(PacketFormat.CURRENT)) out.write(merged.getEncoded())
} }
if (armor) { if (armor) {

View file

@ -7,9 +7,7 @@ package org.pgpainless.sop
import java.io.IOException import java.io.IOException
import java.io.InputStream import java.io.InputStream
import java.io.OutputStream import java.io.OutputStream
import java.lang.RuntimeException
import org.bouncycastle.openpgp.PGPException import org.bouncycastle.openpgp.PGPException
import org.bouncycastle.openpgp.PGPPublicKeyRingCollection
import org.bouncycastle.openpgp.api.OpenPGPCertificate import org.bouncycastle.openpgp.api.OpenPGPCertificate
import org.pgpainless.PGPainless import org.pgpainless.PGPainless
import org.pgpainless.bouncycastle.extensions.toOpenPGPCertificate import org.pgpainless.bouncycastle.extensions.toOpenPGPCertificate
@ -68,14 +66,16 @@ class RevokeKeyImpl(private val api: PGPainless) : RevokeKey {
return object : Ready() { return object : Ready() {
override fun writeTo(outputStream: OutputStream) { override fun writeTo(outputStream: OutputStream) {
val collection =
PGPPublicKeyRingCollection(revocationCertificates.map { it.pgpPublicKeyRing })
if (armor) { if (armor) {
val armorOut = ArmoredOutputStreamFactory.get(outputStream) val armorOut = ArmoredOutputStreamFactory.get(outputStream)
collection.encode(armorOut) for (cert in revocationCertificates) {
armorOut.write(cert.getEncoded())
}
armorOut.close() armorOut.close()
} else { } else {
collection.encode(outputStream) for (cert in revocationCertificates) {
outputStream.write(cert.getEncoded())
}
} }
} }
} }

View file

@ -0,0 +1,11 @@
// SPDX-FileCopyrightText: 2025 Paul Schaub <vanitasvitae@fsfe.org>
//
// SPDX-License-Identifier: Apache-2.0
package sop.testsuite.pgpainless.operation;
import sop.testsuite.operation.MergeCertsTest;
public class PGPainlessMergeCertsTest extends MergeCertsTest {
}