From d6d52cd54432a5ea256f37374cd3be7cf9353cad Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Mon, 17 Mar 2025 16:29:19 +0100 Subject: [PATCH] Code cleanup --- .../main/kotlin/org/pgpainless/PGPainless.kt | 7 ++++-- .../secretkeyring/SecretKeyRingEditor.kt | 22 ++++++++++--------- .../modification/ChangeExpirationTest.java | 1 - 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/pgpainless-core/src/main/kotlin/org/pgpainless/PGPainless.kt b/pgpainless-core/src/main/kotlin/org/pgpainless/PGPainless.kt index 7cfb7ed2..6d77c158 100644 --- a/pgpainless-core/src/main/kotlin/org/pgpainless/PGPainless.kt +++ b/pgpainless-core/src/main/kotlin/org/pgpainless/PGPainless.kt @@ -206,8 +206,11 @@ class PGPainless( */ @JvmStatic @JvmOverloads - fun modifyKeyRing(secretKey: PGPSecretKeyRing, referenceTime: Date = Date()) = - SecretKeyRingEditor(secretKey, referenceTime) + fun modifyKeyRing( + secretKey: PGPSecretKeyRing, + referenceTime: Date = Date(), + policy: Policy = getInstance().algorithmPolicy + ) = SecretKeyRingEditor(secretKey, policy, referenceTime) /** * Quickly access information about a [org.bouncycastle.openpgp.PGPPublicKeyRing] / diff --git a/pgpainless-core/src/main/kotlin/org/pgpainless/key/modification/secretkeyring/SecretKeyRingEditor.kt b/pgpainless-core/src/main/kotlin/org/pgpainless/key/modification/secretkeyring/SecretKeyRingEditor.kt index 7d247b53..46522993 100644 --- a/pgpainless-core/src/main/kotlin/org/pgpainless/key/modification/secretkeyring/SecretKeyRingEditor.kt +++ b/pgpainless-core/src/main/kotlin/org/pgpainless/key/modification/secretkeyring/SecretKeyRingEditor.kt @@ -39,21 +39,26 @@ import org.pgpainless.key.util.KeyRingUtils import org.pgpainless.key.util.KeyRingUtils.Companion.changePassphrase import org.pgpainless.key.util.KeyRingUtils.Companion.injectCertification import org.pgpainless.key.util.RevocationAttributes +import org.pgpainless.policy.Policy import org.pgpainless.signature.builder.* import org.pgpainless.signature.subpackets.* import org.pgpainless.util.Passphrase import org.pgpainless.util.selection.userid.SelectUserId -class SecretKeyRingEditor(var key: OpenPGPKey, override val referenceTime: Date = Date()) : - SecretKeyRingEditorInterface { +class SecretKeyRingEditor( + var key: OpenPGPKey, + val policy: Policy = PGPainless.getInstance().algorithmPolicy, + override val referenceTime: Date = Date() +) : SecretKeyRingEditorInterface { private var secretKeyRing: PGPSecretKeyRing = key.pgpSecretKeyRing @JvmOverloads constructor( secretKeyRing: PGPSecretKeyRing, + policy: Policy = PGPainless.getInstance().algorithmPolicy, referenceTime: Date = Date() - ) : this(PGPainless.getInstance().toKey(secretKeyRing), referenceTime) + ) : this(PGPainless.getInstance().toKey(secretKeyRing), policy, referenceTime) override fun addUserId( userId: CharSequence, @@ -293,17 +298,14 @@ class SecretKeyRingEditor(var key: OpenPGPKey, override val referenceTime: Date SignatureSubpacketsUtil.assureKeyCanCarryFlags(subkeyAlgorithm) val bitStrength = subkey.publicKey.bitStrength - require( - PGPainless.getPolicy() - .publicKeyAlgorithmPolicy - .isAcceptable(subkeyAlgorithm, bitStrength)) { - "Public key algorithm policy violation: $subkeyAlgorithm with bit strength $bitStrength is not acceptable." - } + require(policy.publicKeyAlgorithmPolicy.isAcceptable(subkeyAlgorithm, bitStrength)) { + "Public key algorithm policy violation: $subkeyAlgorithm with bit strength $bitStrength is not acceptable." + } val primaryKey = secretKeyRing.secretKey val info = inspectKeyRing(secretKeyRing, referenceTime) val hashAlgorithm = - HashAlgorithmNegotiator.negotiateSignatureHashAlgorithm(PGPainless.getPolicy()) + HashAlgorithmNegotiator.negotiateSignatureHashAlgorithm(policy) .negotiateHashAlgorithm(info.preferredHashAlgorithms) var secretSubkey = diff --git a/pgpainless-core/src/test/java/org/pgpainless/key/modification/ChangeExpirationTest.java b/pgpainless-core/src/test/java/org/pgpainless/key/modification/ChangeExpirationTest.java index 6c0db287..7ddb2a27 100644 --- a/pgpainless-core/src/test/java/org/pgpainless/key/modification/ChangeExpirationTest.java +++ b/pgpainless-core/src/test/java/org/pgpainless/key/modification/ChangeExpirationTest.java @@ -35,7 +35,6 @@ public class ChangeExpirationTest { @ExtendWith(TestAllImplementations.class) public void setExpirationDateAndThenUnsetIt_OnPrimaryKey() throws PGPException, IOException { - PGPSecretKeyRing secretKeys = TestKeys.getEmilSecretKeyRing(); KeyRingInfo sInfo = PGPainless.inspectKeyRing(secretKeys);