ImportKeys: Don't save origins (not used) and fix logic
This commit is contained in:
parent
756f427f19
commit
b833b9495c
|
@ -51,10 +51,6 @@ public class FacebookKeyserver extends Keyserver {
|
||||||
private static final String FB_HOST = "facebook.com";
|
private static final String FB_HOST = "facebook.com";
|
||||||
private static final String FB_HOST_WWW = "www." + FB_HOST;
|
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;
|
private final Proxy mProxy;
|
||||||
|
|
||||||
public FacebookKeyserver(Proxy proxy) {
|
public FacebookKeyserver(Proxy proxy) {
|
||||||
|
@ -148,7 +144,6 @@ public class FacebookKeyserver extends Keyserver {
|
||||||
throws UnsupportedOperationException {
|
throws UnsupportedOperationException {
|
||||||
ImportKeysListEntry entry = new ImportKeysListEntry();
|
ImportKeysListEntry entry = new ImportKeysListEntry();
|
||||||
entry.setSecretKey(false); // keys imported from Facebook must be public
|
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
|
// so we can query for the Facebook username directly, and to identify the source to
|
||||||
// download the key from
|
// download the key from
|
||||||
|
|
|
@ -54,6 +54,7 @@ import okhttp3.RequestBody;
|
||||||
import okhttp3.Response;
|
import okhttp3.Response;
|
||||||
|
|
||||||
public class HkpKeyserver extends Keyserver {
|
public class HkpKeyserver extends Keyserver {
|
||||||
|
|
||||||
private static class HttpError extends Exception {
|
private static class HttpError extends Exception {
|
||||||
private static final long serialVersionUID = 1718783705229428893L;
|
private static final long serialVersionUID = 1718783705229428893L;
|
||||||
private int mCode;
|
private int mCode;
|
||||||
|
@ -274,7 +275,6 @@ public class HkpKeyserver extends Keyserver {
|
||||||
while (matcher.find()) {
|
while (matcher.find()) {
|
||||||
final ImportKeysListEntry entry = new ImportKeysListEntry();
|
final ImportKeysListEntry entry = new ImportKeysListEntry();
|
||||||
entry.setQuery(query);
|
entry.setQuery(query);
|
||||||
entry.addOrigin(getUrlPrefix() + mHost + ":" + mPort);
|
|
||||||
|
|
||||||
// group 1 contains the full fingerprint (v4) or the long key id if available
|
// 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
|
// see https://bitbucket.org/skskeyserver/sks-keyserver/pull-request/12/fixes-for-machine-readable-indexes/diff
|
||||||
|
|
|
@ -72,32 +72,17 @@ public class ImportKeysList extends ArrayList<ImportKeysListEntry> {
|
||||||
|
|
||||||
if (incoming.getKeyserver() != null) {
|
if (incoming.getKeyserver() != null) {
|
||||||
existing.setKeyserver(incoming.getKeyserver());
|
existing.setKeyserver(incoming.getKeyserver());
|
||||||
}
|
|
||||||
|
|
||||||
// keep track if this key result is from a HKP keyserver
|
|
||||||
boolean incomingFromHkpServer = true;
|
|
||||||
// we’re 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
|
// Mail addresses returned by HKP servers are preferred over keybase.io IDs
|
||||||
existing.setPrimaryUserId(incoming.getPrimaryUserId());
|
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;
|
modified = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,6 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
|
||||||
private String mKeybaseName;
|
private String mKeybaseName;
|
||||||
private String mFbUsername;
|
private String mFbUsername;
|
||||||
private String mQuery;
|
private String mQuery;
|
||||||
private ArrayList<String> mOrigins;
|
|
||||||
private Integer mHashCode = null;
|
private Integer mHashCode = null;
|
||||||
|
|
||||||
public ParcelableKeyRing getParcelableKeyRing() {
|
public ParcelableKeyRing getParcelableKeyRing() {
|
||||||
|
@ -203,14 +202,6 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
|
||||||
mQuery = query;
|
mQuery = query;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<String> getOrigins() {
|
|
||||||
return mOrigins;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addOrigin(String origin) {
|
|
||||||
mOrigins.add(origin);
|
|
||||||
}
|
|
||||||
|
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return mHashCode != null ? mHashCode : super.hashCode();
|
return mHashCode != null ? mHashCode : super.hashCode();
|
||||||
}
|
}
|
||||||
|
@ -264,7 +255,6 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
|
||||||
mSecretKey = false;
|
mSecretKey = false;
|
||||||
|
|
||||||
mUserIds = new ArrayList<>();
|
mUserIds = new ArrayList<>();
|
||||||
mOrigins = new ArrayList<>();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -367,12 +357,12 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
|
||||||
dest.writeByte((byte) (mSecretKey ? 1 : 0));
|
dest.writeByte((byte) (mSecretKey ? 1 : 0));
|
||||||
dest.writeString(mKeybaseName);
|
dest.writeString(mKeybaseName);
|
||||||
dest.writeString(mFbUsername);
|
dest.writeString(mFbUsername);
|
||||||
dest.writeStringList(mOrigins);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Creator<ImportKeysListEntry> CREATOR = new Creator<ImportKeysListEntry>() {
|
public static final Creator<ImportKeysListEntry> CREATOR = new Creator<ImportKeysListEntry>() {
|
||||||
public ImportKeysListEntry createFromParcel(final Parcel source) {
|
public ImportKeysListEntry createFromParcel(final Parcel source) {
|
||||||
ImportKeysListEntry vr = new ImportKeysListEntry();
|
ImportKeysListEntry vr = new ImportKeysListEntry();
|
||||||
|
|
||||||
vr.mParcelableKeyRing = source.readParcelable(ParcelableKeyRing.class.getClassLoader());
|
vr.mParcelableKeyRing = source.readParcelable(ParcelableKeyRing.class.getClassLoader());
|
||||||
vr.mPrimaryUserId = (UserId) source.readSerializable();
|
vr.mPrimaryUserId = (UserId) source.readSerializable();
|
||||||
vr.mUserIds = new ArrayList<>();
|
vr.mUserIds = new ArrayList<>();
|
||||||
|
@ -388,8 +378,6 @@ public class ImportKeysListEntry implements Serializable, Parcelable {
|
||||||
vr.mSecretKey = source.readByte() == 1;
|
vr.mSecretKey = source.readByte() == 1;
|
||||||
vr.mKeybaseName = source.readString();
|
vr.mKeybaseName = source.readString();
|
||||||
vr.mFbUsername = source.readString();
|
vr.mFbUsername = source.readString();
|
||||||
vr.mOrigins = new ArrayList<>();
|
|
||||||
source.readStringList(vr.mOrigins);
|
|
||||||
|
|
||||||
return vr;
|
return vr;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,8 +18,8 @@
|
||||||
package org.sufficientlysecure.keychain.keyimport;
|
package org.sufficientlysecure.keychain.keyimport;
|
||||||
|
|
||||||
import com.textuality.keybase.lib.KeybaseException;
|
import com.textuality.keybase.lib.KeybaseException;
|
||||||
import com.textuality.keybase.lib.Match;
|
|
||||||
import com.textuality.keybase.lib.KeybaseQuery;
|
import com.textuality.keybase.lib.KeybaseQuery;
|
||||||
|
import com.textuality.keybase.lib.Match;
|
||||||
import com.textuality.keybase.lib.User;
|
import com.textuality.keybase.lib.User;
|
||||||
|
|
||||||
import org.sufficientlysecure.keychain.Constants;
|
import org.sufficientlysecure.keychain.Constants;
|
||||||
|
@ -32,9 +32,8 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class KeybaseKeyserver extends Keyserver {
|
public class KeybaseKeyserver extends Keyserver {
|
||||||
public static final String ORIGIN = "keybase:keybase.io";
|
|
||||||
|
|
||||||
Proxy mProxy;
|
private Proxy mProxy;
|
||||||
|
|
||||||
public KeybaseKeyserver(Proxy proxy) {
|
public KeybaseKeyserver(Proxy proxy) {
|
||||||
mProxy = proxy;
|
mProxy = proxy;
|
||||||
|
@ -71,7 +70,6 @@ public class KeybaseKeyserver extends Keyserver {
|
||||||
private ImportKeysListEntry makeEntry(Match match, String query) throws KeybaseException {
|
private ImportKeysListEntry makeEntry(Match match, String query) throws KeybaseException {
|
||||||
final ImportKeysListEntry entry = new ImportKeysListEntry();
|
final ImportKeysListEntry entry = new ImportKeysListEntry();
|
||||||
entry.setQuery(query);
|
entry.setQuery(query);
|
||||||
entry.addOrigin(ORIGIN);
|
|
||||||
|
|
||||||
entry.setRevoked(false); // keybase doesn’t say anything about revoked keys
|
entry.setRevoked(false); // keybase doesn’t say anything about revoked keys
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue