aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-10-29 16:58:20 +0100
committerVincent Breitmoser <valodim@mugenguild.com>2015-10-29 16:58:20 +0100
commitee79cc76d399ff499ee794ac694147341c8e5133 (patch)
tree9fb19b864666b1ab068dbccc0ecbff119a7a7e80 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java
parent1c83c33d35ae68a301c18d94c155d3bb7ddf3dd0 (diff)
downloadopen-keychain-ee79cc76d399ff499ee794ac694147341c8e5133.tar.gz
open-keychain-ee79cc76d399ff499ee794ac694147341c8e5133.tar.bz2
open-keychain-ee79cc76d399ff499ee794ac694147341c8e5133.zip
make use of proxies a Keyserver property
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java35
1 files changed, 19 insertions, 16 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java
index f05ff3836..6eab13126 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java
@@ -76,6 +76,7 @@ public class HkpKeyserver extends Keyserver {
private String mHost;
private short mPort;
+ private Proxy mProxy;
private boolean mSecure;
/**
@@ -152,17 +153,17 @@ public class HkpKeyserver extends Keyserver {
* connect using {@link #PORT_DEFAULT}. However, port may be specified after colon
* ("<code>hostname:port</code>", eg. "<code>p80.pool.sks-keyservers.net:80</code>").
*/
- public HkpKeyserver(String hostAndPort) {
+ public HkpKeyserver(String hostAndPort, Proxy proxy) {
String host = hostAndPort;
short port = PORT_DEFAULT;
boolean secure = false;
String[] parts = hostAndPort.split(":");
if (parts.length > 1) {
if (!parts[0].contains(".")) { // This is not a domain or ip, so it must be a protocol name
- if (parts[0].equalsIgnoreCase("hkps") || parts[0].equalsIgnoreCase("https")) {
+ if ("hkps".equalsIgnoreCase(parts[0]) || "https".equalsIgnoreCase(parts[0])) {
secure = true;
port = PORT_DEFAULT_HKPS;
- } else if (!parts[0].equalsIgnoreCase("hkp") && !parts[0].equalsIgnoreCase("http")) {
+ } else if (!"hkp".equalsIgnoreCase(parts[0]) && !"http".equalsIgnoreCase(parts[0])) {
throw new IllegalArgumentException("Protocol " + parts[0] + " is unknown");
}
host = parts[1];
@@ -179,16 +180,18 @@ public class HkpKeyserver extends Keyserver {
}
mHost = host;
mPort = port;
+ mProxy = proxy;
mSecure = secure;
}
- public HkpKeyserver(String host, short port) {
- this(host, port, false);
+ public HkpKeyserver(String host, short port, Proxy proxy) {
+ this(host, port, proxy, false);
}
- public HkpKeyserver(String host, short port, boolean secure) {
+ public HkpKeyserver(String host, short port, Proxy proxy, boolean secure) {
mHost = host;
mPort = port;
+ mProxy = proxy;
mSecure = secure;
}
@@ -253,7 +256,7 @@ public class HkpKeyserver extends Keyserver {
* Results are sorted by creation date of key!
*/
@Override
- public ArrayList<ImportKeysListEntry> search(String query, Proxy proxy) throws QueryFailedException,
+ public ArrayList<ImportKeysListEntry> search(String query) throws QueryFailedException,
QueryNeedsRepairException {
ArrayList<ImportKeysListEntry> results = new ArrayList<>();
@@ -271,7 +274,7 @@ public class HkpKeyserver extends Keyserver {
String data;
try {
- data = query(request, proxy);
+ data = query(request, mProxy);
} catch (HttpError e) {
if (e.getData() != null) {
Log.d(Constants.TAG, "returned error data: " + e.getData().toLowerCase(Locale.ENGLISH));
@@ -375,12 +378,12 @@ public class HkpKeyserver extends Keyserver {
}
@Override
- public String get(String keyIdHex, @NonNull Proxy proxy) throws QueryFailedException {
+ public String get(String keyIdHex) throws QueryFailedException {
String request = "/pks/lookup?op=get&options=mr&search=" + keyIdHex;
- Log.d(Constants.TAG, "hkp keyserver get: " + request + " using Proxy: " + proxy);
+ Log.d(Constants.TAG, "hkp keyserver get: " + request + " using Proxy: " + mProxy);
String data;
try {
- data = query(request, proxy);
+ data = query(request, mProxy);
} catch (HttpError httpError) {
Log.d(Constants.TAG, "Failed to get key at HkpKeyserver", httpError);
throw new QueryFailedException("not found");
@@ -396,7 +399,7 @@ public class HkpKeyserver extends Keyserver {
}
@Override
- public void add(String armoredKey, Proxy proxy) throws AddKeyException {
+ public void add(String armoredKey) throws AddKeyException {
try {
String path = "/pks/add";
String params;
@@ -407,7 +410,7 @@ public class HkpKeyserver extends Keyserver {
}
URL url = new URL(getUrlPrefix() + mHost + ":" + mPort + path);
- Log.d(Constants.TAG, "hkp keyserver add: " + url.toString());
+ Log.d(Constants.TAG, "hkp keyserver add: " + url);
Log.d(Constants.TAG, "params: " + params);
RequestBody body = RequestBody.create(MediaType.parse("application/x-www-form-urlencoded"), params);
@@ -419,7 +422,7 @@ public class HkpKeyserver extends Keyserver {
.post(body)
.build();
- Response response = getClient(url, proxy).newCall(request).execute();
+ Response response = getClient(url, mProxy).newCall(request).execute();
Log.d(Constants.TAG, "response code: " + response.code());
Log.d(Constants.TAG, "answer: " + response.body().string());
@@ -445,7 +448,7 @@ public class HkpKeyserver extends Keyserver {
* @return A responsible Keyserver or null if not found.
* TODO: Add proxy functionality
*/
- public static HkpKeyserver resolve(String domain) {
+ public static HkpKeyserver resolve(String domain, Proxy proxy) {
try {
Record[] records = new Client().query(new Question("_hkp._tcp." + domain, Record.TYPE.SRV)).getAnswers();
if (records.length > 0) {
@@ -460,7 +463,7 @@ public class HkpKeyserver extends Keyserver {
Record record = records[0]; // This is our best choice
if (record.getPayload().getType() == Record.TYPE.SRV) {
return new HkpKeyserver(((SRV) record.getPayload()).getName(),
- (short) ((SRV) record.getPayload()).getPort());
+ (short) ((SRV) record.getPayload()).getPort(), proxy);
}
}
} catch (Exception ignored) {