diff options
author | Adithya Abraham Philip <adithyaphilip@gmail.com> | 2015-06-23 23:03:59 +0530 |
---|---|---|
committer | Adithya Abraham Philip <adithyaphilip@gmail.com> | 2015-06-27 01:20:23 +0530 |
commit | 5a5d66009f22eb93874acd369443acb25700456c (patch) | |
tree | 61075ed2235a9c651b8cfb84160ded39028cc679 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java | |
parent | 6008353df8f8d17795fadb5a34fc86ad5a8f2de9 (diff) | |
download | open-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/ImportExportOperation.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/ImportExportOperation.java | 46 |
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) { |