ImportKeys: Don't save origins (not used) and fix logic

This commit is contained in:
Andrea Torlaschi 2016-08-17 20:52:13 +02:00
parent 756f427f19
commit b833b9495c
5 changed files with 13 additions and 47 deletions

View file

@ -51,10 +51,6 @@ public class FacebookKeyserver extends Keyserver {
private static final String FB_HOST = "facebook.com";
private static final String FB_HOST_WWW = "www." + FB_HOST;
public static final String FB_URL = "https://" + FB_HOST_WWW;
public static final String ORIGIN = FB_URL;
private final Proxy mProxy;
public FacebookKeyserver(Proxy proxy) {
@ -148,7 +144,6 @@ public class FacebookKeyserver extends Keyserver {
throws UnsupportedOperationException {
ImportKeysListEntry entry = new ImportKeysListEntry();
entry.setSecretKey(false); // keys imported from Facebook must be public
entry.addOrigin(ORIGIN);
// so we can query for the Facebook username directly, and to identify the source to
// download the key from

View file

@ -54,6 +54,7 @@ import okhttp3.RequestBody;
import okhttp3.Response;
public class HkpKeyserver extends Keyserver {
private static class HttpError extends Exception {
private static final long serialVersionUID = 1718783705229428893L;
private int mCode;
@ -274,7 +275,6 @@ public class HkpKeyserver extends Keyserver {
while (matcher.find()) {
final ImportKeysListEntry entry = new ImportKeysListEntry();
entry.setQuery(query);
entry.addOrigin(getUrlPrefix() + mHost + ":" + mPort);
// group 1 contains the full fingerprint (v4) or the long key id if available
// see https://bitbucket.org/skskeyserver/sks-keyserver/pull-request/12/fixes-for-machine-readable-indexes/diff

View file

@ -72,32 +72,17 @@ public class ImportKeysList extends ArrayList<ImportKeysListEntry> {
if (incoming.getKeyserver() != null) {
existing.setKeyserver(incoming.getKeyserver());
}
// keep track if this key result is from a HKP keyserver
boolean incomingFromHkpServer = true;
// were going to want to try to fetch the key from everywhere we found it, so remember
// all the origins
for (String origin : incoming.getOrigins()) {
existing.addOrigin(origin);
// to work properly, Keybase-sourced/Facebook-sourced entries need to pass along the
// identifying name/id
if (incoming.getKeybaseName() != null) {
existing.setKeybaseName(incoming.getKeybaseName());
// one of the origins is not a HKP keyserver
incomingFromHkpServer = false;
}
if (incoming.getFbUsername() != null) {
existing.setFbUsername(incoming.getFbUsername());
// one of the origins is not a HKP keyserver
incomingFromHkpServer = false;
}
}
if (incomingFromHkpServer) {
// Mail addresses returned by HKP servers are preferred over keybase.io IDs
existing.setPrimaryUserId(incoming.getPrimaryUserId());
modified = true;
} else if (incoming.getKeybaseName() != null) {
// to work properly, Keybase-sourced/Facebook-sourced entries need to pass along the
// identifying name/id
existing.setKeybaseName(incoming.getKeybaseName());
modified = true;
} else if (incoming.getFbUsername() != null) {
existing.setFbUsername(incoming.getFbUsername());
modified = true;
}

View file

@ -61,7 +61,6 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
private String mKeybaseName;
private String mFbUsername;
private String mQuery;
private ArrayList<String> mOrigins;
private Integer mHashCode = null;
public ParcelableKeyRing getParcelableKeyRing() {
@ -203,14 +202,6 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
mQuery = query;
}
public ArrayList<String> getOrigins() {
return mOrigins;
}
public void addOrigin(String origin) {
mOrigins.add(origin);
}
public int hashCode() {
return mHashCode != null ? mHashCode : super.hashCode();
}
@ -264,7 +255,6 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
mSecretKey = false;
mUserIds = new ArrayList<>();
mOrigins = new ArrayList<>();
}
/**
@ -367,12 +357,12 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
dest.writeByte((byte) (mSecretKey ? 1 : 0));
dest.writeString(mKeybaseName);
dest.writeString(mFbUsername);
dest.writeStringList(mOrigins);
}
public static final Creator<ImportKeysListEntry> CREATOR = new Creator<ImportKeysListEntry>() {
public ImportKeysListEntry createFromParcel(final Parcel source) {
ImportKeysListEntry vr = new ImportKeysListEntry();
vr.mParcelableKeyRing = source.readParcelable(ParcelableKeyRing.class.getClassLoader());
vr.mPrimaryUserId = (UserId) source.readSerializable();
vr.mUserIds = new ArrayList<>();
@ -388,8 +378,6 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
vr.mSecretKey = source.readByte() == 1;
vr.mKeybaseName = source.readString();
vr.mFbUsername = source.readString();
vr.mOrigins = new ArrayList<>();
source.readStringList(vr.mOrigins);
return vr;
}

View file

@ -18,8 +18,8 @@
package org.sufficientlysecure.keychain.keyimport;
import com.textuality.keybase.lib.KeybaseException;
import com.textuality.keybase.lib.Match;
import com.textuality.keybase.lib.KeybaseQuery;
import com.textuality.keybase.lib.Match;
import com.textuality.keybase.lib.User;
import org.sufficientlysecure.keychain.Constants;
@ -32,9 +32,8 @@ import java.util.ArrayList;
import java.util.List;
public class KeybaseKeyserver extends Keyserver {
public static final String ORIGIN = "keybase:keybase.io";
Proxy mProxy;
private Proxy mProxy;
public KeybaseKeyserver(Proxy proxy) {
mProxy = proxy;
@ -71,7 +70,6 @@ public class KeybaseKeyserver extends Keyserver {
private ImportKeysListEntry makeEntry(Match match, String query) throws KeybaseException {
final ImportKeysListEntry entry = new ImportKeysListEntry();
entry.setQuery(query);
entry.addOrigin(ORIGIN);
entry.setRevoked(false); // keybase doesnt say anything about revoked keys