aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java
diff options
context:
space:
mode:
authormar-v-in <github@rvin.mooo.com>2014-06-24 00:57:04 +0200
committermar-v-in <github@rvin.mooo.com>2014-06-24 00:57:04 +0200
commit9a7fc6d464dbcf8fb6c6fd1ca4df252f4e320f7c (patch)
tree8faec6b32c8991270a2fc71c1bc1135d8e24a183 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java
parentca3d77bae9fbea7d0d582771c16b56057091d89d (diff)
downloadopen-keychain-9a7fc6d464dbcf8fb6c6fd1ca4df252f4e320f7c.tar.gz
open-keychain-9a7fc6d464dbcf8fb6c6fd1ca4df252f4e320f7c.tar.bz2
open-keychain-9a7fc6d464dbcf8fb6c6fd1ca4df252f4e320f7c.zip
Rewrote hkp add to work with hkps as well.
Also removes HttpClient dependency (deprecated for android)
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.java37
1 files changed, 13 insertions, 24 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 09bd34fc9..2af69c3d9 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java
@@ -18,24 +18,18 @@
package org.sufficientlysecure.keychain.keyimport;
+import android.net.Uri;
import de.measite.minidns.Client;
import de.measite.minidns.Question;
import de.measite.minidns.Record;
import de.measite.minidns.record.SRV;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
-import org.apache.http.NameValuePair;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.entity.UrlEncodedFormEntity;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.message.BasicNameValuePair;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.helper.TlsHelper;
import org.sufficientlysecure.keychain.pgp.PgpHelper;
import org.sufficientlysecure.keychain.pgp.PgpKeyHelper;
import org.sufficientlysecure.keychain.util.Log;
+import java.io.DataOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
@@ -46,7 +40,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.GregorianCalendar;
-import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
import java.util.regex.Matcher;
@@ -335,28 +328,24 @@ public class HkpKeyserver extends Keyserver {
return null;
}
- /*
- * TODO Use openConnection
- */
@Override
public void add(String armoredKey) throws AddKeyException {
- HttpClient client = new DefaultHttpClient();
try {
String query = getUrlPrefix() + mHost + ":" + mPort + "/pks/add";
- HttpPost post = new HttpPost(query);
+ String params = "keytext=" + Uri.encode(armoredKey);
Log.d(Constants.TAG, "hkp keyserver add: " + query);
- List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
- nameValuePairs.add(new BasicNameValuePair("keytext", armoredKey));
- post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
- HttpResponse response = client.execute(post);
- if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
- throw new AddKeyException();
- }
+ HttpURLConnection connection = openConnection(new URL(query));
+ connection.setRequestMethod("POST");
+ connection.addRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+ connection.setRequestProperty("Content-Length", Integer.toString(params.getBytes().length));
+ connection.setDoOutput(true);
+ DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
+ wr.writeBytes(params);
+ wr.flush();
+ wr.close();
} catch (IOException e) {
- // nothing to do, better luck on the next keyserver
- } finally {
- client.getConnectionManager().shutdown();
+ throw new AddKeyException();
}
}