diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2016-04-29 15:40:35 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2016-04-29 15:46:17 +0200 |
commit | 8e4d68c55a4e3f236cbc7d4664cd48c8fa0857f3 (patch) | |
tree | 78f48e3c15ae208352d6ae6da6cb6cf62d72ccbd /OpenKeychain/src/main/java/org/bouncycastle/openpgp | |
parent | 5fdc312b2d488825ef69f2290c51b4528091501b (diff) | |
download | open-keychain-8e4d68c55a4e3f236cbc7d4664cd48c8fa0857f3.tar.gz open-keychain-8e4d68c55a4e3f236cbc7d4664cd48c8fa0857f3.tar.bz2 open-keychain-8e4d68c55a4e3f236cbc7d4664cd48c8fa0857f3.zip |
api: allow caching of sessionKey in OpenPgpDecryptResult
Diffstat (limited to 'OpenKeychain/src/main/java/org/bouncycastle/openpgp')
-rw-r--r-- | OpenKeychain/src/main/java/org/bouncycastle/openpgp/operator/jcajce/CachingDataDecryptorFactory.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/OpenKeychain/src/main/java/org/bouncycastle/openpgp/operator/jcajce/CachingDataDecryptorFactory.java b/OpenKeychain/src/main/java/org/bouncycastle/openpgp/operator/jcajce/CachingDataDecryptorFactory.java index 703af94f4..7679f8486 100644 --- a/OpenKeychain/src/main/java/org/bouncycastle/openpgp/operator/jcajce/CachingDataDecryptorFactory.java +++ b/OpenKeychain/src/main/java/org/bouncycastle/openpgp/operator/jcajce/CachingDataDecryptorFactory.java @@ -6,15 +6,16 @@ package org.bouncycastle.openpgp.operator.jcajce; + +import java.nio.ByteBuffer; +import java.util.Map; + import org.bouncycastle.jcajce.util.NamedJcaJceHelper; import org.bouncycastle.openpgp.PGPException; import org.bouncycastle.openpgp.PGPPublicKeyEncryptedData; import org.bouncycastle.openpgp.operator.PGPDataDecryptor; import org.bouncycastle.openpgp.operator.PublicKeyDataDecryptorFactory; -import java.nio.ByteBuffer; -import java.util.Map; - public class CachingDataDecryptorFactory implements PublicKeyDataDecryptorFactory { private final PublicKeyDataDecryptorFactory mWrappedDecryptor; @@ -59,6 +60,10 @@ public class CachingDataDecryptorFactory implements PublicKeyDataDecryptorFactor return mSessionKeyCache.get(bi); } + if (mWrappedDecryptor == null) { + throw new IllegalStateException("tried to decrypt without wrapped decryptor, this is a bug!"); + } + byte[] sessionData = mWrappedDecryptor.recoverSessionData(keyAlgorithm, secKeyData); mSessionKeyCache.put(bi, sessionData); return sessionData; |