aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java
index a55765542..e858012f5 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java
@@ -165,7 +165,8 @@ public class PgpImportExport {
}
newPubRing = PGPPublicKeyRing.insertPublicKey(newPubRing, key);
}
- status = storeKeyRingInCache(new UncachedKeyRing(newPubRing ,secretKeyRing));
+ status = storeKeyRingInCache(new UncachedKeyRing(newPubRing),
+ new UncachedKeyRing(secretKeyRing));
} else {
status = storeKeyRingInCache(new UncachedKeyRing((PGPPublicKeyRing) keyring));
}
@@ -278,15 +279,23 @@ public class PgpImportExport {
return returnData;
}
+ public int storeKeyRingInCache(UncachedKeyRing ring) {
+ return storeKeyRingInCache(ring, null);
+ }
+
@SuppressWarnings("unchecked")
- public int storeKeyRingInCache(UncachedKeyRing keyring) {
+ public int storeKeyRingInCache(UncachedKeyRing ring, UncachedKeyRing secretRing) {
int status;
try {
- PGPSecretKeyRing secretKeyRing = keyring.getSecretRing();
- PGPPublicKeyRing publicKeyRing = keyring.getPublicRing();
+ // TODO make sure these are correctly typed!
+ PGPPublicKeyRing publicKeyRing = (PGPPublicKeyRing) ring.getRing();
+ PGPSecretKeyRing secretKeyRing = null;
+ if(secretRing != null) {
+ secretKeyRing = (PGPSecretKeyRing) secretRing.getRing();
+ }
// see what type we have. we can either have a secret + public keyring, or just public
if (secretKeyRing != null) {
- mProviderHelper.saveKeyRing(publicKeyRing, secretKeyRing);
+ mProviderHelper.saveKeyRing(ring, secretRing);
status = RETURN_OK;
} else {
mProviderHelper.saveKeyRing(publicKeyRing);