Added public key and placeholder onion address.

This commit is contained in:
akwizgran
2016-04-21 16:07:51 +01:00
parent 5c2f56549b
commit 9b5d3ecb7a
4 changed files with 44 additions and 36 deletions

View File

@@ -24,6 +24,8 @@ import dagger.Module;
import dagger.Provides;
import static android.content.Context.MODE_PRIVATE;
import static org.briarproject.api.reporting.ReportingConstants.DEV_ONION_ADDRESS;
import static org.briarproject.api.reporting.ReportingConstants.DEV_PUBLIC_KEY_HEX;
@Module
public class AppModule {
@@ -97,36 +99,22 @@ public class AppModule {
@Provides
@Singleton
public DevConfig provideDevConfig(CryptoComponent crypto) {
final PublicKey pub;
try {
// TODO fill in
pub = crypto.getMessageKeyParser()
.parsePublicKey(StringUtils.fromHexString(""));
} catch (GeneralSecurityException e) {
throw new RuntimeException(e);
}
public DevConfig provideDevConfig(final CryptoComponent crypto) {
return new DevConfig() {
private final PublicKey DEV_PUB_KEY = pub;
// TODO fill in
private final String DEV_ONION = "";
private final int DEV_REPORT_PORT = 8080;
@Override
public PublicKey getDevPublicKey() {
return DEV_PUB_KEY;
try {
return crypto.getMessageKeyParser().parsePublicKey(
StringUtils.fromHexString(DEV_PUBLIC_KEY_HEX));
} catch (GeneralSecurityException e) {
throw new RuntimeException(e);
}
}
@Override
public String getDevOnionAddress() {
return DEV_ONION;
}
@Override
public int getDevReportPort() {
return DEV_REPORT_PORT;
return DEV_ONION_ADDRESS;
}
};
}

View File

@@ -7,6 +7,4 @@ public interface DevConfig {
PublicKey getDevPublicKey();
String getDevOnionAddress();
int getDevReportPort();
}

View File

@@ -0,0 +1,25 @@
package org.briarproject.api.reporting;
public interface ReportingConstants {
/**
* Public key for reporting crashes and feedback to the developers. This
* is an ECIES key on the brainpoolp512r1 curve, encoded in SEC 1 format
* without point compression.
*/
String DEV_PUBLIC_KEY_HEX =
"0457AD1619FBD433D5E13D5560697054"
+ "6E8FC5F4EF83A8C18718E8BF59BB601F"
+ "E20CCB233F06714A1BED370141A04C81"
+ "808CF2EE95C7323CDEE5999670BD1174"
+ "1F65ED691F355518E1A7E5E54BDDCA4C"
+ "B86BD8DB8842BBFD706EBD9708DB8C04"
+ "4FF006F215D83A66B3AEBAD674C4C1C4"
+ "218121A38FA1FDD4A51E77588D90BD9652";
/**
* Hidden service address for reporting crashes and feedback to the
* developers. TODO: Replace this with a real address.
*/
String DEV_ONION_ADDRESS = "aaaaaaaaaaaaaaaa.onion";
}

View File

@@ -22,7 +22,6 @@ import java.net.Socket;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.nio.charset.Charset;
import java.util.Date;
import java.util.List;
import java.util.logging.Logger;
@@ -33,7 +32,7 @@ class DevReporterImpl implements DevReporter {
private static final Logger LOG =
Logger.getLogger(DevReporterImpl.class.getName());
private static final int TIMEOUT = 30 * 1000; // 30 seconds
private static final int SOCKET_TIMEOUT = 30 * 1000; // 30 seconds
private static final String PREFIX = "briar-";
private static final String REPORT_EXT = ".report";
private static final String CRLF = "\r\n";
@@ -46,13 +45,12 @@ class DevReporterImpl implements DevReporter {
this.devConfig = devConfig;
}
private Socket connectToDevelopers(int socksPort, int devPort)
private Socket connectToDevelopers(int socksPort)
throws UnknownHostException, SocksException, SocketException {
Socks5Proxy proxy = new Socks5Proxy("127.0.0.1", socksPort);
proxy.resolveAddrLocally(false);
Socket s =
new SocksSocket(proxy, devConfig.getDevOnionAddress(), devPort);
s.setSoTimeout(TIMEOUT);
Socket s = new SocksSocket(proxy, devConfig.getDevOnionAddress(), 80);
s.setSoTimeout(SOCKET_TIMEOUT);
return s;
}
@@ -63,7 +61,7 @@ class DevReporterImpl implements DevReporter {
crypto.encryptToKey(devConfig.getDevPublicKey(),
StringUtils.toUtf8(crashReport));
String filename = PREFIX + new Date().getTime() + REPORT_EXT;
String filename = PREFIX + System.currentTimeMillis() + REPORT_EXT;
File report = new File(crashReportDir, filename);
PrintWriter writer = null;
try {
@@ -83,14 +81,13 @@ class DevReporterImpl implements DevReporter {
if (reports == null || reports.length == 0)
return; // No crash reports to send
LOG.info("Connecting to developers' Hidden Service");
LOG.info("Connecting to developers");
Socket s;
try {
s = connectToDevelopers(socksPort,
devConfig.getDevReportPort());
s = connectToDevelopers(socksPort);
} catch (IOException e) {
if (LOG.isLoggable(WARNING))
LOG.log(WARNING, "Tor SOCKS proxy failed", e);
LOG.log(WARNING, "Could not connect to developers", e);
return;
}
@@ -109,9 +106,9 @@ class DevReporterImpl implements DevReporter {
writer.append(line).append(CRLF);
}
writer.append(CRLF);
writer.flush();
f.delete();
}
writer.flush();
LOG.info("Crash reports sent");
} catch (IOException e) {
if (LOG.isLoggable(WARNING))