aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations
diff options
context:
space:
mode:
authorAdithya Abraham Philip <adithyaphilip@gmail.com>2015-06-23 23:03:59 +0530
committerAdithya Abraham Philip <adithyaphilip@gmail.com>2015-06-27 01:20:23 +0530
commit5a5d66009f22eb93874acd369443acb25700456c (patch)
tree61075ed2235a9c651b8cfb84160ded39028cc679 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations
parent6008353df8f8d17795fadb5a34fc86ad5a8f2de9 (diff)
downloadopen-keychain-5a5d66009f22eb93874acd369443acb25700456c.tar.gz
open-keychain-5a5d66009f22eb93874acd369443acb25700456c.tar.bz2
open-keychain-5a5d66009f22eb93874acd369443acb25700456c.zip
added export and upload to KeychainNewService
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java46
1 files changed, 41 insertions, 5 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java
index c7f0ef423..3b9390866 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java
@@ -47,9 +47,10 @@ import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
import org.sufficientlysecure.keychain.provider.KeychainDatabase.Tables;
import org.sufficientlysecure.keychain.provider.ProviderHelper;
import org.sufficientlysecure.keychain.service.ContactSyncAdapterService;
+import org.sufficientlysecure.keychain.service.ExportKeyringParcel;
+import org.sufficientlysecure.keychain.service.ImportExportParcel;
import org.sufficientlysecure.keychain.service.ImportKeyringParcel;
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
-import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import org.sufficientlysecure.keychain.util.FileHelper;
import org.sufficientlysecure.keychain.util.Log;
@@ -101,7 +102,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
* TODO rework uploadKeyRingToServer
*
*/
-public class ImportExportOperation extends BaseOperation<ImportKeyringParcel> {
+public class ImportExportOperation extends BaseOperation<ImportExportParcel> {
public ImportExportOperation(Context context, ProviderHelper providerHelper, Progressable progressable) {
super(context, providerHelper, progressable);
@@ -629,9 +630,44 @@ public class ImportExportOperation extends BaseOperation<ImportKeyringParcel> {
}
@Override
- public ImportKeyResult execute(ImportKeyringParcel input, CryptoInputParcel cryptoInput) {
-
- return importKeys(input.mKeyList, input.mKeyserver);
+ public OperationResult execute(ImportExportParcel input, CryptoInputParcel cryptoInput) {
+ if (input instanceof ExportKeyringParcel) {
+ ExportKeyringParcel exportInput = (ExportKeyringParcel) input;
+ switch (exportInput.mExportType) {
+ case UPLOAD_KEYSERVER: {
+ HkpKeyserver hkpKeyserver = new HkpKeyserver(exportInput.mKeyserver);
+ try {
+ CanonicalizedPublicKeyRing keyring
+ = mProviderHelper.getCanonicalizedPublicKeyRing(
+ exportInput.mCanonicalizedPublicKeyringUri);
+ uploadKeyRingToServer(hkpKeyserver, keyring);
+ // TODO: replace with proper log
+ return new ExportResult(ExportResult.RESULT_OK, new OperationLog());
+ } catch (Exception e) {
+ // TODO: Implement better exception handling, replace with log
+ }
+ break;
+ }
+ case EXPORT_FILE: {
+ return exportToFile(exportInput.mMasterKeyIds, exportInput.mExportSecret,
+ exportInput.mOutputFile);
+ }
+ case EXPORT_URI: {
+ return exportToUri(exportInput.mMasterKeyIds, exportInput.mExportSecret,
+ exportInput.mOutputUri);
+ }
+ default: {
+ return null;
+ }
+ }
+ }
+ else if (input instanceof ImportKeyringParcel) {
+ ImportKeyringParcel importInput = (ImportKeyringParcel) input;
+ return importKeys(importInput.mKeyList, importInput.mKeyserver);
+ } else {
+ throw new RuntimeException("Invalid input parcel at ImportExportOperation");
+ }
+ return null;
}
public ImportKeyResult importKeys(ArrayList<ParcelableKeyRing> keyList, String keyServer) {