diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2014-04-11 03:21:39 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2014-04-11 03:44:13 +0200 |
commit | b77fb2fcc0371248beaf86a1db092e7ad99e6446 (patch) | |
tree | 29acb0cd66761200805603c5925c626650aac6c9 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service | |
parent | 9af532880c728ccd343769078b008a9b31dc4ce1 (diff) | |
download | open-keychain-b77fb2fcc0371248beaf86a1db092e7ad99e6446.tar.gz open-keychain-b77fb2fcc0371248beaf86a1db092e7ad99e6446.tar.bz2 open-keychain-b77fb2fcc0371248beaf86a1db092e7ad99e6446.zip |
get rid of more getMasterKeyId usage, work on getKeyRingsAsArmoredString
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java index 66411ce0b..91d9b5584 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/PassphraseCacheService.java @@ -200,7 +200,7 @@ public class PassphraseCacheService extends Service { return cachedPassphrase; } - public static boolean hasPassphrase(PGPSecretKeyRing secretKeyRing) throws PGPException { + public static boolean hasPassphrase(PGPSecretKeyRing secretKeyRing) { PGPSecretKey secretKey = null; boolean foundValidKey = false; for (Iterator keys = secretKeyRing.getSecretKeys(); keys.hasNext(); ) { @@ -214,10 +214,15 @@ public class PassphraseCacheService extends Service { return false; } - PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder() - .setProvider("SC").build("".toCharArray()); - PGPPrivateKey testKey = secretKey.extractPrivateKey(keyDecryptor); - return testKey == null; + try { + PBESecretKeyDecryptor keyDecryptor = new JcePBESecretKeyDecryptorBuilder() + .setProvider("SC").build("".toCharArray()); + PGPPrivateKey testKey = secretKey.extractPrivateKey(keyDecryptor); + return testKey == null; + } catch(PGPException e) { + // this means the crc check failed -> passphrase required + return true; + } } /** @@ -231,8 +236,6 @@ public class PassphraseCacheService extends Service { try { PGPSecretKeyRing secRing = ProviderHelper.getPGPSecretKeyRing(context, secretKeyId); return hasPassphrase(secRing); - } catch (PGPException e) { - // silently catch } catch (ProviderHelper.NotFoundException e) { Log.e(Constants.TAG, "key not found!", e); } |