From dbbefe2f412b8c59690a01d3fda48627ceec6063 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Sat, 13 Sep 2014 19:30:10 +0200 Subject: working version of DecryptVerifyResult --- .../keychain/service/KeychainIntentService.java | 38 +++++++++++++++------- 1 file changed, 26 insertions(+), 12 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java index 2366e0237..966c43597 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java @@ -337,15 +337,22 @@ public class KeychainIntentService extends IntentService implements Progressable Bundle resultData = new Bundle(); - /* TODO find passphrase from cache, if not provided - return PassphraseCacheService.getCachedPassphrase( - KeychainIntentService.this, masterKeyId); - */ - // verifyText and decrypt returning additional resultData values for the // verification of signatures PgpDecryptVerify.Builder builder = new PgpDecryptVerify.Builder( - new ProviderHelper(this), inputData, outStream + new ProviderHelper(this), + new PgpDecryptVerify.PassphraseCache() { + @Override + public String getCachedPassphrase(long masterKeyId) { + try { + return PassphraseCacheService.getCachedPassphrase( + KeychainIntentService.this, masterKeyId); + } catch (PassphraseCacheService.KeyNotFoundException e) { + return null; + } + } + }, + inputData, outStream ); builder.setProgressable(this) .setAllowSymmetricDecryption(true) @@ -378,15 +385,22 @@ public class KeychainIntentService extends IntentService implements Progressable Bundle resultData = new Bundle(); - /* TODO find passphrase from cache, if not provided - return PassphraseCacheService.getCachedPassphrase( - KeychainIntentService.this, masterKeyId); - */ - // verifyText and decrypt returning additional resultData values for the // verification of signatures PgpDecryptVerify.Builder builder = new PgpDecryptVerify.Builder( - new ProviderHelper(this), inputData, null + new ProviderHelper(this), + new PgpDecryptVerify.PassphraseCache() { + @Override + public String getCachedPassphrase(long masterKeyId) throws PgpDecryptVerify.NoSecretKeyException { + try { + return PassphraseCacheService.getCachedPassphrase( + KeychainIntentService.this, masterKeyId); + } catch (PassphraseCacheService.KeyNotFoundException e) { + throw new PgpDecryptVerify.NoSecretKeyException(); + } + } + }, + inputData, null ); builder.setProgressable(this) .setAllowSymmetricDecryption(true) -- cgit v1.2.3