From 6916d5f7bb1fc37a01e6b787fd08876843392bee Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Sun, 16 Mar 2025 22:07:58 +0100 Subject: [PATCH] Fix GenerateV6KeyTest.generateAEADProtectedModernKey() test --- .../key/generation/GenerateV6KeyTest.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/pgpainless-core/src/test/java/org/pgpainless/key/generation/GenerateV6KeyTest.java b/pgpainless-core/src/test/java/org/pgpainless/key/generation/GenerateV6KeyTest.java index 516c2bea..652afb33 100644 --- a/pgpainless-core/src/test/java/org/pgpainless/key/generation/GenerateV6KeyTest.java +++ b/pgpainless-core/src/test/java/org/pgpainless/key/generation/GenerateV6KeyTest.java @@ -4,6 +4,7 @@ package org.pgpainless.key.generation; +import org.bouncycastle.bcpg.SecretKeyPacket; import org.bouncycastle.bcpg.SignatureSubpacketTags; import org.bouncycastle.openpgp.PGPException; import org.bouncycastle.openpgp.api.OpenPGPCertificate; @@ -16,11 +17,14 @@ import org.pgpainless.algorithm.KeyFlag; import org.pgpainless.algorithm.OpenPGPKeyVersion; import org.pgpainless.algorithm.PublicKeyAlgorithm; import org.pgpainless.key.generation.type.rsa.RsaLength; +import org.pgpainless.key.protection.KeyRingProtectionSettings; +import org.pgpainless.policy.Policy; import java.io.IOException; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; public class GenerateV6KeyTest { @@ -133,7 +137,14 @@ public class GenerateV6KeyTest { @Test public void generateAEADProtectedModernKey() - throws IOException { + throws IOException, PGPException { + Policy oldPolicy = PGPainless.getInstance().getAlgorithmPolicy(); + + // Change Policy to use AEAD for secret key protection + PGPainless.getInstance().setAlgorithmPolicy( + oldPolicy.copy().withKeyProtectionSettings(KeyRingProtectionSettings.aead()).build() + ); + OpenPGPKey key = PGPainless.getInstance() .generateKey(OpenPGPKeyVersion.v6) .modernKeyRing("Alice ", "p455w0rd"); @@ -143,7 +154,13 @@ public class GenerateV6KeyTest { OpenPGPKey parsed = PGPainless.getInstance().readKey().parseKey(armored); OpenPGPKey.OpenPGPSecretKey primaryKey = key.getPrimarySecretKey(); + assertEquals(SecretKeyPacket.USAGE_AEAD, primaryKey.getPGPSecretKey().getS2KUsage()); + + OpenPGPKey.OpenPGPPrivateKey privateKey = primaryKey.unlock("p455w0rd".toCharArray()); + assertNotNull(privateKey); assertEquals(armored, parsed.toAsciiArmoredString()); + + PGPainless.getInstance().setAlgorithmPolicy(oldPolicy); } }