diff --git a/pkg/signalmeow/protobuf/Provisioning.pb.go b/pkg/signalmeow/protobuf/Provisioning.pb.go index 24e3a647..a1d3f0b7 100644 --- a/pkg/signalmeow/protobuf/Provisioning.pb.go +++ b/pkg/signalmeow/protobuf/Provisioning.pb.go @@ -86,28 +86,28 @@ func (ProvisioningVersion) EnumDescriptor() ([]byte, []int) { return file_Provisioning_proto_rawDescGZIP(), []int{0} } -type ProvisioningUuid struct { +type ProvisioningAddress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Uuid *string `protobuf:"bytes,1,opt,name=uuid" json:"uuid,omitempty"` + Address *string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"` } -func (x *ProvisioningUuid) Reset() { - *x = ProvisioningUuid{} +func (x *ProvisioningAddress) Reset() { + *x = ProvisioningAddress{} mi := &file_Provisioning_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ProvisioningUuid) String() string { +func (x *ProvisioningAddress) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProvisioningUuid) ProtoMessage() {} +func (*ProvisioningAddress) ProtoMessage() {} -func (x *ProvisioningUuid) ProtoReflect() protoreflect.Message { +func (x *ProvisioningAddress) ProtoReflect() protoreflect.Message { mi := &file_Provisioning_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -119,14 +119,14 @@ func (x *ProvisioningUuid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProvisioningUuid.ProtoReflect.Descriptor instead. -func (*ProvisioningUuid) Descriptor() ([]byte, []int) { +// Deprecated: Use ProvisioningAddress.ProtoReflect.Descriptor instead. +func (*ProvisioningAddress) Descriptor() ([]byte, []int) { return file_Provisioning_proto_rawDescGZIP(), []int{0} } -func (x *ProvisioningUuid) GetUuid() string { - if x != nil && x.Uuid != nil { - return *x.Uuid +func (x *ProvisioningAddress) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } return "" } @@ -369,10 +369,10 @@ func file_Provisioning_proto_rawDescGZIP() []byte { var file_Provisioning_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_Provisioning_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_Provisioning_proto_goTypes = []any{ - (ProvisioningVersion)(0), // 0: signalservice.ProvisioningVersion - (*ProvisioningUuid)(nil), // 1: signalservice.ProvisioningUuid - (*ProvisionEnvelope)(nil), // 2: signalservice.ProvisionEnvelope - (*ProvisionMessage)(nil), // 3: signalservice.ProvisionMessage + (ProvisioningVersion)(0), // 0: signalservice.ProvisioningVersion + (*ProvisioningAddress)(nil), // 1: signalservice.ProvisioningAddress + (*ProvisionEnvelope)(nil), // 2: signalservice.ProvisionEnvelope + (*ProvisionMessage)(nil), // 3: signalservice.ProvisionMessage } var file_Provisioning_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type diff --git a/pkg/signalmeow/protobuf/Provisioning.pb.raw b/pkg/signalmeow/protobuf/Provisioning.pb.raw index 385bc022..874538c7 100644 Binary files a/pkg/signalmeow/protobuf/Provisioning.pb.raw and b/pkg/signalmeow/protobuf/Provisioning.pb.raw differ diff --git a/pkg/signalmeow/protobuf/Provisioning.proto b/pkg/signalmeow/protobuf/Provisioning.proto index 03fb0085..e18829a6 100644 --- a/pkg/signalmeow/protobuf/Provisioning.proto +++ b/pkg/signalmeow/protobuf/Provisioning.proto @@ -10,8 +10,8 @@ package signalservice; option java_package = "org.whispersystems.signalservice.internal.push"; option java_outer_classname = "ProvisioningProtos"; -message ProvisioningUuid { - optional string uuid = 1; +message ProvisioningAddress { + optional string address = 1; } message ProvisionEnvelope { diff --git a/pkg/signalmeow/protobuf/SignalService.pb.go b/pkg/signalmeow/protobuf/SignalService.pb.go index f9abde18..a8686db0 100644 --- a/pkg/signalmeow/protobuf/SignalService.pb.go +++ b/pkg/signalmeow/protobuf/SignalService.pb.go @@ -6243,10 +6243,11 @@ type SyncMessage_Keys struct { unknownFields protoimpl.UnknownFields // @deprecated - StorageService []byte `protobuf:"bytes,1,opt,name=storageService" json:"storageService,omitempty"` + StorageService []byte `protobuf:"bytes,1,opt,name=storageService" json:"storageService,omitempty"` + // @deprecated Master []byte `protobuf:"bytes,2,opt,name=master" json:"master,omitempty"` - AccountEntropyPool *string `protobuf:"bytes,3,opt,name=accountEntropyPool" json:"accountEntropyPool,omitempty"` // Copied manually from Signal Desktop - MediaRootBackupKey []byte `protobuf:"bytes,4,opt,name=mediaRootBackupKey" json:"mediaRootBackupKey,omitempty"` // Copied manually from Signal Desktop + AccountEntropyPool *string `protobuf:"bytes,3,opt,name=accountEntropyPool" json:"accountEntropyPool,omitempty"` + MediaRootBackupKey []byte `protobuf:"bytes,4,opt,name=mediaRootBackupKey" json:"mediaRootBackupKey,omitempty"` } func (x *SyncMessage_Keys) Reset() { diff --git a/pkg/signalmeow/protobuf/SignalService.proto b/pkg/signalmeow/protobuf/SignalService.proto index 8a4bca89..f5cecb04 100644 --- a/pkg/signalmeow/protobuf/SignalService.proto +++ b/pkg/signalmeow/protobuf/SignalService.proto @@ -546,9 +546,10 @@ message SyncMessage { message Keys { // @deprecated optional bytes storageService = 1; - optional bytes master = 2; - optional string accountEntropyPool = 3; // Copied manually from Signal Desktop - optional bytes mediaRootBackupKey = 4; // Copied manually from Signal Desktop + // @deprecated + optional bytes master = 2; + optional string accountEntropyPool = 3; + optional bytes mediaRootBackupKey = 4; } message MessageRequestResponse { diff --git a/pkg/signalmeow/protobuf/StorageService.pb.go b/pkg/signalmeow/protobuf/StorageService.pb.go index 88b890a8..d37c1e2f 100644 --- a/pkg/signalmeow/protobuf/StorageService.pb.go +++ b/pkg/signalmeow/protobuf/StorageService.pb.go @@ -623,8 +623,8 @@ type ManifestRecord struct { Version uint64 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` SourceDevice uint32 `protobuf:"varint,3,opt,name=sourceDevice,proto3" json:"sourceDevice,omitempty"` - Identifiers []*ManifestRecord_Identifier `protobuf:"bytes,2,rep,name=identifiers,proto3" json:"identifiers,omitempty"` // Next ID: 4 - RecordIkm []byte `protobuf:"bytes,4,opt,name=recordIkm,proto3,oneof" json:"recordIkm,omitempty"` // Copied manually from Signal Desktop + Identifiers []*ManifestRecord_Identifier `protobuf:"bytes,2,rep,name=identifiers,proto3" json:"identifiers,omitempty"` + RecordIkm []byte `protobuf:"bytes,4,opt,name=recordIkm,proto3" json:"recordIkm,omitempty"` // Next ID: 5 } func (x *ManifestRecord) Reset() { @@ -2138,7 +2138,6 @@ func file_StorageService_proto_init() { if File_StorageService_proto != nil { return } - file_StorageService_proto_msgTypes[5].OneofWrappers = []any{} file_StorageService_proto_msgTypes[6].OneofWrappers = []any{ (*StorageRecord_Contact)(nil), (*StorageRecord_GroupV1)(nil), diff --git a/pkg/signalmeow/protobuf/StorageService.pb.raw b/pkg/signalmeow/protobuf/StorageService.pb.raw index cee69e5c..8f93e749 100644 Binary files a/pkg/signalmeow/protobuf/StorageService.pb.raw and b/pkg/signalmeow/protobuf/StorageService.pb.raw differ diff --git a/pkg/signalmeow/protobuf/StorageService.proto b/pkg/signalmeow/protobuf/StorageService.proto index c8f45824..ad4e2ca3 100644 --- a/pkg/signalmeow/protobuf/StorageService.proto +++ b/pkg/signalmeow/protobuf/StorageService.proto @@ -60,9 +60,8 @@ message ManifestRecord { uint64 version = 1; uint32 sourceDevice = 3; repeated Identifier identifiers = 2; - // Next ID: 4 - - optional bytes recordIkm = 4; // Copied manually from Signal Desktop + bytes recordIkm = 4; + // Next ID: 5 } message StorageRecord { diff --git a/pkg/signalmeow/protobuf/update-protos.sh b/pkg/signalmeow/protobuf/update-protos.sh index d8281e31..7d59deae 100755 --- a/pkg/signalmeow/protobuf/update-protos.sh +++ b/pkg/signalmeow/protobuf/update-protos.sh @@ -1,8 +1,8 @@ #!/bin/bash set -euo pipefail -ANDROID_GIT_REVISION=${1:-aad2624bd551c122a8938c12fe2d2240c950b8f4} -DESKTOP_GIT_REVISION=${1:-ac09a508f1085c58afdeb6c758ccb22ab8ed8e51} +ANDROID_GIT_REVISION=${1:-f5a68aa7aeccba3efba71e9868475a2483c5fa28} +DESKTOP_GIT_REVISION=${1:-5d899d740b236491d8cad6fe187bb9806ff95ccf} update_proto() { case "$1" in diff --git a/pkg/signalmeow/provisioning.go b/pkg/signalmeow/provisioning.go index c9979592..507f5d97 100644 --- a/pkg/signalmeow/provisioning.go +++ b/pkg/signalmeow/provisioning.go @@ -279,7 +279,7 @@ func startProvisioning(ctx context.Context, ws *websocket.Conn, provisioningCiph return "", fmt.Errorf("unexpected websocket message: %v", msg) } - var provisioningBody signalpb.ProvisioningUuid + var provisioningBody signalpb.ProvisioningAddress err = proto.Unmarshal(msg.GetRequest().GetBody(), &provisioningBody) if err != nil { return "", fmt.Errorf("failed to unmarshal provisioning UUID: %w", err) @@ -289,8 +289,9 @@ func startProvisioning(ctx context.Context, ws *websocket.Conn, provisioningCiph Scheme: "sgnl", Host: "linkdevice", RawQuery: url.Values{ - "uuid": []string{provisioningBody.GetUuid()}, - "pub_key": []string{base64.StdEncoding.EncodeToString(exerrors.Must(pubKey.Serialize()))}, + "uuid": []string{provisioningBody.GetAddress()}, + "pub_key": []string{base64.StdEncoding.EncodeToString(exerrors.Must(pubKey.Serialize()))}, + "capabilities": []string{""}, // Will contain "backup" in the future }.Encode(), }).String()