From 398c84518b669880db6fda4232b84c1349223156 Mon Sep 17 00:00:00 2001 From: Paul Schaub Date: Wed, 7 Aug 2024 15:43:38 +0200 Subject: [PATCH] Implement recoverSessionKey(pkesk, encData) in AbstractPublicKeyDataDecryptorFactory --- .../AbstractPublicKeyDataDecryptorFactory.java | 9 +++++++++ .../bc/BcPublicKeyDataDecryptorFactory.java | 7 ------- ...cePublicKeyDataDecryptorFactoryBuilder.java | 18 ------------------ 3 files changed, 9 insertions(+), 25 deletions(-) diff --git a/pg/src/main/java/org/bouncycastle/openpgp/operator/AbstractPublicKeyDataDecryptorFactory.java b/pg/src/main/java/org/bouncycastle/openpgp/operator/AbstractPublicKeyDataDecryptorFactory.java index 6d9136a72f..1646a90ea2 100644 --- a/pg/src/main/java/org/bouncycastle/openpgp/operator/AbstractPublicKeyDataDecryptorFactory.java +++ b/pg/src/main/java/org/bouncycastle/openpgp/operator/AbstractPublicKeyDataDecryptorFactory.java @@ -13,6 +13,15 @@ public abstract class AbstractPublicKeyDataDecryptorFactory implements PublicKeyDataDecryptorFactory { + @Override + public final byte[] recoverSessionData(PublicKeyEncSessionPacket pkesk, InputStreamPacket encData) + throws PGPException + { + byte[] sessionData = recoverSessionData(pkesk.getAlgorithm(), pkesk.getEncSessionKey(), pkesk.getVersion()); + return prependSKAlgorithmToSessionData(pkesk, encData, sessionData); + } + + protected byte[] prependSKAlgorithmToSessionData(PublicKeyEncSessionPacket pkesk, InputStreamPacket encData, byte[] decryptedSessionData) diff --git a/pg/src/main/java/org/bouncycastle/openpgp/operator/bc/BcPublicKeyDataDecryptorFactory.java b/pg/src/main/java/org/bouncycastle/openpgp/operator/bc/BcPublicKeyDataDecryptorFactory.java index 4e466c5744..5ce728f7be 100644 --- a/pg/src/main/java/org/bouncycastle/openpgp/operator/bc/BcPublicKeyDataDecryptorFactory.java +++ b/pg/src/main/java/org/bouncycastle/openpgp/operator/bc/BcPublicKeyDataDecryptorFactory.java @@ -56,13 +56,6 @@ public BcPublicKeyDataDecryptorFactory(PGPPrivateKey pgpPrivKey) this.pgpPrivKey = pgpPrivKey; } - public byte[] recoverSessionData(PublicKeyEncSessionPacket pkesk, InputStreamPacket encData) - throws PGPException - { - byte[] sessionData = recoverSessionData(pkesk.getAlgorithm(), pkesk.getEncSessionKey(), pkesk.getVersion()); - return prependSKAlgorithmToSessionData(pkesk, encData, sessionData); - } - @Override public byte[] recoverSessionData(int keyAlgorithm, byte[][] secKeyData, int pkeskVersion) throws PGPException diff --git a/pg/src/main/java/org/bouncycastle/openpgp/operator/jcajce/JcePublicKeyDataDecryptorFactoryBuilder.java b/pg/src/main/java/org/bouncycastle/openpgp/operator/jcajce/JcePublicKeyDataDecryptorFactoryBuilder.java index 353dea622f..97cd99be06 100644 --- a/pg/src/main/java/org/bouncycastle/openpgp/operator/jcajce/JcePublicKeyDataDecryptorFactoryBuilder.java +++ b/pg/src/main/java/org/bouncycastle/openpgp/operator/jcajce/JcePublicKeyDataDecryptorFactoryBuilder.java @@ -24,9 +24,7 @@ import org.bouncycastle.asn1.x9.X9ECParametersHolder; import org.bouncycastle.bcpg.AEADEncDataPacket; import org.bouncycastle.bcpg.ECDHPublicBCPGKey; -import org.bouncycastle.bcpg.InputStreamPacket; import org.bouncycastle.bcpg.PublicKeyAlgorithmTags; -import org.bouncycastle.bcpg.PublicKeyEncSessionPacket; import org.bouncycastle.bcpg.PublicKeyPacket; import org.bouncycastle.bcpg.SymmetricEncIntegrityPacket; import org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags; @@ -134,14 +132,6 @@ public PublicKeyDataDecryptorFactory build(final PrivateKey privKey) { final int expectedPayLoadSize = getExpectedPayloadSize(privKey); - @Override - public byte[] recoverSessionData(PublicKeyEncSessionPacket pkesk, InputStreamPacket encData) - throws PGPException - { - byte[] sessionData = recoverSessionData(pkesk.getAlgorithm(), pkesk.getEncSessionKey(), pkesk.getVersion()); - return prependSKAlgorithmToSessionData(pkesk, encData, sessionData); - } - @Override public byte[] recoverSessionData(int keyAlgorithm, byte[][] secKeyData, int pkeskVersion) throws PGPException @@ -183,14 +173,6 @@ public PublicKeyDataDecryptorFactory build(final PGPPrivateKey privKey) { return new AbstractPublicKeyDataDecryptorFactory() { - @Override - public byte[] recoverSessionData(PublicKeyEncSessionPacket pkesk, InputStreamPacket encData) - throws PGPException - { - byte[] sessionData = recoverSessionData(pkesk.getAlgorithm(), pkesk.getEncSessionKey(), pkesk.getVersion()); - return prependSKAlgorithmToSessionData(pkesk, encData, sessionData); - } - @Override public byte[] recoverSessionData(int keyAlgorithm, byte[][] secKeyData, int pkeskVersion) throws PGPException