aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java
diff options
context:
space:
mode:
authorAsh Hughes <spirit.returned@googlemail.com>2013-03-18 16:07:34 +0000
committerAsh Hughes <spirit.returned@googlemail.com>2013-03-18 16:07:34 +0000
commit12d6cfefd7f36d90780d0eea6863311dd5c2ae2d (patch)
treeac9043c5c7e6a7737591add838bb8d150c639b0b /OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java
parent2ccd3796c4c6bae5fb587f031dcf848a2ad72ff0 (diff)
downloadopen-keychain-12d6cfefd7f36d90780d0eea6863311dd5c2ae2d.tar.gz
open-keychain-12d6cfefd7f36d90780d0eea6863311dd5c2ae2d.tar.bz2
open-keychain-12d6cfefd7f36d90780d0eea6863311dd5c2ae2d.zip
change how empty private cheks happen, speeds things up
Diffstat (limited to 'OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java')
-rw-r--r--OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java
index 36049a64c..c23dcc559 100644
--- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java
+++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/provider/ProviderHelper.java
@@ -370,11 +370,19 @@ public class ProviderHelper {
private static ContentProviderOperation buildSecretKeyOperations(Context context,
long keyRingRowId, PGPSecretKey key, int rank) throws IOException {
ContentValues values = new ContentValues();
+
+ boolean has_private = true;
+ if (key.isMasterKey()) {
+ if (PgpHelper.isSecretKeyPrivateEmpty(key)) {
+ has_private = false;
+ }
+ }
+
values.put(Keys.KEY_ID, key.getKeyID());
values.put(Keys.IS_MASTER_KEY, key.isMasterKey());
values.put(Keys.ALGORITHM, key.getPublicKey().getAlgorithm());
values.put(Keys.KEY_SIZE, key.getPublicKey().getBitStrength());
- values.put(Keys.CAN_SIGN, PgpHelper.isSigningKey(key));
+ values.put(Keys.CAN_SIGN, (PgpHelper.isSigningKey(key) && has_private));
values.put(Keys.CAN_ENCRYPT, PgpHelper.isEncryptionKey(key));
values.put(Keys.IS_REVOKED, key.getPublicKey().isRevoked());
values.put(Keys.CREATION, PgpHelper.getCreationDate(key).getTime() / 1000);