X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/4adb11dada29ac6ca2d12270fd7e617007ff9bf3..c72aeed8bba4d5ca873b36b4edb2b8eda9c24ec7:/src/main/java/org/asamk/signal/manager/groups/GroupUtils.java diff --git a/src/main/java/org/asamk/signal/manager/groups/GroupUtils.java b/src/main/java/org/asamk/signal/manager/groups/GroupUtils.java deleted file mode 100644 index f56639e3..00000000 --- a/src/main/java/org/asamk/signal/manager/groups/GroupUtils.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.asamk.signal.manager.groups; - -import org.asamk.signal.manager.storage.groups.GroupInfo; -import org.asamk.signal.manager.storage.groups.GroupInfoV1; -import org.asamk.signal.manager.storage.groups.GroupInfoV2; -import org.signal.zkgroup.InvalidInputException; -import org.signal.zkgroup.groups.GroupMasterKey; -import org.signal.zkgroup.groups.GroupSecretParams; -import org.whispersystems.libsignal.kdf.HKDFv3; -import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; -import org.whispersystems.signalservice.api.messages.SignalServiceGroup; -import org.whispersystems.signalservice.api.messages.SignalServiceGroupContext; -import org.whispersystems.signalservice.api.messages.SignalServiceGroupV2; - -public class GroupUtils { - - public static void setGroupContext( - final SignalServiceDataMessage.Builder messageBuilder, final GroupInfo groupInfo - ) { - if (groupInfo instanceof GroupInfoV1) { - SignalServiceGroup group = SignalServiceGroup.newBuilder(SignalServiceGroup.Type.DELIVER) - .withId(groupInfo.getGroupId().serialize()) - .build(); - messageBuilder.asGroupMessage(group); - } else { - final GroupInfoV2 groupInfoV2 = (GroupInfoV2) groupInfo; - SignalServiceGroupV2 group = SignalServiceGroupV2.newBuilder(groupInfoV2.getMasterKey()) - .withRevision(groupInfoV2.getGroup() == null ? 0 : groupInfoV2.getGroup().getRevision()) - .build(); - messageBuilder.asGroupMessage(group); - } - } - - public static GroupId getGroupId(SignalServiceGroupContext context) { - if (context.getGroupV1().isPresent()) { - return GroupId.v1(context.getGroupV1().get().getGroupId()); - } else if (context.getGroupV2().isPresent()) { - return getGroupIdV2(context.getGroupV2().get().getMasterKey()); - } else { - return null; - } - } - - public static GroupIdV2 getGroupIdV2(GroupSecretParams groupSecretParams) { - return GroupId.v2(groupSecretParams.getPublicParams().getGroupIdentifier().serialize()); - } - - public static GroupIdV2 getGroupIdV2(GroupMasterKey groupMasterKey) { - final GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupMasterKey); - return getGroupIdV2(groupSecretParams); - } - - public static GroupIdV2 getGroupIdV2(GroupIdV1 groupIdV1) { - final GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(deriveV2MigrationMasterKey( - groupIdV1)); - return getGroupIdV2(groupSecretParams); - } - - private static GroupMasterKey deriveV2MigrationMasterKey(GroupIdV1 groupIdV1) { - try { - return new GroupMasterKey(new HKDFv3().deriveSecrets(groupIdV1.serialize(), - "GV2 Migration".getBytes(), - GroupMasterKey.SIZE)); - } catch (InvalidInputException e) { - throw new AssertionError(e); - } - } -}