diff options
Diffstat (limited to 'org_apg/src/org/thialfihar/android/apg/service/ApgService.java')
-rw-r--r-- | org_apg/src/org/thialfihar/android/apg/service/ApgService.java | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/org_apg/src/org/thialfihar/android/apg/service/ApgService.java b/org_apg/src/org/thialfihar/android/apg/service/ApgService.java index 69c9e408c..b1c45ad05 100644 --- a/org_apg/src/org/thialfihar/android/apg/service/ApgService.java +++ b/org_apg/src/org/thialfihar/android/apg/service/ApgService.java @@ -28,6 +28,8 @@ import java.io.OutputStream; import java.util.ArrayList; import java.util.Vector; +import org.spongycastle.openpgp.PGPKeyRing; +import org.spongycastle.openpgp.PGPPublicKeyRing; import org.spongycastle.openpgp.PGPSecretKey; import org.spongycastle.openpgp.PGPSecretKeyRing; import org.thialfihar.android.apg.Constants; @@ -40,6 +42,7 @@ import org.thialfihar.android.apg.helper.Preferences; import org.thialfihar.android.apg.helper.PGPMain.GeneralException; import org.thialfihar.android.apg.helper.PGPConversionHelper; import org.thialfihar.android.apg.provider.DataProvider; +import org.thialfihar.android.apg.util.HkpKeyServer; import org.thialfihar.android.apg.util.InputData; import org.thialfihar.android.apg.util.ProgressDialogUpdater; @@ -124,6 +127,10 @@ public class ApgService extends IntentService implements ProgressDialogUpdater { public static final String EXPORT_ALL = "exportAll"; public static final String EXPORT_KEY_RING_ID = "exportKeyRingId"; + // upload key + public static final String UPLOAD_KEY_SERVER = "uploadKeyServer"; + public static final String UPLOAD_KEY_KEYRING_ID = "uploadKeyRingId"; + /* possible EXTRA_ACTIONs */ public static final int ACTION_ENCRYPT_SIGN = 10; @@ -138,6 +145,8 @@ public class ApgService extends IntentService implements ProgressDialogUpdater { public static final int ACTION_IMPORT_KEY = 50; public static final int ACTION_EXPORT_KEY = 51; + public static final int ACTION_UPLOAD_KEY = 60; + /* possible data keys as result send over messenger */ // keys public static final String RESULT_NEW_KEY = "newKey"; @@ -700,6 +709,36 @@ public class ApgService extends IntentService implements ProgressDialogUpdater { break; + case ACTION_UPLOAD_KEY: + try { + + /* Input */ + + int keyRingId = data.getInt(UPLOAD_KEY_KEYRING_ID); + String keyServer = data.getString(UPLOAD_KEY_SERVER); + + /* Operation */ + + HkpKeyServer server = new HkpKeyServer(keyServer); + + PGPKeyRing keyring = PGPMain.getKeyRing(keyRingId); + if (keyring != null && keyring instanceof PGPPublicKeyRing) { + boolean uploaded = PGPMain.uploadKeyRingToServer(server, + (PGPPublicKeyRing) keyring); + if (!uploaded) { + sendErrorToHandler(new GeneralException( + "Unable to export key to selected server")); + return; + } + } + + sendMessageToHandler(ApgHandler.MESSAGE_OKAY); + } catch (Exception e) { + sendErrorToHandler(e); + } + + break; + default: break; } |