public void reissueWithResponse( long challenge, StopWatch watch ) {
			HttpURLConnection conn = null;
			try {
				byte[] encrypted_response = null;

				Signature signer = Signature.getInstance("SHA1withRSA");
				signer.initSign(keys.getPrivate());
				signer.update(ByteManip.ltob(challenge+1));
				encrypted_response = signer.sign();

				String urlStr = community_url + "?" + CommunityConstants.BASE64_PUBLIC_KEY + "=" + URLEncoder.encode(base64Key, "UTF-8") + "&" + CommunityConstants.CHALLENGE_RESPONSE + "=" + URLEncoder.encode(Base64.encode(encrypted_response), "UTF-8");
//				System.out.println("url str: " + urlStr);
				URL url = new URL(urlStr);
				
				watch.lap("intermediary tasks");
				
				conn = (HttpURLConnection) url.openConnection();
				
				if( conn instanceof HttpsURLConnection ) {
					try {
						((HttpsURLConnection) conn).setSSLSocketFactory(sslcontext.getSocketFactory());
					} catch( Exception e ) {
						e.printStackTrace();
						throw new IOException(e.getMessage());
					}
				}

				ByteArrayOutputStream bytes = new ByteArrayOutputStream();
				String line = null;
				BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
				
				ref_connections.addValue(watch.lap("connect2"));
				
				while( (line = in.readLine()) != null ) {
					bytes.write(line.getBytes());
				}
//				processAsXML(bytes);
				//System.out.println("read: " + bytes.size() + " in " + (System.currentTimeMillis()-start) + " ms e2e");
				ref_io.addValue(watch.lap("read response to 2"));
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				if( conn != null ) {
					conn.disconnect();
				}
			}
		}