Preparations for support of onion keyservers. Refactoring of Keyserver and proxy related classes

This commit is contained in:
Dominik Schürmann
2016-10-27 16:19:43 +02:00
parent bf382ec59d
commit 911fa020c2
37 changed files with 576 additions and 479 deletions

View File

@@ -24,11 +24,9 @@ import android.os.Parcelable;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import java.util.Map;
import org.sufficientlysecure.keychain.pgp.WrappedUserAttribute;
import org.sufficientlysecure.keychain.util.ParcelableProxy;
import org.sufficientlysecure.keychain.keyimport.ParcelableHkpKeyserver;
/**
@@ -43,7 +41,7 @@ public class CertifyActionsParcel implements Parcelable {
public ArrayList<CertifyAction> mCertifyActions = new ArrayList<>();
public String keyServerUri;
public ParcelableHkpKeyserver keyServerUri;
public CertifyActionsParcel(long masterKeyId) {
mMasterKeyId = masterKeyId;
@@ -54,7 +52,7 @@ public class CertifyActionsParcel implements Parcelable {
mMasterKeyId = source.readLong();
// just like parcelables, this is meant for ad-hoc IPC only and is NOT portable!
mLevel = CertifyLevel.values()[source.readInt()];
keyServerUri = source.readString();
keyServerUri = source.readParcelable(ParcelableHkpKeyserver.class.getClassLoader());
mCertifyActions = (ArrayList<CertifyAction>) source.readSerializable();
}
@@ -67,7 +65,7 @@ public class CertifyActionsParcel implements Parcelable {
public void writeToParcel(Parcel destination, int flags) {
destination.writeLong(mMasterKeyId);
destination.writeInt(mLevel.ordinal());
destination.writeString(keyServerUri);
destination.writeParcelable(keyServerUri, flags);
destination.writeSerializable(mCertifyActions);
}

View File

@@ -20,16 +20,18 @@ package org.sufficientlysecure.keychain.service;
import android.os.Parcel;
import android.os.Parcelable;
import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing;
import org.sufficientlysecure.keychain.keyimport.ParcelableHkpKeyserver;
import java.util.ArrayList;
public class ImportKeyringParcel implements Parcelable {
// if null, keys are expected to be read from a cache file in ImportExportOperations
public ArrayList<ParcelableKeyRing> mKeyList;
public String mKeyserver; // must be set if keys are to be imported from a keyserver
public ParcelableHkpKeyserver mKeyserver; // must be set if keys are to be imported from a keyserver
public ImportKeyringParcel (ArrayList<ParcelableKeyRing> keyList, String keyserver) {
public ImportKeyringParcel(ArrayList<ParcelableKeyRing> keyList, ParcelableHkpKeyserver keyserver) {
mKeyList = keyList;
mKeyserver = keyserver;
}
@@ -41,7 +43,7 @@ public class ImportKeyringParcel implements Parcelable {
} else {
mKeyList = null;
}
mKeyserver = in.readString();
mKeyserver = in.readParcelable(ParcelableHkpKeyserver.class.getClassLoader());
}
@Override
@@ -57,7 +59,7 @@ public class ImportKeyringParcel implements Parcelable {
dest.writeByte((byte) (0x01));
dest.writeList(mKeyList);
}
dest.writeString(mKeyserver);
dest.writeParcelable(mKeyserver, flags);
}
public static final Parcelable.Creator<ImportKeyringParcel> CREATOR = new Parcelable.Creator<ImportKeyringParcel>() {

View File

@@ -11,7 +11,6 @@ import android.content.ContentProviderClient;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.PeriodicSync;
import android.content.SyncResult;
import android.database.Cursor;
import android.graphics.Bitmap;
@@ -308,7 +307,7 @@ public class KeyserverSyncAdapterService extends Service {
if (cryptoInputParcel.getParcelableProxy() == null) {
// no explicit proxy, retrieve from preferences. Check if we should do a staggered sync
if (Preferences.getPreferences(context).getProxyPrefs().torEnabled) {
if (Preferences.getPreferences(context).getParcelableProxy().isTorEnabled()) {
return staggeredUpdate(context, keyList, cryptoInputParcel);
} else {
return directUpdate(context, keyList, cryptoInputParcel);

View File

@@ -22,13 +22,15 @@ package org.sufficientlysecure.keychain.service;
import android.os.Parcel;
import android.os.Parcelable;
import org.sufficientlysecure.keychain.keyimport.ParcelableHkpKeyserver;
public class RevokeKeyringParcel implements Parcelable {
final public long mMasterKeyId;
final public boolean mUpload;
final public String mKeyserver;
final public ParcelableHkpKeyserver mKeyserver;
public RevokeKeyringParcel(long masterKeyId, boolean upload, String keyserver) {
public RevokeKeyringParcel(long masterKeyId, boolean upload, ParcelableHkpKeyserver keyserver) {
mMasterKeyId = masterKeyId;
mUpload = upload;
mKeyserver = keyserver;
@@ -37,7 +39,7 @@ public class RevokeKeyringParcel implements Parcelable {
protected RevokeKeyringParcel(Parcel in) {
mMasterKeyId = in.readLong();
mUpload = in.readByte() != 0x00;
mKeyserver = in.readString();
mKeyserver = in.readParcelable(ParcelableHkpKeyserver.class.getClassLoader());
}
@Override
@@ -49,7 +51,7 @@ public class RevokeKeyringParcel implements Parcelable {
public void writeToParcel(Parcel dest, int flags) {
dest.writeLong(mMasterKeyId);
dest.writeByte((byte) (mUpload ? 0x01 : 0x00));
dest.writeString(mKeyserver);
dest.writeParcelable(mKeyserver, flags);
}
public static final Parcelable.Creator<RevokeKeyringParcel> CREATOR = new Parcelable.Creator<RevokeKeyringParcel>() {

View File

@@ -22,6 +22,7 @@ import android.os.Parcel;
import android.os.Parcelable;
import org.sufficientlysecure.keychain.pgp.WrappedUserAttribute;
import org.sufficientlysecure.keychain.keyimport.ParcelableHkpKeyserver;
import org.sufficientlysecure.keychain.util.Passphrase;
import java.io.Serializable;
@@ -66,7 +67,7 @@ public class SaveKeyringParcel implements Parcelable {
// private because they have to be set together with setUpdateOptions
private boolean mUpload;
private boolean mUploadAtomic;
private String mKeyserver;
private ParcelableHkpKeyserver mKeyserver;
// private because we have to set other details like key id
private ChangeUnlockParcel mNewUnlock;
@@ -97,10 +98,10 @@ public class SaveKeyringParcel implements Parcelable {
mKeyserver = null;
}
public void setUpdateOptions(boolean upload, boolean uploadAtomic, String keysever) {
public void setUpdateOptions(boolean upload, boolean uploadAtomic, ParcelableHkpKeyserver keyserver) {
mUpload = upload;
mUploadAtomic = uploadAtomic;
mKeyserver = keysever;
mKeyserver = keyserver;
}
public void setNewUnlock(ChangeUnlockParcel parcel) {
@@ -123,7 +124,7 @@ public class SaveKeyringParcel implements Parcelable {
return mUploadAtomic;
}
public String getUploadKeyserver() {
public ParcelableHkpKeyserver getUploadKeyserver() {
return mKeyserver;
}
@@ -278,7 +279,7 @@ public class SaveKeyringParcel implements Parcelable {
mUpload = source.readByte() != 0;
mUploadAtomic = source.readByte() != 0;
mKeyserver = source.readString();
mKeyserver = source.readParcelable(ParcelableHkpKeyserver.class.getClassLoader());
}
@Override
@@ -307,7 +308,7 @@ public class SaveKeyringParcel implements Parcelable {
destination.writeByte((byte) (mUpload ? 1 : 0));
destination.writeByte((byte) (mUploadAtomic ? 1 : 0));
destination.writeString(mKeyserver);
destination.writeParcelable(mKeyserver, flags);
}
public static final Creator<SaveKeyringParcel> CREATOR = new Creator<SaveKeyringParcel>() {

View File

@@ -23,27 +23,29 @@ package org.sufficientlysecure.keychain.service;
import android.os.Parcel;
import android.os.Parcelable;
import org.sufficientlysecure.keychain.keyimport.ParcelableHkpKeyserver;
public class UploadKeyringParcel implements Parcelable {
public String mKeyserver;
public ParcelableHkpKeyserver mKeyserver;
public final Long mMasterKeyId;
public final byte[] mUncachedKeyringBytes;
public UploadKeyringParcel(String keyserver, long masterKeyId) {
public UploadKeyringParcel(ParcelableHkpKeyserver keyserver, long masterKeyId) {
mKeyserver = keyserver;
mMasterKeyId = masterKeyId;
mUncachedKeyringBytes = null;
}
public UploadKeyringParcel(String keyserver, byte[] uncachedKeyringBytes) {
public UploadKeyringParcel(ParcelableHkpKeyserver keyserver, byte[] uncachedKeyringBytes) {
mKeyserver = keyserver;
mMasterKeyId = null;
mUncachedKeyringBytes = uncachedKeyringBytes;
}
protected UploadKeyringParcel(Parcel in) {
mKeyserver = in.readString();
mKeyserver = in.readParcelable(ParcelableHkpKeyserver.class.getClassLoader());
mMasterKeyId = in.readInt() != 0 ? in.readLong() : null;
mUncachedKeyringBytes = in.createByteArray();
}
@@ -55,7 +57,7 @@ public class UploadKeyringParcel implements Parcelable {
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(mKeyserver);
dest.writeParcelable(mKeyserver, flags);
if (mMasterKeyId != null) {
dest.writeInt(1);
dest.writeLong(mMasterKeyId);