Convert SignalService, Database, Group, Payment, and other remaining protos to wire.

This commit is contained in:
Cody Henthorne
2023-09-18 15:32:43 -04:00
committed by Alex Hart
parent a6b7d0bcc5
commit efbd5cab85
267 changed files with 7100 additions and 7214 deletions

View File

@@ -11,7 +11,7 @@ import org.thoughtcrime.securesms.util.Base64
import org.whispersystems.signalservice.api.crypto.protos.CompleteMessage
import org.whispersystems.signalservice.api.crypto.protos.EnvelopeMetadata
import org.whispersystems.signalservice.api.push.ServiceId
import org.whispersystems.signalservice.internal.push.SignalServiceProtos.Envelope
import org.whispersystems.signalservice.internal.push.Envelope
import org.whispersystems.signalservice.internal.serialize.protos.SignalServiceContentProto
/**
@@ -60,33 +60,33 @@ class PushProcessMessageJobMigration : JobMigration(10) {
Log.i(TAG, "Migrating PushProcessJob to V2")
val protoBytes: ByteArray = Base64.decode(inputData.getString("message_content"))
val proto = SignalServiceContentProto.parseFrom(protoBytes)
val proto = SignalServiceContentProto.ADAPTER.decode(protoBytes)
val sourceServiceId = ServiceId.parseOrThrow(proto.metadata.address.uuid)
val destinationServiceId = ServiceId.parseOrThrow(proto.metadata.destinationUuid)
val sourceServiceId = ServiceId.parseOrThrow(proto.metadata!!.address!!.uuid!!)
val destinationServiceId = ServiceId.parseOrThrow(proto.metadata!!.destinationUuid!!)
val envelope = Envelope.newBuilder()
.setSourceServiceId(sourceServiceId.toString())
.setSourceDevice(proto.metadata.senderDevice)
.setDestinationServiceId(destinationServiceId.toString())
.setTimestamp(proto.metadata.timestamp)
.setServerGuid(proto.metadata.serverGuid)
.setServerTimestamp(proto.metadata.serverReceivedTimestamp)
val envelope = Envelope.Builder()
.sourceServiceId(sourceServiceId.toString())
.sourceDevice(proto.metadata!!.senderDevice)
.destinationServiceId(destinationServiceId.toString())
.timestamp(proto.metadata!!.timestamp)
.serverGuid(proto.metadata!!.serverGuid)
.serverTimestamp(proto.metadata!!.serverReceivedTimestamp)
val metadata = EnvelopeMetadata(
sourceServiceId = sourceServiceId.toByteArray().toByteString(),
sourceE164 = if (proto.metadata.address.hasE164()) proto.metadata.address.e164 else null,
sourceDeviceId = proto.metadata.senderDevice,
sealedSender = proto.metadata.needsReceipt,
groupId = if (proto.metadata.hasGroupId()) proto.metadata.groupId.toByteArray().toByteString() else null,
sourceE164 = if (proto.metadata?.address?.e164 != null) proto.metadata!!.address!!.e164 else null,
sourceDeviceId = proto.metadata!!.senderDevice!!,
sealedSender = proto.metadata!!.needsReceipt!!,
groupId = if (proto.metadata?.groupId != null) proto.metadata!!.groupId!! else null,
destinationServiceId = destinationServiceId.toByteArray().toByteString()
)
val completeMessage = CompleteMessage(
envelope = envelope.build().toByteArray().toByteString(),
content = proto.content.toByteArray().toByteString(),
envelope = envelope.build().encodeByteString(),
content = proto.content!!.encodeByteString(),
metadata = metadata,
serverDeliveredTimestamp = proto.metadata.serverDeliveredTimestamp
serverDeliveredTimestamp = proto.metadata!!.serverDeliveredTimestamp!!
)
return jobData

View File

@@ -8,8 +8,8 @@ import org.signal.core.util.logging.Log;
import org.signal.libsignal.zkgroup.InvalidInputException;
import org.signal.libsignal.zkgroup.groups.GroupMasterKey;
import org.thoughtcrime.securesms.groups.GroupId;
import org.thoughtcrime.securesms.jobmanager.JsonJobData;
import org.thoughtcrime.securesms.jobmanager.JobMigration;
import org.thoughtcrime.securesms.jobmanager.JsonJobData;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.util.Base64;
@@ -55,19 +55,19 @@ public class PushProcessMessageQueueJobMigration extends JobMigration {
String suffix = "";
if (data.getInt("message_state") == 0) {
SignalServiceContentProto proto = SignalServiceContentProto.parseFrom(Base64.decode(data.getString("message_content")));
SignalServiceContentProto proto = SignalServiceContentProto.ADAPTER.decode(Base64.decode(data.getString("message_content")));
if (proto != null && proto.hasContent() && proto.getContent().hasDataMessage() && proto.getContent().getDataMessage().hasGroupV2()) {
if (proto != null && proto.content != null && proto.content.dataMessage != null && proto.content.dataMessage.groupV2 != null) {
Log.i(TAG, "Migrating a group message.");
GroupId groupId = GroupId.v2(new GroupMasterKey(proto.getContent().getDataMessage().getGroupV2().getMasterKey().toByteArray()));
GroupId groupId = GroupId.v2(new GroupMasterKey(proto.content.dataMessage.groupV2.masterKey.toByteArray()));
Recipient recipient = Recipient.externalGroupExact(groupId);
suffix = recipient.getId().toQueueKey();
} else if (proto != null && proto.hasMetadata() && proto.getMetadata().hasAddress()) {
} else if (proto != null && proto.metadata != null && proto.metadata.address != null) {
Log.i(TAG, "Migrating an individual message.");
ServiceId senderServiceId = ServiceId.parseOrThrow(proto.getMetadata().getAddress().getUuid());
String senderE164 = proto.getMetadata().getAddress().getE164();
ServiceId senderServiceId = ServiceId.parseOrThrow(proto.metadata.address.uuid);
String senderE164 = proto.metadata.address.e164;
SignalServiceAddress sender = new SignalServiceAddress(senderServiceId, Optional.ofNullable(senderE164));
suffix = RecipientId.from(sender).toQueueKey();