From 8b9fc30b97f081bbb752504091049a41108bd89f Mon Sep 17 00:00:00 2001 From: Alex Bakon Date: Thu, 3 Apr 2025 16:33:27 -0400 Subject: [PATCH] Migrate calls to deprecated libsignal methods. --- .../main/java/org/thoughtcrime/securesms/groups/GroupId.java | 4 ++-- .../securesms/profiles/manage/UsernameShareBottomSheet.kt | 4 ++-- .../whispersystems/signalservice/api/cds/CdsiV2Service.java | 2 +- .../internal/contacts/crypto/RemoteAttestationKeys.java | 5 ++--- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupId.java b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupId.java index ec4a08d7a5..90a72dfd0f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupId.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupId.java @@ -5,7 +5,7 @@ import androidx.annotation.Nullable; import org.signal.core.util.DatabaseId; import org.signal.core.util.Hex; -import org.signal.libsignal.protocol.kdf.HKDFv3; +import org.signal.libsignal.protocol.kdf.HKDF; import org.signal.libsignal.zkgroup.InvalidInputException; import org.signal.libsignal.zkgroup.groups.GroupIdentifier; import org.signal.libsignal.zkgroup.groups.GroupMasterKey; @@ -299,7 +299,7 @@ public abstract class GroupId implements DatabaseId { public GroupMasterKey deriveV2MigrationMasterKey() { try { - return new GroupMasterKey(new HKDFv3().deriveSecrets(getDecodedId(), "GV2 Migration".getBytes(), GroupMasterKey.SIZE)); + return new GroupMasterKey(HKDF.deriveSecrets(getDecodedId(), "GV2 Migration".getBytes(), GroupMasterKey.SIZE)); } catch (InvalidInputException e) { throw new AssertionError(e); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameShareBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameShareBottomSheet.kt index ba8510dae1..cdfe41aad5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameShareBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameShareBottomSheet.kt @@ -75,7 +75,7 @@ class UsernameShareBottomSheet : DSLSettingsBottomSheetFragment() { customPref( CopyButton.Model( - text = getString(R.string.signal_me_username_url, Base64.encodeUrlSafeWithoutPadding(Username.hash(username))), + text = getString(R.string.signal_me_username_url, Base64.encodeUrlSafeWithoutPadding(Username(username).hash)), onClick = { copyToClipboard(it) } @@ -86,7 +86,7 @@ class UsernameShareBottomSheet : DSLSettingsBottomSheetFragment() { customPref( ShareButton.Model( - text = getString(R.string.signal_me_username_url, Base64.encodeUrlSafeWithoutPadding(Username.hash(username))), + text = getString(R.string.signal_me_username_url, Base64.encodeUrlSafeWithoutPadding(Username(username).hash)), onClick = { openShareSheet(it.text) } diff --git a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/cds/CdsiV2Service.java b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/cds/CdsiV2Service.java index 416b8d91f9..fb23898b3f 100644 --- a/libsignal-service/src/main/java/org/whispersystems/signalservice/api/cds/CdsiV2Service.java +++ b/libsignal-service/src/main/java/org/whispersystems/signalservice/api/cds/CdsiV2Service.java @@ -89,7 +89,7 @@ public final class CdsiV2Service { private static CdsiLookupRequest buildLibsignalRequest(Request request) { HashMap serviceIds = new HashMap<>(request.serviceIds.size()); request.serviceIds.forEach((key, value) -> serviceIds.put(key.getLibSignalServiceId(), value)); - return new CdsiLookupRequest(request.previousE164s, request.newE164s, serviceIds, false, Optional.ofNullable(request.token)); + return new CdsiLookupRequest(request.previousE164s, request.newE164s, serviceIds, Optional.ofNullable(request.token)); } private static Response parseLibsignalResponse(CdsiLookupResponse response) { diff --git a/libsignal-service/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationKeys.java b/libsignal-service/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationKeys.java index 9ff5f8989c..5566728923 100644 --- a/libsignal-service/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationKeys.java +++ b/libsignal-service/src/main/java/org/whispersystems/signalservice/internal/contacts/crypto/RemoteAttestationKeys.java @@ -5,7 +5,7 @@ import org.signal.libsignal.protocol.InvalidKeyException; import org.signal.libsignal.protocol.ecc.Curve; import org.signal.libsignal.protocol.ecc.ECKeyPair; import org.signal.libsignal.protocol.ecc.ECPublicKey; -import org.signal.libsignal.protocol.kdf.HKDFv3; +import org.signal.libsignal.protocol.kdf.HKDF; import org.signal.libsignal.protocol.util.ByteUtil; public class RemoteAttestationKeys { @@ -20,8 +20,7 @@ public class RemoteAttestationKeys { byte[] masterSecret = ByteUtil.combine(ephemeralToEphemeral, ephemeralToStatic ); byte[] publicKeys = ByteUtil.combine(keyPair.getPublicKey().getPublicKeyBytes(), serverPublicEphemeral, serverPublicStatic); - HKDFv3 generator = new HKDFv3(); - byte[] keys = generator.deriveSecrets(masterSecret, publicKeys, new byte[0], clientKey.length + serverKey.length); + byte[] keys = HKDF.deriveSecrets(masterSecret, publicKeys, new byte[0], clientKey.length + serverKey.length); System.arraycopy(keys, 0, clientKey, 0, clientKey.length); System.arraycopy(keys, clientKey.length, serverKey, 0, serverKey.length);