diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-09-08 14:04:46 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-09-08 14:04:46 +0200 |
commit | 518d7116e2b5d5bf1588c0493aeed4512705114b (patch) | |
tree | 96a584188aa07bf7c429b62d0ef1efc3a99af8c3 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui | |
parent | dc39b586094e4ebefa642e18ed6294b24c414238 (diff) | |
download | open-keychain-518d7116e2b5d5bf1588c0493aeed4512705114b.tar.gz open-keychain-518d7116e2b5d5bf1588c0493aeed4512705114b.tar.bz2 open-keychain-518d7116e2b5d5bf1588c0493aeed4512705114b.zip |
Work on Yubikey decryption
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFileFragment.java | 18 | ||||
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java | 1 |
2 files changed, 18 insertions, 1 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFileFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFileFragment.java index 845fbfa3b..ee1460ee3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFileFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptFileFragment.java @@ -33,12 +33,15 @@ import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.TextView; +import org.openintents.openpgp.util.OpenPgpApi; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.helper.FileHelper; +import org.sufficientlysecure.keychain.pgp.PgpDecryptVerify; import org.sufficientlysecure.keychain.pgp.PgpDecryptVerifyResult; import org.sufficientlysecure.keychain.service.KeychainIntentService; import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; +import org.sufficientlysecure.keychain.service.PassphraseCacheService; import org.sufficientlysecure.keychain.ui.dialog.DeleteFileDialogFragment; import org.sufficientlysecure.keychain.ui.dialog.PassphraseDialogFragment; import org.sufficientlysecure.keychain.util.Log; @@ -182,7 +185,20 @@ public class DecryptFileFragment extends DecryptFragment { returnData.getParcelable(KeychainIntentService.RESULT_DECRYPT_VERIFY_RESULT); if (PgpDecryptVerifyResult.KEY_PASSHRASE_NEEDED == decryptVerifyResult.getStatus()) { - showPassphraseDialogForFilename(decryptVerifyResult.getKeyIdPassphraseNeeded()); + try { + // try to get passphrase from cache... + String passphrase = PassphraseCacheService.getCachedPassphrase( + getActivity(), decryptVerifyResult.getKeyIdPassphraseNeeded()); + + if (passphrase != null) { + // try again with passphrase from cache + decryptOriginalFilename(passphrase); + } else { + showPassphraseDialogForFilename(decryptVerifyResult.getKeyIdPassphraseNeeded()); + } + } catch (PassphraseCacheService.KeyNotFoundException e) { + Log.e(Constants.TAG, "PassphraseCacheService.KeyNotFoundException", e); + } } else if (PgpDecryptVerifyResult.SYMMETRIC_PASSHRASE_NEEDED == decryptVerifyResult.getStatus()) { showPassphraseDialogForFilename(Constants.key.symmetric); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java index 11d5292bb..830e856aa 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java @@ -186,6 +186,7 @@ public class EditKeyFragment extends LoaderFragment implements mSaveKeyringParcel.mMasterKeyId); } catch (PassphraseCacheService.KeyNotFoundException e) { Log.e(Constants.TAG, "Key not found!", e); + Toast.makeText(getActivity(), R.string.error_no_secret_key_found, Toast.LENGTH_SHORT).show(); getActivity().finish(); return; } |