Protocol Documentation
Table of Contents
- e2ees/AcceptMsg.proto
- e2ees/AcceptRequest.proto
- e2ees/AcceptResponse.proto
- e2ees/Account.proto
- e2ees/AcquireSyncMsg.proto
- e2ees/AddGroupMemberDeviceMsg.proto
- e2ees/AddGroupMemberDeviceRequest.proto
- e2ees/AddGroupMemberDeviceResponse.proto
- e2ees/AddGroupMembersMsg.proto
- e2ees/AddGroupMembersRequest.proto
- e2ees/AddGroupMembersResponse.proto
- e2ees/AddUserDeviceMsg.proto
- e2ees/AlgTypeDs.proto
- e2ees/AlgTypeHash.proto
- e2ees/AlgTypeKem.proto
- e2ees/AlgTypeSe.proto
- e2ees/Certificate.proto
- e2ees/ChainKey.proto
- e2ees/ClientHeartbeatMsg.proto
- e2ees/ConsumeProtoMsgRequest.proto
- e2ees/ConsumeProtoMsgResponse.proto
- e2ees/CreateGroupMsg.proto
- e2ees/CreateGroupRequest.proto
- e2ees/CreateGroupResponse.proto
- e2ees/DsAlgType.proto
- e2ees/E2eeAddress.proto
- e2ees/E2eeMsg.proto
- e2ees/E2eesPackId.proto
- e2ees/FriendManagerMsg.proto
- e2ees/GetGroupRequest.proto
- e2ees/GetGroupResponse.proto
- e2ees/GetPreKeyBundleRequest.proto
- e2ees/GetPreKeyBundleResponse.proto
- e2ees/GroupInfo.proto
- e2ees/GroupManagerMsg.proto
- e2ees/GroupMember.proto
- e2ees/GroupMemberInfo.proto
- e2ees/GroupMsgPayload.proto
- e2ees/GroupPreKeyBundle.proto
- e2ees/GroupSession.proto
- e2ees/GroupUpdateKeyBundle.proto
- e2ees/IdentityKey.proto
- e2ees/IdentityKeyPublic.proto
- e2ees/InviteMsg.proto
- e2ees/InviteRequest.proto
- e2ees/InviteResponse.proto
- e2ees/KemAlgType.proto
- e2ees/KeyPair.proto
- e2ees/LeaveGroupMsg.proto
- e2ees/LeaveGroupRequest.proto
- e2ees/LeaveGroupResponse.proto
- e2ees/MsgKey.proto
- e2ees/NotifLevel.proto
- e2ees/One2oneMsgPayload.proto
- e2ees/OneTimePreKey.proto
- e2ees/OneTimePreKeyPublic.proto
- e2ees/PendingRequest.proto
- e2ees/Plaintext.proto
- e2ees/PlatformType.proto
- e2ees/PreKeyBundle.proto
- e2ees/ProtoMsg.proto
- e2ees/ProtoMsgTag.proto
- e2ees/PublishSpkRequest.proto
- e2ees/PublishSpkResponse.proto
- e2ees/Ratchet.proto
- e2ees/ReceiverChainNode.proto
- e2ees/RegisterUserRequest.proto
- e2ees/RegisterUserResponse.proto
- e2ees/RemoveGroupMembersMsg.proto
- e2ees/RemoveGroupMembersRequest.proto
- e2ees/RemoveGroupMembersResponse.proto
- e2ees/RemoveUserDeviceMsg.proto
- e2ees/ResponseCode.proto
- e2ees/SenderChainNode.proto
- e2ees/SendGroupMsgRequest.proto
- e2ees/SendGroupMsgResponse.proto
- e2ees/SendOne2oneMsgRequest.proto
- e2ees/SendOne2oneMsgResponse.proto
- e2ees/ServerHeartbeatMsg.proto
- e2ees/ServerSignedSignature.proto
- e2ees/Session.proto
- e2ees/SignedPreKey.proto
- e2ees/SignedPreKeyPublic.proto
- e2ees/SkippedMsgKeyNode.proto
- e2ees/SupplyOpksMsg.proto
- e2ees/SupplyOpksRequest.proto
- e2ees/SupplyOpksResponse.proto
- e2ees/SystemManagerMsg.proto
- e2ees/UpdateUserMsg.proto
- e2ees/UpdateUserRequest.proto
- e2ees/UpdateUserResponse.proto
- e2ees/UpgradeE2eesPackMsg.proto
- e2ees/UserDevicesBundle.proto
- Scalar Value Types
e2ees/AcceptMsg.proto
AcceptMsg
Msg form invitee for completing a key agreement.
| Field | Type | Label | Description |
|---|---|---|---|
| e2ees_pack_id | uint32 | The E2EE Security pack ID. | |
| session_id | string | The session ID. | |
| from | E2eeAddress | The sender's address. | |
| to | E2eeAddress | The receiver's address. | |
| encaps_ciphertext | bytes | The ciphertext encapsulated by the inviter's identity public key, empty in ECC. | |
| ratchet_key | bytes | The invitee's ratchet key. |
e2ees/AcceptRequest.proto
AcceptRequest
Request for sending an accept msg.
| Field | Type | Label | Description |
|---|---|---|---|
| msg | AcceptMsg | The included msg for this request. |
e2ees/AcceptResponse.proto
AcceptResponse
Response for sending Accept msg.
| Field | Type | Label | Description |
|---|---|---|---|
| code | ResponseCode | The response code given by the server. | |
| msg | string | The message given by the server. |
e2ees/Account.proto
Account
Account for keeping keys and registeration information.
| Field | Type | Label | Description |
|---|---|---|---|
| version | string | The version used for this account. | |
| e2ees_pack_id | uint32 | The e2ee pack ID used for this account. | |
| address | E2eeAddress | The address with device ID for this account. | |
| server_cert | Certificate | The certificate of the server that create this account. | |
| platform | PlatformType | The platform hosting this account. | |
| identity_key | IdentityKey | The identity key pair. | |
| signed_pre_key | SignedPreKey | The signed pre-key pair. | |
| one_time_pre_key_list | OneTimePreKey | repeated | The one-time pre-key pairs. |
| next_one_time_pre_key_id | uint32 | Next one-time pre-key pair ID. | |
| saved | bool | The account is saved or not. | |
| password | string | The password for logining to server. | |
| auth | string | The jwt for authorizing request to server. | |
| expires_in | int64 | The expiration time of auth. |
e2ees/AcquireSyncMsg.proto
AcquireSyncMsg
Msg for acquiring un-processed msgs form server.
| Field | Type | Label | Description |
|---|---|---|---|
| last_proto_msg_tag | ProtoMsgTag | The last handled tag for acquiring un-handled msg from server. |
e2ees/AddGroupMemberDeviceMsg.proto
AddGroupMemberDeviceMsg
Msg for adding a device of group member.
| Field | Type | Label | Description |
|---|---|---|---|
| e2ees_pack_id | uint32 | The E2EE Security pack ID. | |
| sender_address | E2eeAddress | The sender's address. | |
| sequence | uint32 | The sequence for related group session. | |
| group_info | GroupInfo | The group information, including the group name, the group address and all of the group members. | |
| adding_member_device | GroupMemberInfo | The information of a group member's new device. |
e2ees/AddGroupMemberDeviceRequest.proto
AddGroupMemberDeviceRequest
Request for adding a device of group member.
| Field | Type | Label | Description |
|---|---|---|---|
| msg | AddGroupMemberDeviceMsg | The included msg for this request. |
e2ees/AddGroupMemberDeviceResponse.proto
AddGroupMemberDeviceResponse
Response for adding a device of group member.
| Field | Type | Label | Description |
|---|---|---|---|
| code | ResponseCode | The response code given by the server. | |
| msg | string | The message given by the server. | |
| group_member_list | GroupMember | repeated | The group members. |
| adding_member_device_info | GroupMemberInfo | The information of a group member's new device. |
e2ees/AddGroupMembersMsg.proto
AddGroupMembersMsg
Msg for adding group members.
| Field | Type | Label | Description |
|---|---|---|---|
| e2ees_pack_id | uint32 | The E2EE Security pack ID. | |
| sender_address | E2eeAddress | The sender's address. | |
| sequence | uint32 | The sequence for related group session. | |
| group_info | GroupInfo | The group information, including the group name, the group address and all of the group members. | |
| adding_member_list | GroupMember | repeated | The adding group members. |
| adding_member_info_list | GroupMemberInfo | repeated | The adding group members' information. |
e2ees/AddGroupMembersRequest.proto
AddGroupMembersRequest
Request for adding group members.
| Field | Type | Label | Description |
|---|---|---|---|
| msg | AddGroupMembersMsg | The included msg for this request. |
e2ees/AddGroupMembersResponse.proto
AddGroupMembersResponse
Response for adding group members.
| Field | Type | Label | Description |
|---|---|---|---|
| code | ResponseCode | The response code given by the server | |
| msg | string | The message given by the server | |
| added_group_member_list | GroupMember | repeated | The added group members |
| group_member_list | GroupMember | repeated | The group members |
| adding_member_info_list | GroupMemberInfo | repeated | The adding group members' information |
e2ees/AddUserDeviceMsg.proto
AddUserDeviceMsg
Msg for adding user device.
| Field | Type | Label | Description |
|---|---|---|---|
| user_address | E2eeAddress | The added user e2ee address | |
| old_address_list | E2eeAddress | repeated | The list of other e2ee address that has the same user ID |
e2ees/AlgTypeDs.proto
AlgTypeDs
Algorithm type for Digital signature.
| Name | Number | Description |
|---|---|---|
| ALG_TYPE_DS_CURVE25519 | 0 | |
| ALG_TYPE_DS_MLDSA_44 | 1 | |
| ALG_TYPE_DS_MLDSA_65 | 9 | |
| ALG_TYPE_DS_MLDSA_87 | 17 | |
| ALG_TYPE_DS_FALCON_512 | 33 | |
| ALG_TYPE_DS_FALCON_1024 | 41 | |
| ALG_TYPE_DS_SPHINCS_SHA2_128F | 65 | |
| ALG_TYPE_DS_SPHINCS_SHA2_128S | 69 | |
| ALG_TYPE_DS_SPHINCS_SHA2_192F | 73 | |
| ALG_TYPE_DS_SPHINCS_SHA2_192S | 77 | |
| ALG_TYPE_DS_SPHINCS_SHA2_256F | 81 | |
| ALG_TYPE_DS_SPHINCS_SHA2_256S | 85 | |
| ALG_TYPE_DS_SPHINCS_SHAKE_128F | 89 | |
| ALG_TYPE_DS_SPHINCS_SHAKE_128S | 93 | |
| ALG_TYPE_DS_SPHINCS_SHAKE_192F | 97 | |
| ALG_TYPE_DS_SPHINCS_SHAKE_192S | 101 | |
| ALG_TYPE_DS_SPHINCS_SHAKE_256F | 105 | |
| ALG_TYPE_DS_SPHINCS_SHAKE_256S | 109 |
e2ees/AlgTypeHash.proto
AlgTypeHash
Algorithm type for hash function.
| Name | Number | Description |
|---|---|---|
| ALG_TYPE_HASH_SHA2_224 | 0 | |
| ALG_TYPE_HASH_SHA2_256 | 1 | |
| ALG_TYPE_HASH_SHA2_384 | 2 | |
| ALG_TYPE_HASH_SHA2_512 | 3 | |
| ALG_TYPE_HASH_SHA3_224 | 8 | |
| ALG_TYPE_HASH_SHA3_256 | 9 | |
| ALG_TYPE_HASH_SHA3_384 | 10 | |
| ALG_TYPE_HASH_SHA3_512 | 11 | |
| ALG_TYPE_HASH_SHAKE_128 | 12 | |
| ALG_TYPE_HASH_SHAKE_256 | 13 |
e2ees/AlgTypeKem.proto
AlgTypeKem
Algorithm type for Kem.
| Name | Number | Description |
|---|---|---|
| ALG_TYPE_KEM_CURVE25519 | 0 | |
| ALG_TYPE_KEM_HQC_128 | 1 | |
| ALG_TYPE_KEM_HQC_192 | 9 | |
| ALG_TYPE_KEM_HQC_256 | 17 | |
| ALG_TYPE_KEM_MLKEM_512 | 33 | |
| ALG_TYPE_KEM_MLKEM_768 | 41 | |
| ALG_TYPE_KEM_MLKEM_1024 | 49 | |
| ALG_TYPE_KEM_MCELIECE_348864 | 65 | |
| ALG_TYPE_KEM_MCELIECE_348864F | 69 | |
| ALG_TYPE_KEM_MCELIECE_460896 | 73 | |
| ALG_TYPE_KEM_MCELIECE_460896F | 77 | |
| ALG_TYPE_KEM_MCELIECE_6688128 | 81 | |
| ALG_TYPE_KEM_MCELIECE_6688128F | 85 | |
| ALG_TYPE_KEM_MCELIECE_6960119 | 89 | |
| ALG_TYPE_KEM_MCELIECE_6960119F | 93 | |
| ALG_TYPE_KEM_MCELIECE_8192128 | 97 | |
| ALG_TYPE_KEM_MCELIECE_8192128F | 101 |
e2ees/AlgTypeSe.proto
AlgTypeSe
Algorithm type for Symmetric encryption.
| Name | Number | Description |
|---|---|---|
| ALG_TYPE_SE_AES256GCM | 0 |
e2ees/Certificate.proto
Cert
A cert data with public key is provided by an issuee and can be signed by an issuer.
| Field | Type | Label | Description |
|---|---|---|---|
| issuee | Subject | The owner of this certificate. | |
| public_key_alg | AlgTypeDs | The public key algorithm. | |
| public_key | bytes | The public key data. | |
| issuer | Subject | The signer of this certificate. | |
| not_before | int64 | The certificate issue date. | |
| not_after | int64 | The certificate expiry date. |
Certificate
The certificate message.
| Field | Type | Label | Description |
|---|---|---|---|
| version | uint32 | The version number | |
| hash_alg | AlgTypeHash | The hash algorithm for creating fingerprint of cert attribute and signing public key. | |
| signing_alg | AlgTypeDs | The algorithm for generating the signature. | |
| cert | Cert | The cert data that is provided by issuee. | |
| cert_fingerprint | bytes | The hash value as the fingerprint of cert attribute. | |
| signing_public_key_fingerprint | bytes | The hash value as the fingerprint of the signing public key. | |
| signature | bytes | The signature that is signed by signing private key that is owned by issuer. | |
| ts | int64 | The lastest update time stamp for this certificate. | |
| valid | bool | The validity of this certificate. |
Subject
A subject is used to describe issuer or issuee.
| Field | Type | Label | Description |
|---|---|---|---|
| cn | string | The common name. | |
| domain | string | The domain name. | |
| o | string | The organization name | |
| ou | string | repeated | The organization unit name. |
e2ees/ChainKey.proto
ChainKey
The chain key.
| Field | Type | Label | Description |
|---|---|---|---|
| index | uint32 | The index of the chain key. | |
| shared_key | bytes | The chain key data. |
e2ees/ClientHeartbeatMsg.proto
ClientHeartbeatMsg
Msg for client heartbeat.
| Field | Type | Label | Description |
|---|---|---|---|
| client_t | int64 | The timestamp of client. |
e2ees/ConsumeProtoMsgRequest.proto
ConsumeProtoMsgRequest
Request for consuming a proto msg received from server.
| Field | Type | Label | Description |
|---|---|---|---|
| proto_msg_id | string | The proto msg ID to be consumed. | |
| state | ProtoMsgOpState | The operational state of the consumed proto msg. |
ProtoMsgOpState
The operational state of proto msg.
| Name | Number | Description |
|---|---|---|
| PROTO_MSG_OP_STATE_UNSPECIFIED | 0 | |
| PROTO_MSG_OP_STATE_SUCCEEDEDED | 1 | |
| PROTO_MSG_OP_STATE_FAILED_SIGNATURE | 2 | |
| PROTO_MSG_OP_STATE_FAILED_DECRYPTION | 3 | |
| PROTO_MSG_OP_STATE_FAILED_ESCAPE | 4 |
e2ees/ConsumeProtoMsgResponse.proto
ConsumeProtoMsgResponse
Response for consuming a proto msg.
| Field | Type | Label | Description |
|---|---|---|---|
| code | ResponseCode | The response code given by the server. | |
| msg | string | The message given by the server. |
e2ees/CreateGroupMsg.proto
CreateGroupMsg
Msg for creating a group.
| Field | Type | Label | Description |
|---|---|---|---|
| e2ees_pack_id | uint32 | The E2EE Security pack ID. | |
| sender_address | E2eeAddress | The sender's address. | |
| group_info | GroupInfo | The group information, including the group name, the group address and all of the group members. | |
| member_info_list | GroupMemberInfo | repeated | The group members' information. |
e2ees/CreateGroupRequest.proto
CreateGroupRequest
Request for creating a group.
| Field | Type | Label | Description |
|---|---|---|---|
| msg | CreateGroupMsg | The included msg for this request. |
e2ees/CreateGroupResponse.proto
CreateGroupResponse
Response for creating a group.
| Field | Type | Label | Description |
|---|---|---|---|
| code | ResponseCode | The response code given by the server. | |
| msg | string | The message given by the server. | |
| group_address | E2eeAddress | The group address. | |
| member_info_list | GroupMemberInfo | repeated | The group members' information. |
e2ees/DsAlgType.proto
DsAlgType
Digital signature algorithm type.
| Name | Number | Description |
|---|---|---|
| DS_ALG_TYPE_CURVE25519 | 0 | |
| DS_ALG_TYPE_MLDSA_44 | 1 | |
| DS_ALG_TYPE_MLDSA_65 | 9 | |
| DS_ALG_TYPE_MLDSA_87 | 17 | |
| DS_ALG_TYPE_FALCON_512 | 33 | |
| DS_ALG_TYPE_FALCON_1024 | 41 | |
| DS_ALG_TYPE_SPHINCS_SHA2_128F | 65 | |
| DS_ALG_TYPE_SPHINCS_SHA2_128S | 69 | |
| DS_ALG_TYPE_SPHINCS_SHA2_192F | 73 | |
| DS_ALG_TYPE_SPHINCS_SHA2_192S | 77 | |
| DS_ALG_TYPE_SPHINCS_SHA2_256F | 81 | |
| DS_ALG_TYPE_SPHINCS_SHA2_256S | 85 | |
| DS_ALG_TYPE_SPHINCS_SHAKE_128F | 89 | |
| DS_ALG_TYPE_SPHINCS_SHAKE_128S | 93 | |
| DS_ALG_TYPE_SPHINCS_SHAKE_192F | 97 | |
| DS_ALG_TYPE_SPHINCS_SHAKE_192S | 101 | |
| DS_ALG_TYPE_SPHINCS_SHAKE_256F | 105 | |
| DS_ALG_TYPE_SPHINCS_SHAKE_256S | 109 |
e2ees/E2eeAddress.proto
E2eeAddress
The address for designating an end point of user or group.
| Field | Type | Label | Description |
|---|---|---|---|
| domain | string | The domain of the address. | |
| user | PeerUser | The user peer of the address. | |
| group | PeerGroup | The group peer of the address. |
PeerGroup
Group peer.
| Field | Type | Label | Description |
|---|---|---|---|
| group_name | string | The optional group name. | |
| group_id | string | The group ID. |
PeerUser
User peer.
| Field | Type | Label | Description |
|---|---|---|---|
| user_name | string | The optional user name. | |
| user_id | string | The user's ID. | |
| device_id | string | The user's device ID. |
e2ees/E2eeMsg.proto
E2eeMsg
Msg for end to end encryption.
| Field | Type | Label | Description |
|---|---|---|---|
| version | string | The version. | |
| session_id | string | The session ID. | |
| from | E2eeAddress | The sender's address. | |
| to | E2eeAddress | The receiver's address. | |
| msg_id | string | The msg ID. | |
| notif_level | NotifLevel | The notification level. | |
| one2one_msg | One2oneMsgPayload | The payload for one2one msg. | |
| group_msg | GroupMsgPayload | The payload for group msg. |
e2ees/E2eesPackId.proto
E2eesPackId
Msg for e2ees pack ID.
| Field | Type | Label | Description |
|---|---|---|---|
| ver | int32 | The e2ees pack ID version. | |
| ds | AlgTypeDs | The digital signature algorithm type. | |
| kem | AlgTypeKem | The kem algorithm type. | |
| se | AlgTypeSe | The symmetric encryption algorithm type. | |
| hash | AlgTypeHash | The hash function algorithm type. |
e2ees/FriendManagerMsg.proto
FriendManagerMsg
Msg for friend manager.
| Field | Type | Label | Description |
|---|---|---|---|
| modified_date | int64 | The modified date of the friend manager msg. | |
| msgId | string | The msg ID. | |
| user_address | E2eeAddress | The user address. | |
| user_name | string | The user name. | |
| op | FriendOp | The operation of this msg. | |
| friend | FriendshipDTO | The friend data. |
FriendshipDTO
The data object representing a friend.
| Field | Type | Label | Description |
|---|---|---|---|
| modified_date | int64 | ||
| from_user | string | ||
| to_user | string | ||
| nickname | string | ||
| memoname | string | ||
| block_state | int32 | ||
| friend_status | int32 |
FriendOp
The friend operations.
| Name | Number | Description |
|---|---|---|
| FRIEND_OP_ADDING_SEND | 0 | |
| FRIEND_OP_ADDING_RECEIVE | 1 | |
| FRIEND_OP_ADDED | 2 | |
| FRIEND_OP_BLOCKED | 3 | |
| FRIEND_OP_UNBLOCKED | 4 | |
| FRIEND_OP_REMOVED | 5 | |
| FRIEND_OP_UPDATE_MEMONAME | 6 | |
| FRIEND_OP_RECOMMEND | 7 |
e2ees/GetGroupRequest.proto
GetGroupRequest
Request for getting a group.
| Field | Type | Label | Description |
|---|---|---|---|
| group_address | E2eeAddress | The group address. | |
| sender_address | E2eeAddress | The sender address. |
e2ees/GetGroupResponse.proto
GetGroupResponse
Response for getting a group.
| Field | Type | Label | Description |
|---|---|---|---|
| code | ResponseCode | The response code given by the server. | |
| msg | string | The message given by the server. | |
| group_name | string | The group name. | |
| group_address | E2eeAddress | The group address. | |
| group_member_list | GroupMember | repeated | The list of group members. |
e2ees/GetPreKeyBundleRequest.proto
GetPreKeyBundleRequest
Request for getting pre-key bundle.
| Field | Type | Label | Description |
|---|---|---|---|
| domain | string | The domain. | |
| user_id | string | The user's ID. | |
| device_id | string | The user's device ID. |
e2ees/GetPreKeyBundleResponse.proto
GetPreKeyBundleResponse
Response for getting pre-key bundle.
| Field | Type | Label | Description |
|---|---|---|---|
| code | ResponseCode | The response code given by the server. | |
| msg | string | The message given by the server. | |
| user_id | string | The user's ID. | |
| pre_key_bundles | PreKeyBundle | repeated | The user's pre-key bundles for all devices. |
e2ees/GroupInfo.proto
GroupInfo
The group information.
| Field | Type | Label | Description |
|---|---|---|---|
| group_name | string | The group name. | |
| group_address | E2eeAddress | The group address. | |
| group_member_list | GroupMember | repeated | The list of group members. |
e2ees/GroupManagerMsg.proto
AddGroupMembersArg
Argument for adding group members.
| Field | Type | Label | Description |
|---|---|---|---|
| user_address | E2eeAddress | ||
| added_member_list | GroupMember | repeated |
CreateGroupArg
Argument for creating a group.
| Field | Type | Label | Description |
|---|---|---|---|
| creator_address | E2eeAddress | ||
| group_member_list | GroupMember | repeated |
DestroyGroupArg
Argument for destroying a group.
| Field | Type | Label | Description |
|---|---|---|---|
| user_address | E2eeAddress |
GroupManagerMsg
Msg for group manager.
| Field | Type | Label | Description |
|---|---|---|---|
| modified_date | int64 | The modified date of the group manager msg. | |
| msgId | string | The msg ID. | |
| group_address | E2eeAddress | The group address. | |
| group_name | string | The group name. | |
| op | GroupOp | The operation of this msg. | |
| create_group_arg | CreateGroupArg | The argument for creating group. | |
| update_group_name_arg | UpdateGroupNameArg | The argument for updating group name. | |
| update_group_avatar_arg | UpdateGroupAvatarArg | The argument for updating group avatar. | |
| update_group_admins_arg | UpdateGroupAdminsArg | The argument for updating group admins. | |
| add_group_members_arg | AddGroupMembersArg | The argument for adding group members. | |
| join_group_arg | JoinGroupArg | The argument for joining group. | |
| remove_group_members_arg | RemoveGroupMembersArg | The argument for removing group members. | |
| destroy_group_arg | DestroyGroupArg | The argument for destroying group. |
JoinGroupArg
Argument for joining a group.
| Field | Type | Label | Description |
|---|---|---|---|
| user_address | E2eeAddress | ||
| joined_member | GroupMember |
RemoveGroupMembersArg
Argument for removing group members.
| Field | Type | Label | Description |
|---|---|---|---|
| user_address | E2eeAddress | ||
| removed_member_list | GroupMember | repeated |
UpdateGroupAdminsArg
Argument for updating the group admins.
| Field | Type | Label | Description |
|---|---|---|---|
| user_address | E2eeAddress | ||
| group_admin_list | GroupMember | repeated |
UpdateGroupAvatarArg
Argument for updating the group avatar.
| Field | Type | Label | Description |
|---|---|---|---|
| user_address | E2eeAddress | ||
| groupAvatarUrl | string |
UpdateGroupNameArg
Argument for updating the group name.
| Field | Type | Label | Description |
|---|---|---|---|
| user_address | E2eeAddress | ||
| group_name | string |
GroupOp
The group operations.
| Name | Number | Description |
|---|---|---|
| GROUP_OP_UNSPECIFIED | 0 | |
| GROUP_OP_CREATE_GROUP | 11 | |
| GROUP_OP_UPDATE_GROUP_NAME | 12 | |
| GROUP_OP_UPDATE_GROUP_AVATAR | 13 | |
| GROUP_OP_UPDATE_GROUP_ADMINS | 14 | |
| GROUP_OP_ADD_GROUP_MEMBERS | 21 | |
| GROUP_OP_JOIN_GROUP | 22 | |
| GROUP_OP_REMOVE_GROUP_MEMBERS | 23 | |
| GROUP_OP_DESTROY_GROUP | 30 |
e2ees/GroupMember.proto
GroupMember
The group member.
| Field | Type | Label | Description |
|---|---|---|---|
| user_id | string | The group member's users ID. | |
| domain | string | The group member's domain. | |
| role | GroupRole | The group member's role. |
GroupRole
The group role.
| Name | Number | Description |
|---|---|---|
| GROUP_ROLE_MEMBER | 0 | |
| GROUP_ROLE_MANAGER | 1 | |
| GROUP_ROLE_PENDING_MEMBER | 10 | |
| GROUP_ROLE_PENDING_MANAGER | 11 |
e2ees/GroupMemberInfo.proto
GroupMemberInfo
The group member information with signed public key that is bound to a user device.
| Field | Type | Label | Description |
|---|---|---|---|
| member_address | E2eeAddress | The group member's address. | |
| sign_public_key | bytes | The signed public key part of the user's uploaded public identity key. |
e2ees/GroupMsgPayload.proto
GroupMsgPayload
Payload for group msg.
| Field | Type | Label | Description |
|---|---|---|---|
| sequence | uint32 | The sequence of the related group session. | |
| ciphertext | bytes | The ciphertext. | |
| signature | bytes | The signature signed by the sender. |
e2ees/GroupPreKeyBundle.proto
GroupPreKeyBundle
Bundle for group pre-key.
| Field | Type | Label | Description |
|---|---|---|---|
| version | string | The version. | |
| e2ees_pack_id | uint32 | The E2EE Security pack ID. | |
| session_id | string | The session ID. | |
| old_session_id | string | The optional old session ID. | |
| sender | E2eeAddress | The sender's address. | |
| group_info | GroupInfo | The group information. | |
| sequence | uint32 | The sequence of the related group session. | |
| group_seed | bytes | The seed for the related group session. |
e2ees/GroupSession.proto
GroupSession
The group session.
| Field | Type | Label | Description |
|---|---|---|---|
| version | string | The version. | |
| e2ees_pack_id | uint32 | The E2EE Security pack ID. | |
| session_id | string | The group session ID. | |
| sender | E2eeAddress | The sender's address. | |
| session_owner | E2eeAddress | The group session owner's address. | |
| group_info | GroupInfo | The group information. | |
| sequence | uint32 | The sequence of the chain key. | |
| chain_key | bytes | The chain key. | |
| group_seed | bytes | The random seed generated by the group creator. | |
| associated_data | bytes | The associated data. |
e2ees/GroupUpdateKeyBundle.proto
GroupUpdateKeyBundle
Bundle for group update key.
| Field | Type | Label | Description |
|---|---|---|---|
| version | string | The version. | |
| e2ees_pack_id | uint32 | The E2EE Security pack ID. | |
| session_id | string | The session ID. | |
| sender | E2eeAddress | The sender's address. | |
| adding | bool | The flag for identifying this bundle is used for adding or not. | |
| group_info | GroupInfo | Thi group information. | |
| sequence | uint32 | The sequence of the chain key. | |
| chain_key | bytes | The chain key. | |
| sign_public_key | bytes | The signed public key part of the user's uploaded public identity key. | |
| adding_member_info_list | GroupMemberInfo | repeated | The list of adding group member information. |
e2ees/IdentityKey.proto
IdentityKey
The identity key.
| Field | Type | Label | Description |
|---|---|---|---|
| asym_key_pair | KeyPair | The key pair for asymmetric encryption and decryption. | |
| sign_key_pair | KeyPair | The key pair for signing and verifying signature. |
e2ees/IdentityKeyPublic.proto
IdentityKeyPublic
The public key part of an identity key.
| Field | Type | Label | Description |
|---|---|---|---|
| asym_public_key | bytes | The public key part for asymmetric encryption. | |
| sign_public_key | bytes | The public key part for verifying signature. |
e2ees/InviteMsg.proto
InviteMsg
Msg form inviter for initiating a key agreement.
| Field | Type | Label | Description |
|---|---|---|---|
| version | string | The version. | |
| e2ees_pack_id | uint32 | The E2EE Security pack ID. | |
| session_id | string | The session ID. | |
| from | E2eeAddress | The sender's address. | |
| to | E2eeAddress | The receiver's address. | |
| alice_identity_key | bytes | The inviter's identity key. | |
| alice_base_key | bytes | The inviter's base key that is the first ratchet public key. | |
| pre_shared_input_list | bytes | repeated | The data that needs to generate some shared secret. |
| bob_signed_pre_key_id | uint32 | The invitee's signed pre-key ID. | |
| bob_one_time_pre_key_id | uint32 | The invitee's one-time pre-key ID. | |
| invite_t | int64 | The server time of invitation for creating this session. |
e2ees/InviteRequest.proto
InviteRequest
Request for sending an invite msg.
| Field | Type | Label | Description |
|---|---|---|---|
| msg | InviteMsg | The included msg for this request. |
e2ees/InviteResponse.proto
InviteResponse
Response for sending an invite msg.
| Field | Type | Label | Description |
|---|---|---|---|
| code | ResponseCode | The response code given by the server. | |
| msg | string | The message given by the server. | |
| session_id | string | The session ID. | |
| invite_t | int64 | The server time of invitation for creating this session. |
e2ees/KemAlgType.proto
KemAlgType
Kem algorithm type.
| Name | Number | Description |
|---|---|---|
| KEM_ALG_TYPE_CURVE25519 | 0 | |
| KEM_ALG_TYPE_HQC_128 | 1 | |
| KEM_ALG_TYPE_HQC_192 | 9 | |
| KEM_ALG_TYPE_HQC_256 | 17 | |
| KEM_ALG_TYPE_MLKEM_512 | 33 | |
| KEM_ALG_TYPE_MLKEM_768 | 41 | |
| KEM_ALG_TYPE_MLKEM_1024 | 49 | |
| KEM_ALG_TYPE_MCELIECE_348864 | 65 | |
| KEM_ALG_TYPE_MCELIECE_348864F | 69 | |
| KEM_ALG_TYPE_MCELIECE_460896 | 73 | |
| KEM_ALG_TYPE_MCELIECE_460896F | 77 | |
| KEM_ALG_TYPE_MCELIECE_6688128 | 81 | |
| KEM_ALG_TYPE_MCELIECE_6688128F | 85 | |
| KEM_ALG_TYPE_MCELIECE_6960119 | 89 | |
| KEM_ALG_TYPE_MCELIECE_6960119F | 93 | |
| KEM_ALG_TYPE_MCELIECE_8192128 | 97 | |
| KEM_ALG_TYPE_MCELIECE_8192128F | 101 |
e2ees/KeyPair.proto
KeyPair
The Keypair.
| Field | Type | Label | Description |
|---|---|---|---|
| public_key | bytes | The public key. | |
| private_key | bytes | The private key. |
e2ees/LeaveGroupMsg.proto
LeaveGroupMsg
Msg for leaving a group.
| Field | Type | Label | Description |
|---|---|---|---|
| user_address | E2eeAddress | The address of the user leaving the group. | |
| group_address | E2eeAddress | The group address. |
e2ees/LeaveGroupRequest.proto
LeaveGroupRequest
Request for leaving a group.
| Field | Type | Label | Description |
|---|---|---|---|
| msg | LeaveGroupMsg | The included msg for this request. |
e2ees/LeaveGroupResponse.proto
LeaveGroupResponse
Response for leaving a group.
| Field | Type | Label | Description |
|---|---|---|---|
| code | ResponseCode | The response code given by the server. | |
| msg | string | The message given by the server. | |
| leave_group_member_address | E2eeAddress | The address of the user leaving the group. | |
| group_address | E2eeAddress | The group address. |
e2ees/MsgKey.proto
MsgKey
The msg key.
| Field | Type | Label | Description |
|---|---|---|---|
| index | uint32 | The index of the message key. | |
| derived_key | bytes | The data of the message key. |
e2ees/NotifLevel.proto
NotifLevel
The notification level used to identify the urgency of a msg.
| Name | Number | Description |
|---|---|---|
| NOTIF_LEVEL_NORMAL | 0 | The notification level indicates that server will not send push notification to device. |
| NOTIF_LEVEL_SESSION | 1 | The notification level indicates that server will forward msg for establishing session. |
| NOTIF_LEVEL_PUSH | 11 | The notification level indicates that server will send push notification to device. |
| NOTIF_LEVEL_STREAM | 12 | The notification level indicates that server will send push notification with streaming flags to device. |
e2ees/One2oneMsgPayload.proto
One2oneMsgPayload
Payload for one2one msg.
| Field | Type | Label | Description |
|---|---|---|---|
| sequence | uint32 | The sequence of the chain key. | |
| ciphertext | bytes | The ciphertext. | |
| ratchet_key | bytes | The ratchet public key. | |
| root_sequence | uint32 | The root sequence. | |
| sending_message_sequence | uint32 | The sequence of the sending message. |
e2ees/OneTimePreKey.proto
OneTimePreKey
The one-time pre-key.
| Field | Type | Label | Description |
|---|---|---|---|
| opk_id | uint32 | The one-time pre-key ID. | |
| used | bool | This one-time pre-key is used or not. | |
| key_pair | KeyPair | The one-time pre-key data. |
e2ees/OneTimePreKeyPublic.proto
OneTimePreKeyPublic
The public part of an one-time pre-key.
| Field | Type | Label | Description |
|---|---|---|---|
| opk_id | uint32 | The one-time pre-key ID. | |
| public_key | bytes | The public part of this one-time pre-key pair. |
e2ees/PendingRequest.proto
PendingRequest
The pending request.
| Field | Type | Label | Description |
|---|---|---|---|
| type | PendingRequestType | The type of the pending request | |
| request_data | bytes | The data for the pending request. | |
| request_arg_list | bytes | repeated | The optional arguments for the pending request . |
PendingRequestType
The pending request types.
| Name | Number | Description |
|---|---|---|
| PENDING_REQUEST_TYPE_GET_PRE_KEY_BUNDLE | 0 | |
| PENDING_REQUEST_TYPE_INVITE | 1 | |
| PENDING_REQUEST_TYPE_ACCEPT | 2 | |
| PENDING_REQUEST_TYPE_PUBLISH_SPK | 3 | |
| PENDING_REQUEST_TYPE_SUPPLY_OPKS | 4 | |
| PENDING_REQUEST_TYPE_SEND_ONE2ONE_MSG | 5 | |
| PENDING_REQUEST_TYPE_CREATE_GROUP | 6 | |
| PENDING_REQUEST_TYPE_ADD_GROUP_MEMBERS | 7 | |
| PENDING_REQUEST_TYPE_ADD_GROUP_MEMBER_DEVICE | 8 | |
| PENDING_REQUEST_TYPE_REMOVE_GROUP_MEMBERS | 9 | |
| PENDING_REQUEST_TYPE_LEAVE_GROUP | 10 | |
| PENDING_REQUEST_TYPE_SEND_GROUP_MSG | 11 | |
| PENDING_REQUEST_TYPE_PROTO_MSG | 12 |
e2ees/Plaintext.proto
Plaintext
The plaintext.
| Field | Type | Label | Description |
|---|---|---|---|
| version | string | The version. | |
| common_msg | bytes | The common msg payload that is used for general purpose from application. | |
| common_sync_msg | bytes | The sync msg payload that is forwarded to other devices of the user. | |
| user_devices_bundle | UserDevicesBundle | The user devices' bundle that is used to help sync session with other devices of the user. | |
| group_pre_key_bundle | GroupPreKeyBundle | The group pre-key bundle that is used to help create group session. | |
| group_update_key_bundle | GroupUpdateKeyBundle | The group update key bundle that is used to help renew group session. |
e2ees/PlatformType.proto
PlatformType
Enumeration of platform types for computing devices.
| Name | Number | Description |
|---|---|---|
| PLATFORM_TYPE_UNSPECIFIED | 0 | 0x00 |
| PLATFORM_TYPE_DESKTOP_LINUX | 1 | 0x01 ~ 0x07 |
Desktop platform: Linux | | PLATFORM_TYPE_DESKTOP_MACOS | 2 | Desktop platform: macOS | | PLATFORM_TYPE_DESKTOP_WINDOWS | 3 | Desktop platform: Windows | | PLATFORM_TYPE_MOBILE_IPHOME | 8 | 0x08 ~ 0x0f
Mobile platform: iPhone | | PLATFORM_TYPE_MOBILE_ANDROID | 9 | Mobile platform: Android | | PLATFORM_TYPE_TABLET_IPAD | 16 | 0x10 ~ 0x17
Tablet platform: iPad | | PLATFORM_TYPE_TABLET_ANDROID_PAD | 17 | Tablet platform: Android pad | | PLATFORM_TYPE_WEARABLE_SMARTWATCH_IWATCH | 24 | 0x18 ~ 0x1f
Smartwatch platform: watchOS | | PLATFORM_TYPE_WEARABLE_SMARTWATCH_ANDROID_WATCH | 25 | Smartwatch platform: wearOS | | PLATFORM_TYPE_WEB | 80 | 0x50 ~ 0x5f
Web platform | | PLATFORM_TYPE_SERVER_LINUX | 96 | 0x60 ~ 0x7f
Server platform: Linux | | PLATFORM_TYPE_SERVER_WINDOWS | 97 | Server platform: Windows | | PLATFORM_TYPE_SERVER_UNIX | 98 | Server platform: Unix / Free BSD | | PLATFORM_TYPE_SERVER_CLOUD_NATIVE | 99 | Server platform: Cloud native including |
e2ees/PreKeyBundle.proto
PreKeyBundle
Bundle for pre-key.
| Field | Type | Label | Description |
|---|---|---|---|
| e2ees_pack_id | uint32 | The E2EE Security pack ID. | |
| user_address | E2eeAddress | The user's address. | |
| identity_key_public | IdentityKeyPublic | The public part of the identity key pair. | |
| signed_pre_key_public | SignedPreKeyPublic | The public part of the signed pre-key pair. | |
| one_time_pre_key_public | OneTimePreKeyPublic | The public part of the one-time pre-key pair. | |
| signature | ServerSignedSignature | The signature of pre-key bundle signed by the server's key. |
e2ees/ProtoMsg.proto
ProtoMsg
The proto msg from server.
| Field | Type | Label | Description |
|---|---|---|---|
| tag | ProtoMsgTag | The tag for helping server consume this msg. | |
| from | E2eeAddress | The sender's address. | |
| to | E2eeAddress | The receiver's address. | |
| acquire_sync_msg | AcquireSyncMsg | The acquire sync msg. | |
| supply_opks_msg | SupplyOpksMsg | The supply one-time pre-key msg. | |
| invite_msg | InviteMsg | The invite msg. | |
| accept_msg | AcceptMsg | The accept msg. | |
| add_user_device_msg | AddUserDeviceMsg | The add user device msg. | |
| remove_user_device_msg | RemoveUserDeviceMsg | The remove user device msg. | |
| create_group_msg | CreateGroupMsg | The create group msg.. | |
| add_group_members_msg | AddGroupMembersMsg | The add group members msg. | |
| remove_group_members_msg | RemoveGroupMembersMsg | The remove group members msg. | |
| add_group_member_device_msg | AddGroupMemberDeviceMsg | The add group member device msg. | |
| leave_group_msg | LeaveGroupMsg | The leave group msg. | |
| e2ee_msg | E2eeMsg | The end to end encryption msg. | |
| update_user_msg | UpdateUserMsg | The update user msg. | |
| friend_manager_msg | FriendManagerMsg | The friend manager msg. | |
| group_manager_msg | GroupManagerMsg | The group manager msg. | |
| system_manager_msg | SystemManagerMsg | The system manager msg. | |
| client_heartbeat_msg | ClientHeartbeatMsg | The client heart beat msg. | |
| server_heartbeat_msg | ServerHeartbeatMsg | The server heart beat msg. | |
| upgrade_e2ees_pack_msg | UpgradeE2eesPackMsg | The upgrade e2ees pack msg. | |
| signature_list | ServerSignedSignature | repeated | The list of signatures created by signing the fingerprint of tag |
e2ees/ProtoMsgTag.proto
ProtoMsgTag
The proto msg tag.
| Field | Type | Label | Description |
|---|---|---|---|
| proto_msg_t | int64 | The server time stamp. | |
| proto_msg_id | string | The proto msg ID. |
e2ees/PublishSpkRequest.proto
PublishSpkRequest
Request for publishing signed pre-key.
| Field | Type | Label | Description |
|---|---|---|---|
| user_address | E2eeAddress | The user's address. | |
| signed_pre_key_public | SignedPreKeyPublic | The public part of the signed pre-key pair. |
e2ees/PublishSpkResponse.proto
PublishSpkResponse
Response for publishing signed pre-key.
| Field | Type | Label | Description |
|---|---|---|---|
| code | ResponseCode | The response code given by the server. | |
| msg | string | The message given by the server. |
e2ees/Ratchet.proto
Ratchet
The ratchet.
| Field | Type | Label | Description |
|---|---|---|---|
| root_key | bytes | The root key. | |
| root_sequence | uint32 | The sequence of the root key. | |
| sending_message_sequence | uint32 | The sequence of the sending message. | |
| received_message_sequence | uint32 | The sequence of the received message. | |
| sender_chain | SenderChainNode | The sender chain. | |
| receiver_chain | ReceiverChainNode | The receiver chains. | |
| skipped_msg_key_list | SkippedMsgKeyNode | repeated | The skipped message keys. |
e2ees/ReceiverChainNode.proto
ReceiverChainNode
The receiver chain node.
| Field | Type | Label | Description |
|---|---|---|---|
| their_ratchet_public_key | bytes | The public part of the ratchet key pair in ECC or the ciphertext given by the sender in PQC. | |
| our_ratchet_private_key | bytes | Our ratchet private key. | |
| chain_key | ChainKey | The chain key. |
e2ees/RegisterUserRequest.proto
RegisterUserRequest
Request for registering an account.
| Field | Type | Label | Description |
|---|---|---|---|
| e2ees_pack_id | uint32 | The E2EE Security pack ID. | |
| user_name | string | The user's name. | |
| user_id | string | The user's ID. | |
| device_id | string | The ID of the user's device. | |
| authenticator | string | Authenticator is the email (mailto:xxx@xxx) that is bound to the registering user. | |
| auth_code | string | Auth code is a 6-digits number that is received by email or an invitation in this format (e2ee:invitorUserId@invitorDomain;invite=xxxxx). | |
| platform | PlatformType | The platform type of the registering device. | |
| identity_key_public | IdentityKeyPublic | The public part of the identity key pair. | |
| signed_pre_key_public | SignedPreKeyPublic | The public part of the signed pre-key pair. | |
| one_time_pre_key_list | OneTimePreKeyPublic | repeated | The public part of all of the user's one-time pre-key pairs. |
e2ees/RegisterUserResponse.proto
RegisterUserResponse
Response for registering an account.
| Field | Type | Label | Description |
|---|---|---|---|
| code | ResponseCode | The response code given by the server. | |
| msg | string | The message given by the server. | |
| address | E2eeAddress | The user's address. | |
| username | string | The user's name. | |
| password | string | The password. | |
| auth | string | The authorization token. | |
| expires_in | int64 | The expiry time of authorization token. | |
| authenticator | string | The optional authenticator that is bound to this userId. | |
| server_cert | Certificate | The certificate of the server that support the registration. | |
| other_device_address_list | E2eeAddress | repeated | The addresses of other devices that is created with this userId. |
| other_user_address_list | E2eeAddress | repeated | The addresses of other users who had built session with this userId. |
| group_info_list | GroupInfo | repeated | The information of groups that had been created or joined by this userId. |