From 4e5eff611331a881633c47845768d2aecbeddba9 Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Thu, 15 May 2025 14:58:24 +0200 Subject: [PATCH] Test v6 key revocation --- .../org/pgpainless/sop/RevokeKeyTest.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 pgpainless-sop/src/test/java/org/pgpainless/sop/RevokeKeyTest.java diff --git a/pgpainless-sop/src/test/java/org/pgpainless/sop/RevokeKeyTest.java b/pgpainless-sop/src/test/java/org/pgpainless/sop/RevokeKeyTest.java new file mode 100644 index 00000000..0d77b952 --- /dev/null +++ b/pgpainless-sop/src/test/java/org/pgpainless/sop/RevokeKeyTest.java @@ -0,0 +1,44 @@ +// SPDX-FileCopyrightText: 2025 Paul Schaub +// +// SPDX-License-Identifier: Apache-2.0 + +package org.pgpainless.sop; + +import org.bouncycastle.openpgp.api.OpenPGPCertificate; +import org.bouncycastle.openpgp.api.OpenPGPKey; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.pgpainless.PGPainless; +import org.pgpainless.algorithm.OpenPGPKeyVersion; +import sop.SOP; + +import java.io.IOException; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class RevokeKeyTest { + + private static SOP sop; + + @BeforeAll + public static void setup() { + sop = new SOPImpl(); + } + + @Test + public void revokeV6CertResultsInMinimalRevCert() throws IOException { + PGPainless api = PGPainless.getInstance(); + OpenPGPKey v6Key = api.generateKey(OpenPGPKeyVersion.v6) + .modernKeyRing("Alice "); + assertEquals(3, v6Key.getKeys().size()); + + byte[] revoked = sop.revokeKey() + .keys(v6Key.getEncoded()) + .getBytes(); + + OpenPGPCertificate revocationCert = api.readKey().parseCertificate(revoked); + assertEquals(1, revocationCert.getKeys().size(), + "V6 keys are revoked using a minimal revocation cert," + + " consisting only of the primary key and a rev sig."); + } +}