diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-03-23 01:44:14 +0100 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-03-23 01:48:44 +0100 |
commit | c694d73cab1edf91cb94d53cc8352ca93f0eb6ce (patch) | |
tree | b4d36dc8de526a81cfa1a530d50ce909b58b0243 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java | |
parent | 3bb194fc080e5945dc8bdbeea9b91cf801406c32 (diff) | |
download | open-keychain-c694d73cab1edf91cb94d53cc8352ca93f0eb6ce.tar.gz open-keychain-c694d73cab1edf91cb94d53cc8352ca93f0eb6ce.tar.bz2 open-keychain-c694d73cab1edf91cb94d53cc8352ca93f0eb6ce.zip |
further improve yubikey error handling
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java index 549d9ece7..511183b04 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/NfcOperationActivity.java @@ -14,10 +14,12 @@ import android.view.WindowManager; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; +import org.sufficientlysecure.keychain.service.PassphraseCacheService; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; import org.sufficientlysecure.keychain.service.input.RequiredInputParcel; import org.sufficientlysecure.keychain.ui.base.BaseNfcActivity; import org.sufficientlysecure.keychain.util.Log; +import org.sufficientlysecure.keychain.util.Preferences; import java.io.IOException; @@ -89,4 +91,24 @@ public class NfcOperationActivity extends BaseNfcActivity { finish(); } + + @Override + public void handlePinError() { + + // avoid a loop + Preferences prefs = Preferences.getPreferences(this); + if (prefs.useDefaultYubikeyPin()) { + toast(getString(R.string.error_pin_nodefault)); + setResult(RESULT_CANCELED); + finish(); + return; + } + + // clear (invalid) passphrase + PassphraseCacheService.clearCachedPassphrase( + this, mRequiredInput.getMasterKeyId(), mRequiredInput.getSubKeyId()); + + obtainYubikeyPin(RequiredInputParcel.createRequiredPassphrase(mRequiredInput)); + + } } |