From 36f1183d6c61fc532b8a9a36da923d235d2fa52b Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Wed, 10 Aug 2022 11:06:21 -0400 Subject: [PATCH] Update libsignal-client for CDSv2. --- app/build.gradle | 5 +- .../securesms/util/FeatureFlags.java | 2 +- dependencies.gradle | 2 +- gradle/verification-metadata.xml | 2295 +---------------- .../api/services/CdsiSocket.java | 24 +- 5 files changed, 19 insertions(+), 2309 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 20a653613..28882963a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -183,7 +183,7 @@ android { buildConfigField "String", "SIGNAL_CDN_URL", "\"https://cdn.signal.org\"" buildConfigField "String", "SIGNAL_CDN2_URL", "\"https://cdn2.signal.org\"" buildConfigField "String", "SIGNAL_CONTACT_DISCOVERY_URL", "\"https://api.directory.signal.org\"" - buildConfigField "String", "SIGNAL_CDSI_URL", "\"https://cdsi.staging.signal.org\"" + buildConfigField "String", "SIGNAL_CDSI_URL", "\"https://cdsi.signal.org\"" buildConfigField "String", "SIGNAL_SERVICE_STATUS_URL", "\"uptime.signal.org\"" buildConfigField "String", "SIGNAL_KEY_BACKUP_URL", "\"https://api.backup.signal.org\"" buildConfigField "String", "SIGNAL_SFU_URL", "\"https://sfu.voip.signal.org\"" @@ -201,7 +201,7 @@ android { buildConfigField "String[]", "SIGNAL_CONTENT_PROXY_IPS", content_proxy_ips buildConfigField "String", "SIGNAL_AGENT", "\"OWA\"" buildConfigField "String", "CDS_MRENCLAVE", "\"74778bb0f93ae1f78c26e67152bab0bbeb693cd56d1bb9b4e9244157acc58081\"" - buildConfigField "String", "CDSI_MRENCLAVE", "\"e5eaa62da3514e8b37ccabddb87e52e7f319ccf5120a13f9e1b42b87ec9dd3dd\"" + buildConfigField "String", "CDSI_MRENCLAVE", "\"7b75dd6e862decef9b37132d54be082441917a7790e82fe44f9cf653de03a75f\"" buildConfigField "org.thoughtcrime.securesms.KbsEnclave", "KBS_ENCLAVE", "new org.thoughtcrime.securesms.KbsEnclave(\"0cedba03535b41b67729ce9924185f831d7767928a1d1689acb689bc079c375f\", " + "\"187d2739d22be65e74b65f0055e74d31310e4267e5fac2b1246cc8beba81af39\", " + "\"ee19f1965b1eefa3dc4204eb70c04f397755f771b8c1909d080c04dad2a6a9ba\")" @@ -351,6 +351,7 @@ android { buildConfigField "String", "SIGNAL_CDN_URL", "\"https://cdn-staging.signal.org\"" buildConfigField "String", "SIGNAL_CDN2_URL", "\"https://cdn2-staging.signal.org\"" buildConfigField "String", "SIGNAL_CONTACT_DISCOVERY_URL", "\"https://api-staging.directory.signal.org\"" + buildConfigField "String", "SIGNAL_CDSI_URL", "\"https://cdsi.staging.signal.org\"" buildConfigField "String", "SIGNAL_KEY_BACKUP_URL", "\"https://api-staging.backup.signal.org\"" buildConfigField "String", "CDS_MRENCLAVE", "\"74778bb0f93ae1f78c26e67152bab0bbeb693cd56d1bb9b4e9244157acc58081\"" buildConfigField "org.thoughtcrime.securesms.KbsEnclave", "KBS_ENCLAVE", "new org.thoughtcrime.securesms.KbsEnclave(\"dd6f66d397d9e8cf6ec6db238e59a7be078dd50e9715427b9c89b409ffe53f99\", " + diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java index 0209c58dd..9583e2273 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java @@ -340,7 +340,7 @@ public final class FeatureFlags { * IMPORTANT: This is under active development. Enabling this *will* break your contacts in terrible, irreversible ways. */ public static boolean phoneNumberPrivacy() { - return getBoolean(PHONE_NUMBER_PRIVACY, false) && Environment.IS_STAGING; + return getBoolean(PHONE_NUMBER_PRIVACY, false); } /** Whether to use the custom streaming muxer or built in android muxer. */ diff --git a/dependencies.gradle b/dependencies.gradle index 251910caf..7e6ee2fcd 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -4,7 +4,7 @@ dependencyResolutionManagement { versionCatalogs { libs { - version('libsignal-client', '0.18.1') + version('libsignal-client', '0.19.3') version('exoplayer', '2.15.0') version('androidx-camera', '1.1.0') version('androidx-lifecycle', '2.3.1') diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index bd4d73e7c..0b54bfc7b 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -24,14 +24,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -53,17 +45,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - @@ -85,14 +71,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -122,49 +100,31 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - @@ -210,107 +170,61 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -324,9 +238,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -345,25 +256,16 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - @@ -393,33 +295,21 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - @@ -438,17 +328,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - @@ -470,78 +354,46 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -563,22 +415,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - @@ -592,9 +433,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -616,9 +454,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -640,22 +475,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - @@ -677,30 +501,16 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - @@ -730,17 +540,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - @@ -754,25 +558,16 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - @@ -858,30 +653,16 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - @@ -895,9 +676,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -927,118 +705,71 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1052,70 +783,41 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1166,17 +868,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - @@ -1190,9 +886,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1222,9 +915,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1238,9 +928,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1254,25 +941,16 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - @@ -1286,17 +964,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - @@ -1310,9 +982,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1326,9 +995,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1342,9 +1008,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1358,9 +1021,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1374,9 +1034,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1390,9 +1047,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1417,17 +1071,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - @@ -1473,9 +1121,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1489,9 +1134,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1505,9 +1147,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1529,9 +1168,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1545,33 +1181,21 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - @@ -1585,9 +1209,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1601,9 +1222,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1617,9 +1235,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1633,9 +1248,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1649,9 +1261,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1665,9 +1274,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1681,9 +1287,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1713,9 +1316,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1745,86 +1345,26 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1838,9 +1378,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1854,9 +1391,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1870,9 +1404,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -1886,136 +1417,76 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2061,121 +1532,76 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2189,342 +1615,161 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2535,151 +1780,51 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2699,114 +1844,56 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2817,60 +1904,32 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2879,14 +1938,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -2895,14 +1946,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -2911,14 +1954,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -2927,14 +1962,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -2943,14 +1970,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -2959,14 +1978,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -2975,14 +1986,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -2991,14 +1994,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -3007,14 +2002,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -3023,14 +2010,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -3043,38 +2022,21 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - @@ -3096,105 +2058,66 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3205,20 +2128,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - @@ -3228,22 +2143,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - @@ -3254,220 +2158,91 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3481,17 +2256,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - @@ -3502,17 +2266,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - @@ -3523,17 +2276,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - @@ -3544,17 +2286,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - @@ -3565,25 +2296,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - @@ -3594,17 +2311,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - @@ -3615,102 +2321,61 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3724,9 +2389,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -3740,1477 +2402,741 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -5316,9 +3242,6 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - @@ -5332,22 +3255,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - @@ -5398,17 +3310,11 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - @@ -5419,31 +3325,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - @@ -5453,194 +3340,106 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -5750,40 +3549,31 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - + + + + + + + - - - + + + - - - - - - - - - - + + @@ -5798,122 +3588,61 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/services/CdsiSocket.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/services/CdsiSocket.java index 8cb07ed3b..f8cd04fea 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/services/CdsiSocket.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/services/CdsiSocket.java @@ -50,24 +50,7 @@ final class CdsiSocket { private final String baseUrl; private final String mrEnclave; - private Cds2Client client; - - private static final byte[] CERTIFICATE = ("-----BEGIN CERTIFICATE-----\n" - + " MIICjzCCAjSgAwIBAgIUImUM1lqdNInzg7SVUr9QGzknBqwwCgYIKoZIzj0EAwIw\n" - + " aDEaMBgGA1UEAwwRSW50ZWwgU0dYIFJvb3QgQ0ExGjAYBgNVBAoMEUludGVsIENv\n" - + " cnBvcmF0aW9uMRQwEgYDVQQHDAtTYW50YSBDbGFyYTELMAkGA1UECAwCQ0ExCzAJ\n" - + " BgNVBAYTAlVTMB4XDTE4MDUyMTEwNDUxMFoXDTQ5MTIzMTIzNTk1OVowaDEaMBgG\n" - + " A1UEAwwRSW50ZWwgU0dYIFJvb3QgQ0ExGjAYBgNVBAoMEUludGVsIENvcnBvcmF0\n" - + " aW9uMRQwEgYDVQQHDAtTYW50YSBDbGFyYTELMAkGA1UECAwCQ0ExCzAJBgNVBAYT\n" - + " AlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEC6nEwMDIYZOj/iPWsCzaEKi7\n" - + " 1OiOSLRFhWGjbnBVJfVnkY4u3IjkDYYL0MxO4mqsyYjlBalTVYxFP2sJBK5zlKOB\n" - + " uzCBuDAfBgNVHSMEGDAWgBQiZQzWWp00ifODtJVSv1AbOScGrDBSBgNVHR8ESzBJ\n" - + " MEegRaBDhkFodHRwczovL2NlcnRpZmljYXRlcy50cnVzdGVkc2VydmljZXMuaW50\n" - + " ZWwuY29tL0ludGVsU0dYUm9vdENBLmRlcjAdBgNVHQ4EFgQUImUM1lqdNInzg7SV\n" - + " Ur9QGzknBqwwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYBAf8CAQEwCgYI\n" - + " KoZIzj0EAwIDSQAwRgIhAOW/5QkR+S9CiSDcNoowLuPRLsWGf/Yi7GSX94BgwTwg\n" - + " AiEA4J0lrHoMs+Xo5o/sX6O9QWxHRAvZUGOdRQ7cvqRXaqI=\n" - + " -----END CERTIFICATE-----").getBytes(StandardCharsets.UTF_8); + private Cds2Client client; CdsiSocket(SignalServiceConfiguration configuration, String mrEnclave) { this.baseUrl = configuration.getSignalCdsiUrls()[0].getUrl(); @@ -110,10 +93,7 @@ final class CdsiSocket { throw new IOException("Received a message before we were open!"); case WAITING_FOR_CONNECTION: - client = Cds2Client.create_NOT_FOR_PRODUCTION(Hex.fromStringCondensed(mrEnclave), - CERTIFICATE, - bytes.toByteArray(), - Instant.now().minus(Duration.ofHours(24))); + client = new Cds2Client(Hex.fromStringCondensed(mrEnclave), bytes.toByteArray(), Instant.now()); Log.d(TAG, "[onMessage] Sending initial handshake..."); webSocket.send(okio.ByteString.of(client.initialRequest()));