From 2270c69af7547f95677a4b39e140c111257153cd Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Mon, 16 Jun 2025 11:12:08 +0200 Subject: [PATCH] setPreferredAEADCiphersuites(): Add missing method taking PreferredAEADCiphersuites object --- .../signature/subpackets/SelfSignatureSubpackets.kt | 4 ++++ .../signature/subpackets/SignatureSubpackets.kt | 10 ++++++++-- .../signature/subpackets/SignatureSubpacketsHelper.kt | 6 +++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/pgpainless-core/src/main/kotlin/org/pgpainless/signature/subpackets/SelfSignatureSubpackets.kt b/pgpainless-core/src/main/kotlin/org/pgpainless/signature/subpackets/SelfSignatureSubpackets.kt index f15f0071..8619155c 100644 --- a/pgpainless-core/src/main/kotlin/org/pgpainless/signature/subpackets/SelfSignatureSubpackets.kt +++ b/pgpainless-core/src/main/kotlin/org/pgpainless/signature/subpackets/SelfSignatureSubpackets.kt @@ -121,6 +121,10 @@ interface SelfSignatureSubpackets : BaseSignatureSubpackets { algorithms: PreferredAEADCiphersuites.Builder? ): SelfSignatureSubpackets + fun setPreferredAEADCiphersuites( + preferredAEADCiphersuites: PreferredAEADCiphersuites? + ): SelfSignatureSubpackets + @Deprecated("Use of this subpacket is discouraged.") fun addRevocationKey(revocationKey: PGPPublicKey): SelfSignatureSubpackets diff --git a/pgpainless-core/src/main/kotlin/org/pgpainless/signature/subpackets/SignatureSubpackets.kt b/pgpainless-core/src/main/kotlin/org/pgpainless/signature/subpackets/SignatureSubpackets.kt index 8b831969..2a5ea016 100644 --- a/pgpainless-core/src/main/kotlin/org/pgpainless/signature/subpackets/SignatureSubpackets.kt +++ b/pgpainless-core/src/main/kotlin/org/pgpainless/signature/subpackets/SignatureSubpackets.kt @@ -281,9 +281,15 @@ class SignatureSubpackets( override fun setPreferredAEADCiphersuites( algorithms: PreferredAEADCiphersuites.Builder? - ): SignatureSubpackets = apply { + ): SignatureSubpackets = setPreferredAEADCiphersuites(algorithms?.build()) + + override fun setPreferredAEADCiphersuites( + preferredAEADCiphersuites: PreferredAEADCiphersuites? + ) = apply { subpacketsGenerator.removePacketsOfType(SignatureSubpacketTags.PREFERRED_AEAD_ALGORITHMS) - algorithms?.let { subpacketsGenerator.setPreferredAEADCiphersuites(algorithms) } + preferredAEADCiphersuites?.let { + subpacketsGenerator.setPreferredAEADCiphersuites(it.isCritical, it.rawAlgorithms) + } } override fun addRevocationKey(revocationKey: PGPPublicKey): SignatureSubpackets = apply { diff --git a/pgpainless-core/src/main/kotlin/org/pgpainless/signature/subpackets/SignatureSubpacketsHelper.kt b/pgpainless-core/src/main/kotlin/org/pgpainless/signature/subpackets/SignatureSubpacketsHelper.kt index ceb484d3..203b8e4f 100644 --- a/pgpainless-core/src/main/kotlin/org/pgpainless/signature/subpackets/SignatureSubpacketsHelper.kt +++ b/pgpainless-core/src/main/kotlin/org/pgpainless/signature/subpackets/SignatureSubpacketsHelper.kt @@ -61,6 +61,11 @@ class SignatureSubpacketsHelper { PreferredAlgorithms( it.type, it.isCritical, it.isLongLength, it.data)) } + SignatureSubpacket.preferredAEADAlgorithms -> + (subpacket as PreferredAEADCiphersuites).let { + subpackets.setPreferredAEADCiphersuites( + PreferredAEADCiphersuites(it.isCritical, it.rawAlgorithms)) + } SignatureSubpacket.revocationKey -> (subpacket as RevocationKey).let { subpackets.addRevocationKey( @@ -130,7 +135,6 @@ class SignatureSubpacketsHelper { SignatureSubpacket.keyServerPreferences, SignatureSubpacket.preferredKeyServers, SignatureSubpacket.placeholder, - SignatureSubpacket.preferredAEADAlgorithms, SignatureSubpacket.attestedCertification -> subpackets.addResidualSubpacket(subpacket) else -> subpackets.addResidualSubpacket(subpacket)