From 9b5d3ecb7adc4e48c18eae24c12d7d95fa169a5b Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Thu, 21 Apr 2016 16:07:51 +0100 Subject: [PATCH] Added public key and placeholder onion address. --- .../org/briarproject/android/AppModule.java | 32 ++++++------------- .../briarproject/api/reporting/DevConfig.java | 2 -- .../api/reporting/ReportingConstants.java | 25 +++++++++++++++ .../reporting/DevReporterImpl.java | 21 ++++++------ 4 files changed, 44 insertions(+), 36 deletions(-) create mode 100644 briar-api/src/org/briarproject/api/reporting/ReportingConstants.java diff --git a/briar-android/src/org/briarproject/android/AppModule.java b/briar-android/src/org/briarproject/android/AppModule.java index 22d59c206c..0b5b031b92 100644 --- a/briar-android/src/org/briarproject/android/AppModule.java +++ b/briar-android/src/org/briarproject/android/AppModule.java @@ -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; } }; } diff --git a/briar-api/src/org/briarproject/api/reporting/DevConfig.java b/briar-api/src/org/briarproject/api/reporting/DevConfig.java index f82e813180..b6f4ccbf89 100644 --- a/briar-api/src/org/briarproject/api/reporting/DevConfig.java +++ b/briar-api/src/org/briarproject/api/reporting/DevConfig.java @@ -7,6 +7,4 @@ public interface DevConfig { PublicKey getDevPublicKey(); String getDevOnionAddress(); - - int getDevReportPort(); } diff --git a/briar-api/src/org/briarproject/api/reporting/ReportingConstants.java b/briar-api/src/org/briarproject/api/reporting/ReportingConstants.java new file mode 100644 index 0000000000..f1d69a1a19 --- /dev/null +++ b/briar-api/src/org/briarproject/api/reporting/ReportingConstants.java @@ -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"; +} diff --git a/briar-core/src/org/briarproject/reporting/DevReporterImpl.java b/briar-core/src/org/briarproject/reporting/DevReporterImpl.java index d34bbeeeff..192f10beec 100644 --- a/briar-core/src/org/briarproject/reporting/DevReporterImpl.java +++ b/briar-core/src/org/briarproject/reporting/DevReporterImpl.java @@ -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)) -- GitLab