core: group member/owner keys for signing important messages (#6597)

* rfc: member keys

* update plan

* new encoding for message batches

* send new batch encoding in relay-based groups

* mvp launch plan

* update plan

* core: verify group member keys (#6669)

* core: verify group member keys

* refactor, process forwards

* refactor parsing

* refactor parsing 2

* refactor parser 3

* update rfc

* simplify

* simplify

* log tag

* refactor tag logging

* refactor withVerifiedSig

* simplify

* refactor more

* comment

* fix encoding

* fix sending as group for the new binary batch encoding

* unify types

* update api docs

* clean up

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>

* core: signing messages with member keys (#6675)

* core: signing messages with member keys (types)

* sign messages

* refactor batching

* better

* refactor

* remove unused Eq

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>

* core: forward signed messages as unchanged binary strings (#6678)

* core: forward signed messages as unchanged binary strings

* refactor

* consolidate types

* refactor VerifiedMsg

* refactor more

* undo rename

Co-authored-by: Evgeny <evgeny@poberezkin.com>

* update schema and plans

* add signed status to chat items and events

* test signed chat items

* unify parser

* PostgreSQL fix, remove unused fields, option to send inline files in the tests

* change inline files config

* revert inline config change

* use different characters in batch encoding, to avoid conflict with inline files

* fix test, api docs, query plans

---------

Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>

---------

Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com>
This commit is contained in:
Evgeny
2026-03-16 10:46:35 +00:00
committed by GitHub
parent 4e16792ddc
commit 2db92ff6ed
35 changed files with 2325 additions and 443 deletions
+5
View File
@@ -736,6 +736,7 @@ MembersRoleUser: Members role changed by user.
- groupInfo: [GroupInfo](./TYPES.md#groupinfo)
- members: [[GroupMember](./TYPES.md#groupmember)]
- toRole: [GroupMemberRole](./TYPES.md#groupmemberrole)
- msgSigned: bool
ChatCmdError: Command error (only used in WebSockets API).
- type: "chatCmdError"
@@ -777,6 +778,7 @@ MembersBlockedForAllUser: Members blocked for all by admin.
- groupInfo: [GroupInfo](./TYPES.md#groupinfo)
- members: [[GroupMember](./TYPES.md#groupmember)]
- blocked: bool
- msgSigned: bool
ChatCmdError: Command error (only used in WebSockets API).
- type: "chatCmdError"
@@ -818,6 +820,7 @@ UserDeletedMembers: Members deleted.
- groupInfo: [GroupInfo](./TYPES.md#groupinfo)
- members: [[GroupMember](./TYPES.md#groupmember)]
- withMessages: bool
- msgSigned: bool
ChatCmdError: Command error (only used in WebSockets API).
- type: "chatCmdError"
@@ -1054,6 +1057,7 @@ GroupUpdated: Group updated.
- fromGroup: [GroupInfo](./TYPES.md#groupinfo)
- toGroup: [GroupInfo](./TYPES.md#groupinfo)
- member_: [GroupMember](./TYPES.md#groupmember)?
- msgSigned: bool
ChatCmdError: Command error (only used in WebSockets API).
- type: "chatCmdError"
@@ -1600,6 +1604,7 @@ GroupDeletedUser: User deleted group.
- type: "groupDeletedUser"
- user: [User](./TYPES.md#user)
- groupInfo: [GroupInfo](./TYPES.md#groupinfo)
- msgSigned: bool
ChatCmdError: Command error (only used in WebSockets API).
- type: "chatCmdError"
+6
View File
@@ -301,6 +301,7 @@ Group profile or preferences updated.
- fromGroup: [GroupInfo](./TYPES.md#groupinfo)
- toGroup: [GroupInfo](./TYPES.md#groupinfo)
- member_: [GroupMember](./TYPES.md#groupmember)?
- msgSigned: bool
---
@@ -330,6 +331,7 @@ Member (or bot user's) group role changed.
- member: [GroupMember](./TYPES.md#groupmember)
- fromRole: [GroupMemberRole](./TYPES.md#groupmemberrole)
- toRole: [GroupMemberRole](./TYPES.md#groupmemberrole)
- msgSigned: bool
---
@@ -345,6 +347,7 @@ Another member is removed from the group.
- byMember: [GroupMember](./TYPES.md#groupmember)
- deletedMember: [GroupMember](./TYPES.md#groupmember)
- withMessages: bool
- msgSigned: bool
---
@@ -372,6 +375,7 @@ Bot user was removed from the group.
- groupInfo: [GroupInfo](./TYPES.md#groupinfo)
- member: [GroupMember](./TYPES.md#groupmember)
- withMessages: bool
- msgSigned: bool
---
@@ -385,6 +389,7 @@ Group was deleted by the owner (not bot user).
- user: [User](./TYPES.md#user)
- groupInfo: [GroupInfo](./TYPES.md#groupinfo)
- member: [GroupMember](./TYPES.md#groupmember)
- msgSigned: bool
---
@@ -428,6 +433,7 @@ Another member blocked for all members.
- byMember: [GroupMember](./TYPES.md#groupmember)
- member: [GroupMember](./TYPES.md#groupmember)
- blocked: bool
- msgSigned: bool
---
+4
View File
@@ -780,6 +780,7 @@ Group:
- editable: bool
- forwardedByMember: int64?
- showGroupAsSender: bool
- msgSigned: bool
- createdAt: UTCTime
- updatedAt: UTCTime
@@ -3125,6 +3126,9 @@ MemberProfileUpdated:
NewMemberPendingReview:
- type: "newMemberPendingReview"
MsgBadSignature:
- type: "msgBadSignature"
---