From f1c0df7d87f1d128b0eb9d11b359ec1b84f08716 Mon Sep 17 00:00:00 2001 From: Alan Evans Date: Tue, 25 Aug 2020 17:10:07 -0300 Subject: [PATCH] Update KBS Service Id on staging. --- app/build.gradle | 2 ++ .../securesms/dependencies/ApplicationDependencies.java | 2 ++ .../signalservice/api/KeyBackupService.java | 8 +++++--- .../signalservice/api/SignalServiceAccountManager.java | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index adea7ce496..e3d73f1fc8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -124,6 +124,7 @@ android { buildConfigField "String", "SIGNAL_AGENT", "\"OWA\"" buildConfigField "String", "CDS_MRENCLAVE", "\"bd123560b01c8fa92935bc5ae15cd2064e5c45215f23f0bd40364d521329d2ad\"" buildConfigField "String", "KBS_ENCLAVE_NAME", "\"fe7c1bfae98f9b073d220366ea31163ee82f6d04bead774f71ca8e5c40847bfe\"" + buildConfigField "String", "KBS_SERVICE_ID", "\"fe7c1bfae98f9b073d220366ea31163ee82f6d04bead774f71ca8e5c40847bfe\"" buildConfigField "String", "KBS_MRENCLAVE", "\"a3baab19ef6ce6f34ab9ebb25ba722725ae44a8872dc0ff08ad6d83a9489de87\"" buildConfigField "String", "UNIDENTIFIED_SENDER_TRUST_ROOT", "\"BXu6QIKVz5MA8gstzfOgRQGqyLqOwNKHL6INkv3IHWMF\"" buildConfigField "String", "ZKGROUP_SERVER_PUBLIC_PARAMS", "\"AMhf5ywVwITZMsff/eCyudZx9JDmkkkbV6PInzG4p8x3VqVJSFiMvnvlEKWuRob/1eaIetR31IYeAbm0NdOuHH8Qi+Rexi1wLlpzIo1gstHWBfZzy1+qHRV5A4TqPp15YzBPm0WSggW6PbSn+F4lf57VCnHF7p8SvzAA2ZZJPYJURt8X7bbg+H3i+PEjH9DXItNEqs2sNcug37xZQDLm7X0=\"" @@ -199,6 +200,7 @@ android { buildConfigField "String", "SIGNAL_KEY_BACKUP_URL", "\"https://api-staging.backup.signal.org\"" buildConfigField "String", "CDS_MRENCLAVE", "\"bd123560b01c8fa92935bc5ae15cd2064e5c45215f23f0bd40364d521329d2ad\"" buildConfigField "String", "KBS_ENCLAVE_NAME", "\"823a3b2c037ff0cbe305cc48928cfcc97c9ed4a8ca6d49af6f7d6981fb60a4e9\"" + buildConfigField "String", "KBS_SERVICE_ID", "\"038c40bbbacdc873caa81ac793bb75afde6dfe436a99ab1f15e3f0cbb7434ced\"" buildConfigField "String", "UNIDENTIFIED_SENDER_TRUST_ROOT", "\"BbqY1DzohE4NUZoVF+L18oUPrK3kILllLEJh2UnPSsEx\"" buildConfigField "String", "ZKGROUP_SERVER_PUBLIC_PARAMS", "\"ABSY21VckQcbSXVNCGRYJcfWHiAMZmpTtTELcDmxgdFbtp/bWsSxZdMKzfCp8rvIs8ocCU3B37fT3r4Mi5qAemeGeR2X+/YmOGR5ofui7tD5mDQfstAI9i+4WpMtIe8KC3wU5w3Inq3uNWVmoGtpKndsNfwJrCg0Hd9zmObhypUnSkfYn2ooMOOnBpfdanRtrvetZUayDMSC5iSRcXKpdls=\"" } diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java index e52635a7f4..33ae68d030 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java @@ -21,6 +21,7 @@ import org.thoughtcrime.securesms.messages.IncomingMessageObserver; import org.thoughtcrime.securesms.util.EarlyMessageCache; import org.thoughtcrime.securesms.util.FeatureFlags; import org.thoughtcrime.securesms.util.FrameRateTracker; +import org.thoughtcrime.securesms.util.Hex; import org.thoughtcrime.securesms.util.IasKeyStore; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.whispersystems.signalservice.api.KeyBackupService; @@ -110,6 +111,7 @@ public class ApplicationDependencies { public static synchronized @NonNull KeyBackupService getKeyBackupService() { return getSignalServiceAccountManager().getKeyBackupService(IasKeyStore.getIasKeyStore(application), BuildConfig.KBS_ENCLAVE_NAME, + Hex.fromStringOrThrow(BuildConfig.KBS_SERVICE_ID), BuildConfig.KBS_MRENCLAVE, 10); } diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/KeyBackupService.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/KeyBackupService.java index 856129f19e..58a23426f6 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/KeyBackupService.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/KeyBackupService.java @@ -17,7 +17,6 @@ import org.whispersystems.signalservice.internal.keybackup.protos.BackupResponse import org.whispersystems.signalservice.internal.keybackup.protos.RestoreResponse; import org.whispersystems.signalservice.internal.push.PushServiceSocket; import org.whispersystems.signalservice.internal.push.RemoteAttestationUtil; -import org.whispersystems.signalservice.internal.util.Hex; import org.whispersystems.signalservice.internal.util.Util; import java.io.IOException; @@ -32,18 +31,21 @@ public final class KeyBackupService { private final KeyStore iasKeyStore; private final String enclaveName; + private final byte[] serviceId; private final String mrenclave; private final PushServiceSocket pushServiceSocket; private final int maxTries; KeyBackupService(KeyStore iasKeyStore, String enclaveName, + byte[] serviceId, String mrenclave, PushServiceSocket pushServiceSocket, int maxTries) { this.iasKeyStore = iasKeyStore; this.enclaveName = enclaveName; + this.serviceId = serviceId; this.mrenclave = mrenclave; this.pushServiceSocket = pushServiceSocket; this.maxTries = maxTries; @@ -158,7 +160,7 @@ public final class KeyBackupService { try { final int remainingTries = token.getTries(); final RemoteAttestation remoteAttestation = getAndVerifyRemoteAttestation(); - final KeyBackupRequest request = KeyBackupCipher.createKeyRestoreRequest(hashedPin.getKbsAccessKey(), token, remoteAttestation, Hex.fromStringCondensed(enclaveName)); + final KeyBackupRequest request = KeyBackupCipher.createKeyRestoreRequest(hashedPin.getKbsAccessKey(), token, remoteAttestation, serviceId); final KeyBackupResponse response = pushServiceSocket.putKbsData(authorization, request, remoteAttestation.getCookies(), enclaveName); final RestoreResponse status = KeyBackupCipher.getKeyRestoreResponse(response, remoteAttestation); @@ -228,7 +230,7 @@ public final class KeyBackupService { { try { RemoteAttestation remoteAttestation = getAndVerifyRemoteAttestation(); - KeyBackupRequest request = KeyBackupCipher.createKeyBackupRequest(kbsAccessKey, kbsData, token, remoteAttestation, Hex.fromStringCondensed(enclaveName), maxTries); + KeyBackupRequest request = KeyBackupCipher.createKeyBackupRequest(kbsAccessKey, kbsData, token, remoteAttestation, serviceId, maxTries); KeyBackupResponse response = pushServiceSocket.putKbsData(authorization, request, remoteAttestation.getCookies(), enclaveName); BackupResponse backupResponse = KeyBackupCipher.getKeyBackupResponse(response, remoteAttestation); BackupResponse.Status status = backupResponse.getStatus(); diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceAccountManager.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceAccountManager.java index b51dd46055..31e71cb167 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceAccountManager.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceAccountManager.java @@ -169,10 +169,11 @@ public class SignalServiceAccountManager { public KeyBackupService getKeyBackupService(KeyStore iasKeyStore, String enclaveName, + byte[] serviceId, String mrenclave, int tries) { - return new KeyBackupService(iasKeyStore, enclaveName, mrenclave, pushServiceSocket, tries); + return new KeyBackupService(iasKeyStore, enclaveName, serviceId, mrenclave, pushServiceSocket, tries); } /**