]> nmode's Git Repositories - signal-cli/commitdiff
Update libsignal-service
authorAsamK <asamk@gmx.de>
Sun, 15 Dec 2024 20:13:59 +0000 (21:13 +0100)
committerAsamK <asamk@gmx.de>
Sun, 15 Dec 2024 20:13:59 +0000 (21:13 +0100)
gradle/libs.versions.toml
lib/src/main/java/org/asamk/signal/manager/helper/GroupV2Helper.java
lib/src/main/java/org/asamk/signal/manager/syncStorage/DefaultStorageRecordProcessor.java

index 483ea24408af0209f7fdc22136694eec2e30caac..84f2d8fc8007645757cc99415891faf1d5893835 100644 (file)
@@ -10,7 +10,7 @@ slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }
 slf4j-jul = { module = "org.slf4j:jul-to-slf4j", version.ref = "slf4j" }
 logback = "ch.qos.logback:logback-classic:1.5.12"
 
 slf4j-jul = { module = "org.slf4j:jul-to-slf4j", version.ref = "slf4j" }
 logback = "ch.qos.logback:logback-classic:1.5.12"
 
-signalservice = "com.github.turasa:signal-service-java:2.15.3_unofficial_112"
+signalservice = "com.github.turasa:signal-service-java:2.15.3_unofficial_113"
 sqlite = "org.xerial:sqlite-jdbc:3.47.0.0"
 hikari = "com.zaxxer:HikariCP:6.2.1"
 junit-jupiter = "org.junit.jupiter:junit-jupiter:5.11.3"
 sqlite = "org.xerial:sqlite-jdbc:3.47.0.0"
 hikari = "com.zaxxer:HikariCP:6.2.1"
 junit-jupiter = "org.junit.jupiter:junit-jupiter:5.11.3"
index a3330d5c07f0fce5124d92089940665643981fba..900d7ea96812edb96e4cf6f6bd857e9b8e1897f9 100644 (file)
@@ -28,6 +28,7 @@ import org.signal.storageservice.protos.groups.local.DecryptedMember;
 import org.signal.storageservice.protos.groups.local.DecryptedPendingMember;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.signal.storageservice.protos.groups.local.DecryptedPendingMember;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.whispersystems.signalservice.api.groupsv2.DecryptChangeVerificationMode;
 import org.whispersystems.signalservice.api.groupsv2.DecryptedGroupResponse;
 import org.whispersystems.signalservice.api.groupsv2.DecryptedGroupUtil;
 import org.whispersystems.signalservice.api.groupsv2.GroupCandidate;
 import org.whispersystems.signalservice.api.groupsv2.DecryptedGroupResponse;
 import org.whispersystems.signalservice.api.groupsv2.DecryptedGroupUtil;
 import org.whispersystems.signalservice.api.groupsv2.GroupCandidate;
@@ -652,11 +653,13 @@ class GroupV2Helper {
 
     DecryptedGroupChange getDecryptedGroupChange(byte[] signedGroupChange, GroupMasterKey groupMasterKey) {
         if (signedGroupChange != null) {
 
     DecryptedGroupChange getDecryptedGroupChange(byte[] signedGroupChange, GroupMasterKey groupMasterKey) {
         if (signedGroupChange != null) {
-            var groupOperations = dependencies.getGroupsV2Operations()
-                    .forGroup(GroupSecretParams.deriveFromMasterKey(groupMasterKey));
+            final var groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupMasterKey);
+            final var groupOperations = dependencies.getGroupsV2Operations().forGroup(groupSecretParams);
+            final var groupId = groupSecretParams.getPublicParams().getGroupIdentifier();
 
             try {
 
             try {
-                return groupOperations.decryptChange(GroupChange.ADAPTER.decode(signedGroupChange), true).orElse(null);
+                return groupOperations.decryptChange(GroupChange.ADAPTER.decode(signedGroupChange),
+                        DecryptChangeVerificationMode.verify(groupId)).orElse(null);
             } catch (VerificationFailedException | InvalidGroupStateException | IOException e) {
                 return null;
             }
             } catch (VerificationFailedException | InvalidGroupStateException | IOException e) {
                 return null;
             }
index e9e4ef7f97be732c863ad639a25c4b694d0f443a..87acb991ddbb0806b184cd208f1202c7d6d40e7b 100644 (file)
@@ -49,7 +49,7 @@ abstract class DefaultStorageRecordProcessor<E extends SignalRecord<?>> implemen
         final var local = getMatching(remote);
 
         if (local.isEmpty()) {
         final var local = getMatching(remote);
 
         if (local.isEmpty()) {
-            debug(remote.getId(), remote, "No matching local record. Inserting.");
+            debug(remote.getId(), remote, "[Local Insert] No matching local record. Inserting.");
             insertLocal(remote);
             return;
         }
             insertLocal(remote);
             return;
         }
@@ -70,7 +70,7 @@ abstract class DefaultStorageRecordProcessor<E extends SignalRecord<?>> implemen
 
         if (!merged.equals(local.get())) {
             final var update = new StorageRecordUpdate<>(local.get(), merged);
 
         if (!merged.equals(local.get())) {
             final var update = new StorageRecordUpdate<>(local.get(), merged);
-            debug(remote.getId(), remote, "[Local Update] " + update);
+            debug(remote.getId(), remote, "[Local Update] " + local.get().describeDiff(merged));
             updateLocal(update);
         }
     }
             updateLocal(update);
         }
     }