diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-07-03 02:48:54 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2015-07-03 02:48:54 +0200 |
commit | d6b4d4b4f223f28bcee39cc72c8243f000a55b2b (patch) | |
tree | f6e4df9ff6fcdbf52c35f461498856719b5394d1 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/EditKeyOperation.java | |
parent | f10785ec5a7b05e0a79d90c6fd5eef6eee5ca077 (diff) | |
download | open-keychain-d6b4d4b4f223f28bcee39cc72c8243f000a55b2b.tar.gz open-keychain-d6b4d4b4f223f28bcee39cc72c8243f000a55b2b.tar.bz2 open-keychain-d6b4d4b4f223f28bcee39cc72c8243f000a55b2b.zip |
Fix caching of empty passphrase before moving keys to card
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/EditKeyOperation.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/EditKeyOperation.java | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/EditKeyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/EditKeyOperation.java index da0aef018..db34a149b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/EditKeyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/EditKeyOperation.java @@ -131,13 +131,22 @@ public class EditKeyOperation extends BaseOperation<SaveKeyringParcel> { // There is a new passphrase - cache it if (saveParcel.mNewUnlock != null) { log.add(LogType.MSG_ED_CACHING_NEW, 1); - PassphraseCacheService.addCachedPassphrase(mContext, - ring.getMasterKeyId(), - ring.getMasterKeyId(), - saveParcel.mNewUnlock.mNewPassphrase != null - ? saveParcel.mNewUnlock.mNewPassphrase - : saveParcel.mNewUnlock.mNewPin, - ring.getPublicKey().getPrimaryUserIdWithFallback()); + + // NOTE: Don't cache empty passphrases! Important for MOVE_KEY_TO_CARD + if (saveParcel.mNewUnlock.mNewPassphrase != null + && ( ! saveParcel.mNewUnlock.mNewPassphrase.isEmpty())) { + PassphraseCacheService.addCachedPassphrase(mContext, + ring.getMasterKeyId(), + ring.getMasterKeyId(), + saveParcel.mNewUnlock.mNewPassphrase, + ring.getPublicKey().getPrimaryUserIdWithFallback()); + } else if (saveParcel.mNewUnlock.mNewPin != null) { + PassphraseCacheService.addCachedPassphrase(mContext, + ring.getMasterKeyId(), + ring.getMasterKeyId(), + saveParcel.mNewUnlock.mNewPin, + ring.getPublicKey().getPrimaryUserIdWithFallback()); + } } updateProgress(R.string.progress_done, 100, 100); |