adding peer/contactcard attributes
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
ycc
2026-03-03 10:46:25 +01:00
parent 8836d5c591
commit fab5818ec7
7 changed files with 546 additions and 194 deletions

View File

@@ -668,10 +668,10 @@ func (x *FromServerMessage) GetContactCard() []*ContactCard {
type MatriochkaServer struct {
state protoimpl.MessageState `protogen:"open.v1"`
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` // Server Url
PublicKey string `protobuf:"bytes,2,opt,name=publicKey,proto3" json:"publicKey,omitempty"` // Server Public Key
Uuid string `protobuf:"bytes,3,opt,name=uuid,proto3" json:"uuid,omitempty"` // Optional, uuid for delivery confirmation
Delay int32 `protobuf:"varint,4,opt,name=delay,proto3" json:"delay,omitempty"` // Max delay requested for message forwarding or delivery tracking
Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` // Server Url
PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` // Server Public Key
Uuid string `protobuf:"bytes,3,opt,name=uuid,proto3" json:"uuid,omitempty"` // Optional, uuid for delivery confirmation
Delay int32 `protobuf:"varint,4,opt,name=delay,proto3" json:"delay,omitempty"` // Max delay requested for message forwarding or delivery tracking
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -736,10 +736,10 @@ func (x *MatriochkaServer) GetDelay() int32 {
type Matriochka struct {
state protoimpl.MessageState `protogen:"open.v1"`
LookupKey string `protobuf:"bytes,1,opt,name=lookupKey,proto3" json:"lookupKey,omitempty"` // Optional, only if you want delivery tracking, less stealth
Prev *MatriochkaServer `protobuf:"bytes,2,opt,name=prev,proto3" json:"prev,omitempty"` // Optional, like above
Next *MatriochkaServer `protobuf:"bytes,3,opt,name=next,proto3" json:"next,omitempty"` // Next server to deliver the message to
Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` // Matriochka data
LookupKey string `protobuf:"bytes,1,opt,name=lookup_key,json=lookupKey,proto3" json:"lookup_key,omitempty"` // Optional, only if you want delivery tracking, less stealth
Prev *MatriochkaServer `protobuf:"bytes,2,opt,name=prev,proto3" json:"prev,omitempty"` // Optional, like above
Next *MatriochkaServer `protobuf:"bytes,3,opt,name=next,proto3" json:"next,omitempty"` // Next server to deliver the message to
Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` // Matriochka data
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -902,10 +902,11 @@ type ContactCard struct {
ContactPublicKey string `protobuf:"bytes,2,opt,name=contact_public_key,json=contactPublicKey,proto3" json:"contact_public_key,omitempty"` // contact public key, will be used to authenticate her/his messages
EncryptionPublicKey string `protobuf:"bytes,3,opt,name=encryption_public_key,json=encryptionPublicKey,proto3" json:"encryption_public_key,omitempty"` // public key you must use to to write encrypted messages to that contact
LookupPublicKey string `protobuf:"bytes,4,opt,name=lookup_public_key,json=lookupPublicKey,proto3" json:"lookup_public_key,omitempty"` // public key you will use as "destination identifier" for her/him to lookup for your messages on the servers
PullServers []*ServerCard `protobuf:"bytes,5,rep,name=pull_servers,json=pullServers,proto3" json:"pull_servers,omitempty"` // list the servers where the contact will look for messages from you
Version uint32 `protobuf:"varint,6,opt,name=version,proto3" json:"version,omitempty"`
InvitationId string `protobuf:"bytes,7,opt,name=invitation_id,json=invitationId,proto3" json:"invitation_id,omitempty"`
InvitationMessage string `protobuf:"bytes,8,opt,name=invitation_message,json=invitationMessage,proto3" json:"invitation_message,omitempty"`
SymetricKey string `protobuf:"bytes,5,opt,name=symetric_key,json=symetricKey,proto3" json:"symetric_key,omitempty"` // agreed key for payload symetric encryption
PullServers []*ServerCard `protobuf:"bytes,6,rep,name=pull_servers,json=pullServers,proto3" json:"pull_servers,omitempty"` // list the servers where the contact will look for messages from you
Version uint32 `protobuf:"varint,7,opt,name=version,proto3" json:"version,omitempty"`
InvitationId string `protobuf:"bytes,8,opt,name=invitation_id,json=invitationId,proto3" json:"invitation_id,omitempty"`
InvitationMessage string `protobuf:"bytes,9,opt,name=invitation_message,json=invitationMessage,proto3" json:"invitation_message,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -968,6 +969,13 @@ func (x *ContactCard) GetLookupPublicKey() string {
return ""
}
func (x *ContactCard) GetSymetricKey() string {
if x != nil {
return x.SymetricKey
}
return ""
}
func (x *ContactCard) GetPullServers() []*ServerCard {
if x != nil {
return x.PullServers
@@ -1002,7 +1010,7 @@ type PackedUserMessage struct {
Destination string `protobuf:"bytes,1,opt,name=destination,proto3" json:"destination,omitempty"` // the peer's current conversation lookup public key
Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` // the message UserMessage encrypted with the destination peer's public key
Signature []byte `protobuf:"bytes,3,opt,name=signature,proto3" json:"signature,omitempty"` // the payload signature with the client identity private key
ServerTimestamp []int64 `protobuf:"varint,4,rep,packed,name=serverTimestamp,proto3" json:"serverTimestamp,omitempty"` // server time stamp, might be several in matriochka mode
ServerTimestamp []int64 `protobuf:"varint,4,rep,packed,name=server_timestamp,json=serverTimestamp,proto3" json:"server_timestamp,omitempty"` // server time stamp, might be several in matriochka mode
ServerDeliveryUuid string `protobuf:"bytes,5,opt,name=server_delivery_uuid,json=serverDeliveryUuid,proto3" json:"server_delivery_uuid,omitempty"` // message uuid, for server delivery tracking, omitted if not delivery tracking desired
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
@@ -1075,14 +1083,15 @@ func (x *PackedUserMessage) GetServerDeliveryUuid() string {
type ConversationStatus struct {
state protoimpl.MessageState `protogen:"open.v1"`
Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
AnswerToUuid string `protobuf:"bytes,2,opt,name=answer_to_uuid,json=answerToUuid,proto3" json:"answer_to_uuid,omitempty"` // message is an answer to another one, specify uuid here
LocalSequence uint64 `protobuf:"varint,3,opt,name=localSequence,proto3" json:"localSequence,omitempty"` // seq number in local conversation for custom reordering
Sent uint64 `protobuf:"varint,4,opt,name=sent,proto3" json:"sent,omitempty"` // timestamp of the message sent
Received uint64 `protobuf:"varint,5,opt,name=received,proto3" json:"received,omitempty"` // timestamp of the message received
Processed uint64 `protobuf:"varint,6,opt,name=processed,proto3" json:"processed,omitempty"` // timestamp of the message processed
MyNextIdentity *ContactCard `protobuf:"bytes,7,opt,name=my_next_identity,json=myNextIdentity,proto3" json:"my_next_identity,omitempty"`
PeerNextIdentityAck int32 `protobuf:"varint,8,opt,name=peer_next_identityAck,json=peerNextIdentityAck,proto3" json:"peer_next_identityAck,omitempty"` // version of the new peer accepted id
Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // uuid of message, or uuid of related message if uuid_action is not empty
UuidAction int32 `protobuf:"varint,2,opt,name=uuid_action,json=uuidAction,proto3" json:"uuid_action,omitempty"` // empty => normal message, 1: receivedack, 2: processedack, 3:reaction
ReplyToUuid string `protobuf:"bytes,3,opt,name=reply_to_uuid,json=replyToUuid,proto3" json:"reply_to_uuid,omitempty"` // this message replies to the specified uuid
LocalSequence uint64 `protobuf:"varint,4,opt,name=local_sequence,json=localSequence,proto3" json:"local_sequence,omitempty"` // seq number in local conversation for custom reordering
Sent uint64 `protobuf:"varint,5,opt,name=sent,proto3" json:"sent,omitempty"` // timestamp of the message sent
Received uint64 `protobuf:"varint,6,opt,name=received,proto3" json:"received,omitempty"` // timestamp of the message received
Processed uint64 `protobuf:"varint,7,opt,name=processed,proto3" json:"processed,omitempty"` // timestamp of the message processed
MyNextIdentity *ContactCard `protobuf:"bytes,8,opt,name=my_next_identity,json=myNextIdentity,proto3" json:"my_next_identity,omitempty"`
PeerNextIdentityAck int32 `protobuf:"varint,9,opt,name=peer_next_identity_ack,json=peerNextIdentityAck,proto3" json:"peer_next_identity_ack,omitempty"` // version of the new peer accepted id
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -1124,9 +1133,16 @@ func (x *ConversationStatus) GetUuid() string {
return ""
}
func (x *ConversationStatus) GetAnswerToUuid() string {
func (x *ConversationStatus) GetUuidAction() int32 {
if x != nil {
return x.AnswerToUuid
return x.UuidAction
}
return 0
}
func (x *ConversationStatus) GetReplyToUuid() string {
if x != nil {
return x.ReplyToUuid
}
return ""
}
@@ -1234,7 +1250,7 @@ type UserMessage struct {
Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"`
Status *ConversationStatus `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"`
Contact *ContactCard `protobuf:"bytes,6,opt,name=contact,proto3" json:"contact,omitempty"`
KnownServers *ServerCard `protobuf:"bytes,7,opt,name=knownServers,proto3" json:"knownServers,omitempty"`
KnownServers *ServerCard `protobuf:"bytes,7,opt,name=known_servers,json=knownServers,proto3" json:"known_servers,omitempty"`
Group *Group `protobuf:"bytes,8,opt,name=group,proto3" json:"group,omitempty"`
Files []*File `protobuf:"bytes,9,rep,name=files,proto3" json:"files,omitempty"`
CurrentLocation *Location `protobuf:"bytes,10,opt,name=current_location,json=currentLocation,proto3" json:"current_location,omitempty"`
@@ -1849,15 +1865,17 @@ const file_messages_proto_rawDesc = "" +
"\n" +
"video_data\x18\n" +
" \x01(\v2\x12.meowlib.VideoDataR\tvideoData\x127\n" +
"\fcontact_card\x18\v \x03(\v2\x14.meowlib.ContactCardR\vcontactCard\"l\n" +
"\fcontact_card\x18\v \x03(\v2\x14.meowlib.ContactCardR\vcontactCard\"m\n" +
"\x10MatriochkaServer\x12\x10\n" +
"\x03url\x18\x01 \x01(\tR\x03url\x12\x1c\n" +
"\tpublicKey\x18\x02 \x01(\tR\tpublicKey\x12\x12\n" +
"\x04uuid\x18\x03 \x01(\tR\x04uuid\x12\x14\n" +
"\x05delay\x18\x04 \x01(\x05R\x05delay\"\x9c\x01\n" +
"\x03url\x18\x01 \x01(\tR\x03url\x12\x1d\n" +
"\n" +
"Matriochka\x12\x1c\n" +
"\tlookupKey\x18\x01 \x01(\tR\tlookupKey\x12-\n" +
"public_key\x18\x02 \x01(\tR\tpublicKey\x12\x12\n" +
"\x04uuid\x18\x03 \x01(\tR\x04uuid\x12\x14\n" +
"\x05delay\x18\x04 \x01(\x05R\x05delay\"\x9d\x01\n" +
"\n" +
"Matriochka\x12\x1d\n" +
"\n" +
"lookup_key\x18\x01 \x01(\tR\tlookupKey\x12-\n" +
"\x04prev\x18\x02 \x01(\v2\x19.meowlib.MatriochkaServerR\x04prev\x12-\n" +
"\x04next\x18\x03 \x01(\v2\x19.meowlib.MatriochkaServerR\x04next\x12\x12\n" +
"\x04data\x18\x04 \x01(\fR\x04data\"\xc3\x01\n" +
@@ -1870,42 +1888,45 @@ const file_messages_proto_rawDesc = "" +
"\x03url\x18\x04 \x01(\tR\x03url\x12\x14\n" +
"\x05login\x18\x05 \x01(\tR\x05login\x12\x1a\n" +
"\bpassword\x18\x06 \x01(\tR\bpassword\x12\x1c\n" +
"\tsignature\x18\a \x01(\tR\tsignature\"\xd5\x02\n" +
"\tsignature\x18\a \x01(\tR\tsignature\"\xf8\x02\n" +
"\vContactCard\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12,\n" +
"\x12contact_public_key\x18\x02 \x01(\tR\x10contactPublicKey\x122\n" +
"\x15encryption_public_key\x18\x03 \x01(\tR\x13encryptionPublicKey\x12*\n" +
"\x11lookup_public_key\x18\x04 \x01(\tR\x0flookupPublicKey\x126\n" +
"\fpull_servers\x18\x05 \x03(\v2\x13.meowlib.ServerCardR\vpullServers\x12\x18\n" +
"\aversion\x18\x06 \x01(\rR\aversion\x12#\n" +
"\rinvitation_id\x18\a \x01(\tR\finvitationId\x12-\n" +
"\x12invitation_message\x18\b \x01(\tR\x11invitationMessage\"\xc9\x01\n" +
"\x11lookup_public_key\x18\x04 \x01(\tR\x0flookupPublicKey\x12!\n" +
"\fsymetric_key\x18\x05 \x01(\tR\vsymetricKey\x126\n" +
"\fpull_servers\x18\x06 \x03(\v2\x13.meowlib.ServerCardR\vpullServers\x12\x18\n" +
"\aversion\x18\a \x01(\rR\aversion\x12#\n" +
"\rinvitation_id\x18\b \x01(\tR\finvitationId\x12-\n" +
"\x12invitation_message\x18\t \x01(\tR\x11invitationMessage\"\xca\x01\n" +
"\x11PackedUserMessage\x12 \n" +
"\vdestination\x18\x01 \x01(\tR\vdestination\x12\x18\n" +
"\apayload\x18\x02 \x01(\fR\apayload\x12\x1c\n" +
"\tsignature\x18\x03 \x01(\fR\tsignature\x12(\n" +
"\x0fserverTimestamp\x18\x04 \x03(\x03R\x0fserverTimestamp\x120\n" +
"\x14server_delivery_uuid\x18\x05 \x01(\tR\x12serverDeliveryUuid\"\xb6\x02\n" +
"\tsignature\x18\x03 \x01(\fR\tsignature\x12)\n" +
"\x10server_timestamp\x18\x04 \x03(\x03R\x0fserverTimestamp\x120\n" +
"\x14server_delivery_uuid\x18\x05 \x01(\tR\x12serverDeliveryUuid\"\xd7\x02\n" +
"\x12ConversationStatus\x12\x12\n" +
"\x04uuid\x18\x01 \x01(\tR\x04uuid\x12$\n" +
"\x0eanswer_to_uuid\x18\x02 \x01(\tR\fanswerToUuid\x12$\n" +
"\rlocalSequence\x18\x03 \x01(\x04R\rlocalSequence\x12\x12\n" +
"\x04sent\x18\x04 \x01(\x04R\x04sent\x12\x1a\n" +
"\breceived\x18\x05 \x01(\x04R\breceived\x12\x1c\n" +
"\tprocessed\x18\x06 \x01(\x04R\tprocessed\x12>\n" +
"\x10my_next_identity\x18\a \x01(\v2\x14.meowlib.ContactCardR\x0emyNextIdentity\x122\n" +
"\x15peer_next_identityAck\x18\b \x01(\x05R\x13peerNextIdentityAck\"K\n" +
"\x04uuid\x18\x01 \x01(\tR\x04uuid\x12\x1f\n" +
"\vuuid_action\x18\x02 \x01(\x05R\n" +
"uuidAction\x12\"\n" +
"\rreply_to_uuid\x18\x03 \x01(\tR\vreplyToUuid\x12%\n" +
"\x0elocal_sequence\x18\x04 \x01(\x04R\rlocalSequence\x12\x12\n" +
"\x04sent\x18\x05 \x01(\x04R\x04sent\x12\x1a\n" +
"\breceived\x18\x06 \x01(\x04R\breceived\x12\x1c\n" +
"\tprocessed\x18\a \x01(\x04R\tprocessed\x12>\n" +
"\x10my_next_identity\x18\b \x01(\v2\x14.meowlib.ContactCardR\x0emyNextIdentity\x123\n" +
"\x16peer_next_identity_ack\x18\t \x01(\x05R\x13peerNextIdentityAck\"K\n" +
"\x05Group\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12.\n" +
"\amembers\x18\x02 \x03(\v2\x14.meowlib.ContactCardR\amembers\"\x94\x04\n" +
"\amembers\x18\x02 \x03(\v2\x14.meowlib.ContactCardR\amembers\"\x95\x04\n" +
"\vUserMessage\x12 \n" +
"\vdestination\x18\x01 \x01(\tR\vdestination\x12\x12\n" +
"\x04from\x18\x02 \x01(\tR\x04from\x12\x12\n" +
"\x04type\x18\x03 \x01(\tR\x04type\x12\x12\n" +
"\x04data\x18\x04 \x01(\fR\x04data\x123\n" +
"\x06status\x18\x05 \x01(\v2\x1b.meowlib.ConversationStatusR\x06status\x12.\n" +
"\acontact\x18\x06 \x01(\v2\x14.meowlib.ContactCardR\acontact\x127\n" +
"\fknownServers\x18\a \x01(\v2\x13.meowlib.ServerCardR\fknownServers\x12$\n" +
"\acontact\x18\x06 \x01(\v2\x14.meowlib.ContactCardR\acontact\x128\n" +
"\rknown_servers\x18\a \x01(\v2\x13.meowlib.ServerCardR\fknownServers\x12$\n" +
"\x05group\x18\b \x01(\v2\x0e.meowlib.GroupR\x05group\x12#\n" +
"\x05files\x18\t \x03(\v2\r.meowlib.FileR\x05files\x12<\n" +
"\x10current_location\x18\n" +
@@ -2015,7 +2036,7 @@ var file_messages_proto_depIdxs = []int32{
10, // 19: meowlib.Group.members:type_name -> meowlib.ContactCard
12, // 20: meowlib.UserMessage.status:type_name -> meowlib.ConversationStatus
10, // 21: meowlib.UserMessage.contact:type_name -> meowlib.ContactCard
9, // 22: meowlib.UserMessage.knownServers:type_name -> meowlib.ServerCard
9, // 22: meowlib.UserMessage.known_servers:type_name -> meowlib.ServerCard
13, // 23: meowlib.UserMessage.group:type_name -> meowlib.Group
15, // 24: meowlib.UserMessage.files:type_name -> meowlib.File
16, // 25: meowlib.UserMessage.current_location:type_name -> meowlib.Location