aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2014-05-30 17:11:54 +0200
committerVincent Breitmoser <valodim@mugenguild.com>2014-06-02 13:47:48 +0200
commite27048fe73eab25561cd53e64e96960afeb37aac (patch)
treecf9c1679e893ebb99880e88a5c9c9176cc79d09b /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport
parented8b62c32b704ce2150bfdf7d4047c67648423a1 (diff)
downloadopen-keychain-e27048fe73eab25561cd53e64e96960afeb37aac.tar.gz
open-keychain-e27048fe73eab25561cd53e64e96960afeb37aac.tar.bz2
open-keychain-e27048fe73eab25561cd53e64e96960afeb37aac.zip
wrapped-key-ring: move key data around in ParcelableKeyRing instead of ImportKeysListEntry
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java24
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ParcelableKeyRing.java51
2 files changed, 51 insertions, 24 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java
index 0187fe52a..c43f72235 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ImportKeysListEntry.java
@@ -21,13 +21,10 @@ import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
-import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.pgp.PgpKeyHelper;
import org.sufficientlysecure.keychain.pgp.UncachedKeyRing;
import org.sufficientlysecure.keychain.pgp.UncachedPublicKey;
-import org.sufficientlysecure.keychain.util.Log;
-import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
@@ -50,8 +47,6 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
private boolean mSelected;
- private byte[] mBytes = new byte[]{};
-
public int describeContents() {
return 0;
}
@@ -69,8 +64,6 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
dest.writeString(algorithm);
dest.writeByte((byte) (secretKey ? 1 : 0));
dest.writeByte((byte) (mSelected ? 1 : 0));
- dest.writeInt(mBytes.length);
- dest.writeByteArray(mBytes);
dest.writeString(mExtraData);
}
@@ -89,8 +82,6 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
vr.algorithm = source.readString();
vr.secretKey = source.readByte() == 1;
vr.mSelected = source.readByte() == 1;
- vr.mBytes = new byte[source.readInt()];
- source.readByteArray(vr.mBytes);
vr.mExtraData = source.readString();
return vr;
@@ -105,14 +96,6 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
return keyIdHex;
}
- public byte[] getBytes() {
- return mBytes;
- }
-
- public void setBytes(byte[] bytes) {
- this.mBytes = bytes;
- }
-
public boolean isSelected() {
return mSelected;
}
@@ -229,13 +212,6 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
*/
@SuppressWarnings("unchecked")
public ImportKeysListEntry(Context context, UncachedKeyRing ring) {
- // save actual key object into entry, used to import it later
- try {
- this.mBytes = ring.getEncoded();
- } catch (IOException e) {
- Log.e(Constants.TAG, "IOException on pgpKeyRing.getEncoded()", e);
- }
-
// selected is default
this.mSelected = true;
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ParcelableKeyRing.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ParcelableKeyRing.java
new file mode 100644
index 000000000..3d3b6339a
--- /dev/null
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/ParcelableKeyRing.java
@@ -0,0 +1,51 @@
+package org.sufficientlysecure.keychain.keyimport;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import org.sufficientlysecure.keychain.pgp.UncachedKeyRing;
+import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException;
+
+import java.io.IOException;
+
+/** This is a trivial wrapper around UncachedKeyRing which implements Parcelable. It exists
+ * for the sole purpose of keeping spongycastle and android imports in separate packages.
+ */
+public class ParcelableKeyRing implements Parcelable {
+
+ final byte[] mBytes;
+ final String mExpectedFingerprint;
+
+ public ParcelableKeyRing(byte[] bytes) {
+ mBytes = bytes;
+ mExpectedFingerprint = null;
+ }
+ public ParcelableKeyRing(byte[] bytes, String expectedFingerprint) {
+ mBytes = bytes;
+ mExpectedFingerprint = expectedFingerprint;
+ }
+
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeByteArray(mBytes);
+ dest.writeString(mExpectedFingerprint);
+ }
+
+ public static final Creator<ParcelableKeyRing> CREATOR = new Creator<ParcelableKeyRing>() {
+ public ParcelableKeyRing createFromParcel(final Parcel source) {
+ return new ParcelableKeyRing(source.createByteArray());
+ }
+
+ public ParcelableKeyRing[] newArray(final int size) {
+ return new ParcelableKeyRing[size];
+ }
+ };
+
+
+ public int describeContents() {
+ return 0;
+ }
+
+ public UncachedKeyRing getUncachedKeyRing() throws PgpGeneralException, IOException {
+ return UncachedKeyRing.decodeFromData(mBytes);
+ }
+}