aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain
diff options
context:
space:
mode:
authorAshley Hughes <spirit.returned@gmail.com>2014-01-28 23:03:52 +0000
committerAshley Hughes <spirit.returned@gmail.com>2014-01-28 23:03:52 +0000
commite6d4b0c70b7d469f2353822e6087bdbc0a549d18 (patch)
treedf095b142af168062135235a62e474c2e49c9e80 /OpenPGP-Keychain
parent50f06c3eb387609aecb6fd5842b5946ae54a22f9 (diff)
downloadopen-keychain-e6d4b0c70b7d469f2353822e6087bdbc0a549d18.tar.gz
open-keychain-e6d4b0c70b7d469f2353822e6087bdbc0a549d18.tar.bz2
open-keychain-e6d4b0c70b7d469f2353822e6087bdbc0a549d18.zip
exporting secret keys means exporting public, no need to do so twice
Diffstat (limited to 'OpenPGP-Keychain')
-rw-r--r--OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java47
1 files changed, 22 insertions, 25 deletions
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java
index 0a4806239..6f3ae154a 100644
--- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java
+++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java
@@ -206,30 +206,6 @@ public class PgpImportExport {
mContext.getString(R.string.error_external_storage_not_ready));
}
- // export public keyrings...
- ArmoredOutputStream outPub = new ArmoredOutputStream(outStream);
- outPub.setHeader("Version", PgpHelper.getFullVersion(mContext));
-
- int numKeys = 0;
- for (int i = 0; i < keyRingMasterKeyIds.size(); ++i) {
- // double the needed time if exporting both public and secret parts
- if (keyType == Id.type.secret_key) {
- updateProgress(i * 100 / keyRingMasterKeyIds.size() / 2, 100);
- } else {
- updateProgress(i * 100 / keyRingMasterKeyIds.size(), 100);
- }
-
- PGPPublicKeyRing publicKeyRing = ProviderHelper.getPGPPublicKeyRingByMasterKeyId(
- mContext, keyRingMasterKeyIds.get(i));
-
- if (publicKeyRing != null) {
- publicKeyRing.encode(outPub);
- }
- ++numKeys;
- }
- outPub.close();
-
- // if we export secret keyrings, append all secret parts after the public parts
if (keyType == Id.type.secret_key) {
ArmoredOutputStream outSec = new ArmoredOutputStream(outStream);
outSec.setHeader("Version", PgpHelper.getFullVersion(mContext));
@@ -245,9 +221,30 @@ public class PgpImportExport {
}
}
outSec.close();
+ } else {
+ // export public keyrings...
+ ArmoredOutputStream outPub = new ArmoredOutputStream(outStream);
+ outPub.setHeader("Version", PgpHelper.getFullVersion(mContext));
+
+ for (int i = 0; i < keyRingMasterKeyIds.size(); ++i) {
+ // double the needed time if exporting both public and secret parts
+ if (keyType == Id.type.secret_key) {
+ updateProgress(i * 100 / keyRingMasterKeyIds.size() / 2, 100);
+ } else {
+ updateProgress(i * 100 / keyRingMasterKeyIds.size(), 100);
+ }
+
+ PGPPublicKeyRing publicKeyRing = ProviderHelper.getPGPPublicKeyRingByMasterKeyId(
+ mContext, keyRingMasterKeyIds.get(i));
+
+ if (publicKeyRing != null) {
+ publicKeyRing.encode(outPub);
+ }
+ }
+ outPub.close();
}
- returnData.putInt(KeychainIntentService.RESULT_EXPORT, numKeys);
+ returnData.putInt(KeychainIntentService.RESULT_EXPORT, keyRingMasterKeyIds.size());
updateProgress(R.string.progress_done, 100, 100);