diff --git a/pgpainless-core/src/main/java/org/pgpainless/key/collection/PGPKeyRingCollection.java b/pgpainless-core/src/main/java/org/pgpainless/key/collection/PGPKeyRingCollection.java index 76c578f9..0cc9fccd 100644 --- a/pgpainless-core/src/main/java/org/pgpainless/key/collection/PGPKeyRingCollection.java +++ b/pgpainless-core/src/main/java/org/pgpainless/key/collection/PGPKeyRingCollection.java @@ -15,6 +15,7 @@ */ package org.pgpainless.key.collection; +import org.bouncycastle.bcpg.MarkerPacket; import org.bouncycastle.openpgp.PGPException; import org.bouncycastle.openpgp.PGPKeyRing; import org.bouncycastle.openpgp.PGPObjectFactory; @@ -64,6 +65,10 @@ public class PGPKeyRingCollection { List publicKeyRings = new ArrayList<>(); while ((obj = pgpFact.nextObject()) != null) { + if (obj instanceof MarkerPacket) { + // Skip marker packets + continue; + } if (obj instanceof PGPSecretKeyRing) { secretKeyRings.add((PGPSecretKeyRing) obj); } else if (obj instanceof PGPPublicKeyRing) { diff --git a/pgpainless-sop/src/main/java/org/pgpainless/sop/SopKeyUtil.java b/pgpainless-sop/src/main/java/org/pgpainless/sop/SopKeyUtil.java index 786e8a95..8fe5337a 100644 --- a/pgpainless-sop/src/main/java/org/pgpainless/sop/SopKeyUtil.java +++ b/pgpainless-sop/src/main/java/org/pgpainless/sop/SopKeyUtil.java @@ -48,7 +48,9 @@ public class SopKeyUtil { List publicKeyRings = new ArrayList<>(); for (File file : files) { try (FileInputStream in = new FileInputStream(file)) { - PGPPublicKeyRingCollection collection = PGPainless.readKeyRing().publicKeyRingCollection(in); + PGPPublicKeyRingCollection collection = PGPainless.readKeyRing() + .keyRingCollection(in, true) + .getPgpPublicKeyRingCollection(); for (PGPPublicKeyRing keyRing : collection) { publicKeyRings.add(keyRing); }