Skip to main content

Package: e2ees

The e2ees package is the protobuf designed for e2ee applications to work with underlying security module.

e2ees/AcceptMsg.proto

AcceptMsg

Msg form invitee for completing a key agreement.

FieldTypeLabelDescription
fromE2eeAddressThe sender's address.
toE2eeAddressThe receiver's address.
e2ees_pack_iduint32The E2EE Security pack ID.
encaps_ciphertextbytesThe ciphertext encapsulated by the inviter's identity public key, empty in ECC.
ratchet_keybytesThe invitee's ratchet key.

Top

e2ees/AcceptRequest.proto

AcceptRequest

Request for sending an accept msg.

FieldTypeLabelDescription
msgAcceptMsgThe included msg for this request.

Top

e2ees/AcceptResponse.proto

AcceptResponse

Response for sending Accept msg.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.

Top

e2ees/Account.proto

Account

Account for keeping keys and registeration information.

FieldTypeLabelDescription
versionstringThe version used for this account.
e2ees_pack_iduint32The e2ee pack ID used for this account.
addressE2eeAddressThe address with device ID for this account.
server_certCertificateThe certificate of the server that create this account.
identity_keyIdentityKeyThe identity key pair.
signed_pre_keySignedPreKeyThe signed pre-key pair.
one_time_pre_key_listOneTimePreKeyrepeatedThe one-time pre-key pairs.
next_one_time_pre_key_iduint32Next one-time pre-key pair ID.
savedboolThe account is saved or not.
passwordstringThe password for logining to server.
authstringThe jwt for authorizing request to server.
expires_inint64The expiration time of auth.

Top

e2ees/AcquireSyncMsg.proto

AcquireSyncMsg

Msg for acquiring un-processed msgs form server.

FieldTypeLabelDescription
last_proto_msg_tagProtoMsgTagThe last handled tag for acquiring un-handled msg from server.

Top

e2ees/AddGroupMemberDeviceMsg.proto

AddGroupMemberDeviceMsg

Msg for adding a device of group member.

FieldTypeLabelDescription
e2ees_pack_iduint32The E2EE Security pack ID.
sender_addressE2eeAddressThe sender's address.
sequenceuint32The sequence for related group session.
group_infoGroupInfoThe group information, including the group name, the group address and all of the group members.
adding_member_deviceGroupMemberInfoThe information of a group member's new device.

Top

e2ees/AddGroupMemberDeviceRequest.proto

AddGroupMemberDeviceRequest

Request for adding a device of group member.

FieldTypeLabelDescription
msgAddGroupMemberDeviceMsgThe included msg for this request.

Top

e2ees/AddGroupMemberDeviceResponse.proto

AddGroupMemberDeviceResponse

Response for adding a device of group member.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.
group_member_listGroupMemberrepeatedThe group members.
adding_member_device_infoGroupMemberInfoThe information of a group member's new device.

Top

e2ees/AddGroupMembersMsg.proto

AddGroupMembersMsg

Msg for adding group members.

FieldTypeLabelDescription
e2ees_pack_iduint32The E2EE Security pack ID.
sender_addressE2eeAddressThe sender's address.
sequenceuint32The sequence for related group session.
group_infoGroupInfoThe group information, including the group name, the group address and all of the group members.
adding_member_listGroupMemberrepeatedThe adding group members.
adding_member_info_listGroupMemberInforepeatedThe adding group members' information.

Top

e2ees/AddGroupMembersRequest.proto

AddGroupMembersRequest

Request for adding group members.

FieldTypeLabelDescription
msgAddGroupMembersMsgThe included msg for this request.

Top

e2ees/AddGroupMembersResponse.proto

AddGroupMembersResponse

Response for adding group members.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server
msgstringThe message given by the server
added_group_member_listGroupMemberrepeatedThe added group members
group_member_listGroupMemberrepeatedThe group members
adding_member_info_listGroupMemberInforepeatedThe adding group members' information

Top

e2ees/AddUserDeviceMsg.proto

AddUserDeviceMsg

Msg for adding user device.

FieldTypeLabelDescription
user_addressE2eeAddressThe added user e2ee address
old_address_listE2eeAddressrepeatedThe list of other e2ee address that has the same user ID

Top

e2ees/AlgTypeDs.proto

AlgTypeDs

Algorithm type for Digital signature.

NameNumberDescription
ALG_TYPE_DS_CURVE255190
ALG_TYPE_DS_MLDSA_441
ALG_TYPE_DS_MLDSA_659
ALG_TYPE_DS_MLDSA_8717
ALG_TYPE_DS_FALCON_51233
ALG_TYPE_DS_FALCON_102441
ALG_TYPE_DS_SPHINCS_SHA2_128F65
ALG_TYPE_DS_SPHINCS_SHA2_128S69
ALG_TYPE_DS_SPHINCS_SHA2_192F73
ALG_TYPE_DS_SPHINCS_SHA2_192S77
ALG_TYPE_DS_SPHINCS_SHA2_256F81
ALG_TYPE_DS_SPHINCS_SHA2_256S85
ALG_TYPE_DS_SPHINCS_SHAKE_128F89
ALG_TYPE_DS_SPHINCS_SHAKE_128S93
ALG_TYPE_DS_SPHINCS_SHAKE_192F97
ALG_TYPE_DS_SPHINCS_SHAKE_192S101
ALG_TYPE_DS_SPHINCS_SHAKE_256F105
ALG_TYPE_DS_SPHINCS_SHAKE_256S109

Top

e2ees/AlgTypeHash.proto

AlgTypeHash

Algorithm type for hash function.

NameNumberDescription
ALG_TYPE_HASH_SHA2_2240
ALG_TYPE_HASH_SHA2_2561
ALG_TYPE_HASH_SHA2_3842
ALG_TYPE_HASH_SHA2_5123
ALG_TYPE_HASH_SHA3_2248
ALG_TYPE_HASH_SHA3_2569
ALG_TYPE_HASH_SHA3_38410
ALG_TYPE_HASH_SHA3_51211
ALG_TYPE_HASH_SHAKE_12812
ALG_TYPE_HASH_SHAKE_25613

Top

e2ees/AlgTypeKem.proto

AlgTypeKem

Algorithm type for Kem.

NameNumberDescription
ALG_TYPE_KEM_CURVE255190
ALG_TYPE_KEM_HQC_1281
ALG_TYPE_KEM_HQC_1929
ALG_TYPE_KEM_HQC_25617
ALG_TYPE_KEM_MLKEM_51233
ALG_TYPE_KEM_MLKEM_76841
ALG_TYPE_KEM_MLKEM_102449
ALG_TYPE_KEM_MCELIECE_34886465
ALG_TYPE_KEM_MCELIECE_348864F69
ALG_TYPE_KEM_MCELIECE_46089673
ALG_TYPE_KEM_MCELIECE_460896F77
ALG_TYPE_KEM_MCELIECE_668812881
ALG_TYPE_KEM_MCELIECE_6688128F85
ALG_TYPE_KEM_MCELIECE_696011989
ALG_TYPE_KEM_MCELIECE_6960119F93
ALG_TYPE_KEM_MCELIECE_819212897
ALG_TYPE_KEM_MCELIECE_8192128F101

Top

e2ees/AlgTypeSe.proto

AlgTypeSe

Algorithm type for Symmetric encryption.

NameNumberDescription
ALG_TYPE_SE_AES256GCM0

Top

e2ees/Certificate.proto

Cert

A cert data with public key is provided by an issuee and can be signed by an issuer.

FieldTypeLabelDescription
issueeSubjectThe owner of this certificate.
public_key_algAlgTypeDsThe public key algorithm.
public_keybytesThe public key data.
issuerSubjectThe signer of this certificate.
not_beforeint64The certificate issue date.
not_afterint64The certificate expiry date.

Certificate

The certificate message.

FieldTypeLabelDescription
versionuint32The version number
hash_algAlgTypeHashThe hash algorithm for creating fingerprint of cert attribute and signing public key.
signing_algAlgTypeDsThe algorithm for generating the signature.
certCertThe cert data that is provided by issuee.
cert_fingerprintbytesThe hash value as the fingerprint of cert attribute.
signing_public_key_fingerprintbytesThe hash value as the fingerprint of the signing public key.
signaturebytesThe signature that is signed by signing private key that is owned by issuer.
tsint64The lastest update time stamp for this certificate.
validboolThe validity of this certificate.

Subject

A subject is used to describe issuer or issuee.

FieldTypeLabelDescription
cnstringThe common name.
domainstringThe domain name.
ostringThe organization name
oustringrepeatedThe organization unit name.

Top

e2ees/ChainKey.proto

ChainKey

The chain key.

FieldTypeLabelDescription
indexuint32The index of the chain key.
shared_keybytesThe chain key data.

Top

e2ees/ClientHeartbeatMsg.proto

ClientHeartbeatMsg

Msg for client heartbeat.

FieldTypeLabelDescription
client_tint64The timestamp of client.

Top

e2ees/ConsumeProtoMsgRequest.proto

ConsumeProtoMsgRequest

Request for consuming a proto msg received from server.

FieldTypeLabelDescription
proto_msg_idstringThe proto msg ID to be consumed.
stateProtoMsgOpStateThe operational state of the consumed proto msg.

ProtoMsgOpState

The operational state of proto msg.

NameNumberDescription
PROTO_MSG_OP_STATE_UNSPECIFIED0
PROTO_MSG_OP_STATE_SUCCEEDEDED1
PROTO_MSG_OP_STATE_FAILED_SIGNATURE2
PROTO_MSG_OP_STATE_FAILED_DECRYPTION3
PROTO_MSG_OP_STATE_FAILED_ESCAPE4

Top

e2ees/ConsumeProtoMsgResponse.proto

ConsumeProtoMsgResponse

Response for consuming a proto msg.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.

Top

e2ees/CreateGroupMsg.proto

CreateGroupMsg

Msg for creating a group.

FieldTypeLabelDescription
e2ees_pack_iduint32The E2EE Security pack ID.
sender_addressE2eeAddressThe sender's address.
group_infoGroupInfoThe group information, including the group name, the group address and all of the group members.
member_info_listGroupMemberInforepeatedThe group members' information.

Top

e2ees/CreateGroupRequest.proto

CreateGroupRequest

Request for creating a group.

FieldTypeLabelDescription
msgCreateGroupMsgThe included msg for this request.

Top

e2ees/CreateGroupResponse.proto

CreateGroupResponse

Response for creating a group.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.
group_addressE2eeAddressThe group address.
member_info_listGroupMemberInforepeatedThe group members' information.

Top

e2ees/DsAlgType.proto

DsAlgType

Digital signature algorithm type.

NameNumberDescription
DS_ALG_TYPE_CURVE255190
DS_ALG_TYPE_MLDSA_441
DS_ALG_TYPE_MLDSA_659
DS_ALG_TYPE_MLDSA_8717
DS_ALG_TYPE_FALCON_51233
DS_ALG_TYPE_FALCON_102441
DS_ALG_TYPE_SPHINCS_SHA2_128F65
DS_ALG_TYPE_SPHINCS_SHA2_128S69
DS_ALG_TYPE_SPHINCS_SHA2_192F73
DS_ALG_TYPE_SPHINCS_SHA2_192S77
DS_ALG_TYPE_SPHINCS_SHA2_256F81
DS_ALG_TYPE_SPHINCS_SHA2_256S85
DS_ALG_TYPE_SPHINCS_SHAKE_128F89
DS_ALG_TYPE_SPHINCS_SHAKE_128S93
DS_ALG_TYPE_SPHINCS_SHAKE_192F97
DS_ALG_TYPE_SPHINCS_SHAKE_192S101
DS_ALG_TYPE_SPHINCS_SHAKE_256F105
DS_ALG_TYPE_SPHINCS_SHAKE_256S109

Top

e2ees/E2eeAddress.proto

E2eeAddress

The address for designating an end point of user or group.

FieldTypeLabelDescription
domainstringThe domain of the address.
userPeerUserThe user peer of the address.
groupPeerGroupThe group peer of the address.

PeerGroup

Group peer.

FieldTypeLabelDescription
group_namestringThe optional group name.
group_idstringThe group ID.

PeerUser

User peer.

FieldTypeLabelDescription
user_namestringThe optional user name.
user_idstringThe user's ID.
device_idstringThe user's device ID.

Top

e2ees/E2eeMsg.proto

E2eeMsg

Msg for end to end encryption.

FieldTypeLabelDescription
versionstringThe version.
fromE2eeAddressThe sender's address.
toE2eeAddressThe receiver's address.
msg_idstring
session_idstringThe session ID.
notif_levelNotifLevel
one2one_msgOne2oneMsgPayloadThe payload for one2one msg.
group_msgGroupMsgPayloadThe payload for group msg.

Top

e2ees/E2eePackId.proto

E2eePackId

Msg for e2ee pack ID.

FieldTypeLabelDescription
verint32The version.
dsAlgTypeDsThe digital signature algorithm type.
kemAlgTypeKemThe kem algorithm type.
seAlgTypeSeThe symmetric encryption algorithm type.
hashAlgTypeHashThe hash function algorithm type.

Top

e2ees/FriendManagerMsg.proto

FriendManagerMsg

Msg for friend manager.

FieldTypeLabelDescription
modified_dateint64The modified date of the friend manager msg.
msgIdstringThe msg ID.
user_addressE2eeAddressThe user address.
user_namestringThe user name.
opFriendOpThe operation of this msg.
friendFriendshipDTOThe friend data.

FriendshipDTO

The data object representing a friend.

FieldTypeLabelDescription
modified_dateint64
from_userstring
to_userstring
nicknamestring
memonamestring
block_stateint32
friend_statusint32

FriendOp

The friend operations.

NameNumberDescription
FRIEND_OP_ADDING_SEND0
FRIEND_OP_ADDING_RECEIVE1
FRIEND_OP_ADDED2
FRIEND_OP_BLOCKED3
FRIEND_OP_UNBLOCKED4
FRIEND_OP_REMOVED5
FRIEND_OP_UPDATE_MEMONAME6
FRIEND_OP_RECOMMEND7

Top

e2ees/GetGroupRequest.proto

GetGroupRequest

Request for getting a group.

FieldTypeLabelDescription
group_addressE2eeAddressThe group address.
sender_addressE2eeAddressThe sender address.

Top

e2ees/GetGroupResponse.proto

GetGroupResponse

Response for getting a group.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.
group_namestringThe group name.
group_addressE2eeAddressThe group address.
group_member_listGroupMemberrepeatedThe list of group members.

Top

e2ees/GetPreKeyBundleRequest.proto

GetPreKeyBundleRequest

Request for getting pre-key bundle.

FieldTypeLabelDescription
domainstringThe domain.
user_idstringThe user's ID.
device_idstringThe user's device ID.

Top

e2ees/GetPreKeyBundleResponse.proto

GetPreKeyBundleResponse

Response for getting pre-key bundle.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.
user_idstringThe user's ID.
pre_key_bundlesPreKeyBundlerepeatedThe user's pre-key bundles for all devices.

Top

e2ees/GroupInfo.proto

GroupInfo

The group information.

FieldTypeLabelDescription
group_namestringThe group name.
group_addressE2eeAddressThe group address.
group_member_listGroupMemberrepeatedThe list of group members.

Top

e2ees/GroupManagerMsg.proto

AddGroupMembersArg

Argument for adding group members.

FieldTypeLabelDescription
user_addressE2eeAddress
added_member_listGroupMemberrepeated

CreateGroupArg

Argument for creating a group.

FieldTypeLabelDescription
creator_addressE2eeAddress
group_member_listGroupMemberrepeated

DestroyGroupArg

Argument for destroying a group.

FieldTypeLabelDescription
user_addressE2eeAddress

GroupManagerMsg

Msg for group manager.

FieldTypeLabelDescription
modified_dateint64The modified date of the group manager msg.
msgIdstringThe msg ID.
group_addressE2eeAddressThe group address.
group_namestringThe group name.
opGroupOpThe operation of this msg.
create_group_argCreateGroupArgThe argument for creating group.
update_group_name_argUpdateGroupNameArgThe argument for updating group name.
update_group_avatar_argUpdateGroupAvatarArgThe argument for updating group avatar.
update_group_admins_argUpdateGroupAdminsArgThe argument for updating group admins.
add_group_members_argAddGroupMembersArgThe argument for adding group members.
join_group_argJoinGroupArgThe argument for joining group.
remove_group_members_argRemoveGroupMembersArgThe argument for removing group members.
destroy_group_argDestroyGroupArgThe argument for destroying group.

JoinGroupArg

Argument for joining a group.

FieldTypeLabelDescription
user_addressE2eeAddress
joined_memberGroupMember

RemoveGroupMembersArg

Argument for removing group members.

FieldTypeLabelDescription
user_addressE2eeAddress
removed_member_listGroupMemberrepeated

UpdateGroupAdminsArg

Argument for updating the group admins.

FieldTypeLabelDescription
user_addressE2eeAddress
group_admin_listGroupMemberrepeated

UpdateGroupAvatarArg

Argument for updating the group avatar.

FieldTypeLabelDescription
user_addressE2eeAddress
groupAvatarUrlstring

UpdateGroupNameArg

Argument for updating the group name.

FieldTypeLabelDescription
user_addressE2eeAddress
group_namestring

GroupOp

The group operations.

NameNumberDescription
GROUP_OP_UNSPECIFIED0
GROUP_OP_CREATE_GROUP11
GROUP_OP_UPDATE_GROUP_NAME12
GROUP_OP_UPDATE_GROUP_AVATAR13
GROUP_OP_UPDATE_GROUP_ADMINS14
GROUP_OP_ADD_GROUP_MEMBERS21
GROUP_OP_JOIN_GROUP22
GROUP_OP_REMOVE_GROUP_MEMBERS23
GROUP_OP_DESTROY_GROUP30

Top

e2ees/GroupMember.proto

GroupMember

The group member.

FieldTypeLabelDescription
user_idstringThe group member's users ID.
domainstringThe group member's domain.
roleGroupRoleThe group member's role.

GroupRole

The group role.

NameNumberDescription
GROUP_ROLE_MEMBER0
GROUP_ROLE_MANAGER1
GROUP_ROLE_PENDING_MEMBER10
GROUP_ROLE_PENDING_MANAGER11

Top

e2ees/GroupMemberInfo.proto

GroupMemberInfo

The group member information with signed public key that is bound to a user device.

FieldTypeLabelDescription
member_addressE2eeAddressThe group member's address.
sign_public_keybytesThe signed public key part of the user's uploaded public identity key.

Top

e2ees/GroupMsgPayload.proto

GroupMsgPayload

Payload for group msg.

FieldTypeLabelDescription
sequenceuint32The sequence of the related group session.
ciphertextbytesThe ciphertext.
signaturebytesThe signature signed by the sender.

Top

e2ees/GroupPreKeyBundle.proto

GroupPreKeyBundle

Bundle for group pre-key.

FieldTypeLabelDescription
versionstringThe version.
e2ees_pack_iduint32The E2EE Security pack ID.
senderE2eeAddressThe sender's address.
session_idstringThe session ID.
old_session_idstringThe optional old session ID.
group_infoGroupInfoThe group information.
sequenceuint32The sequence of the related group session.
group_seedbytesThe seed for the related group session.

Top

e2ees/GroupSession.proto

GroupSession

The group session.

FieldTypeLabelDescription
versionstringThe version.
e2ees_pack_iduint32The E2EE Security pack ID.
session_idstringThe group session ID.
senderE2eeAddressThe sender's address.
session_ownerE2eeAddressThe group session owner's address.
group_infoGroupInfoThe group information.
sequenceuint32The sequence of the chain key.
chain_keybytesThe chain key.
group_seedbytesThe random seed generated by the group creator.
associated_databytesThe associated data.

Top

e2ees/GroupUpdateKeyBundle.proto

GroupUpdateKeyBundle

Bundle for group update key.

FieldTypeLabelDescription
versionstringThe version.
e2ees_pack_iduint32The E2EE Security pack ID.
senderE2eeAddressThe sender's address.
addingboolThe flag for identifying this bundle is used for adding or not.
session_idstringThe session ID.
group_infoGroupInfoThi group information.
sequenceuint32The sequence of the chain key.
chain_keybytesThe chain key.
sign_public_keybytesThe signed public key part of the user's uploaded public identity key.
adding_member_info_listGroupMemberInforepeatedThe list of adding group member information.

Top

e2ees/IdentityKey.proto

IdentityKey

The identity key.

FieldTypeLabelDescription
asym_key_pairKeyPairThe key pair for asymmetric encryption and decryption.
sign_key_pairKeyPairThe key pair for signing and verifying signature.

Top

e2ees/IdentityKeyPublic.proto

IdentityKeyPublic

The public key part of an identity key.

FieldTypeLabelDescription
asym_public_keybytesThe public key part for asymmetric encryption.
sign_public_keybytesThe public key part for verifying signature.

Top

e2ees/InviteMsg.proto

InviteMsg

Msg form inviter for initiating a key agreement.

FieldTypeLabelDescription
versionstringThe version.
e2ees_pack_iduint32The E2EE Security pack ID.
session_idstringThe session ID.
fromE2eeAddressThe sender's address.
toE2eeAddressThe receiver's address.
alice_identity_keybytesThe inviter's identity key.
alice_base_keybytesThe inviter's base key that is the first ratchet public key.
pre_shared_input_listbytesrepeatedThe data that needs to generate some shared secret.
bob_signed_pre_key_iduint32The invitee's signed pre-key ID.
bob_one_time_pre_key_iduint32The invitee's one-time pre-key ID.
invite_tint64The server time of invitation for creating this session.

Top

e2ees/InviteRequest.proto

InviteRequest

Request for sending an invite msg.

FieldTypeLabelDescription
msgInviteMsgThe included msg for this request.

Top

e2ees/InviteResponse.proto

InviteResponse

Response for sending an invite msg.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.
session_idstringThe session ID.
invite_tint64The server time of invitation for creating this session.

Top

e2ees/KemAlgType.proto

KemAlgType

Kem algorithm type.

NameNumberDescription
KEM_ALG_TYPE_CURVE255190
KEM_ALG_TYPE_HQC_1281
KEM_ALG_TYPE_HQC_1929
KEM_ALG_TYPE_HQC_25617
KEM_ALG_TYPE_MLKEM_51233
KEM_ALG_TYPE_MLKEM_76841
KEM_ALG_TYPE_MLKEM_102449
KEM_ALG_TYPE_MCELIECE_34886465
KEM_ALG_TYPE_MCELIECE_348864F69
KEM_ALG_TYPE_MCELIECE_46089673
KEM_ALG_TYPE_MCELIECE_460896F77
KEM_ALG_TYPE_MCELIECE_668812881
KEM_ALG_TYPE_MCELIECE_6688128F85
KEM_ALG_TYPE_MCELIECE_696011989
KEM_ALG_TYPE_MCELIECE_6960119F93
KEM_ALG_TYPE_MCELIECE_819212897
KEM_ALG_TYPE_MCELIECE_8192128F101

Top

e2ees/KeyPair.proto

KeyPair

The Keypair.

FieldTypeLabelDescription
public_keybytesThe public key.
private_keybytesThe private key.

Top

e2ees/LeaveGroupMsg.proto

LeaveGroupMsg

Msg for leaving a group.

FieldTypeLabelDescription
user_addressE2eeAddressThe address of the user leaving the group.
group_addressE2eeAddressThe group address.

Top

e2ees/LeaveGroupRequest.proto

LeaveGroupRequest

Request for leaving a group.

FieldTypeLabelDescription
msgLeaveGroupMsgThe included msg for this request.

Top

e2ees/LeaveGroupResponse.proto

LeaveGroupResponse

Response for leaving a group.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.
leave_group_member_addressE2eeAddressThe address of the user leaving the group.
group_addressE2eeAddressThe group address.

Top

e2ees/MsgKey.proto

MsgKey

The msg key.

FieldTypeLabelDescription
indexuint32The index of the message key.
derived_keybytesThe data of the message key.

Top

e2ees/NotifLevel.proto

NotifLevel

The notification level used to identify the urgency of a msg.

NameNumberDescription
NOTIF_LEVEL_NORMAL0The notification level indicates that server will not send push notification to device.
NOTIF_LEVEL_SESSION1The notification level indicates that server will forward msg for establishing session.
NOTIF_LEVEL_PUSH11The notification level indicates that server will send push notification to device.
NOTIF_LEVEL_STREAM12The notification level indicates that server will send push notification with streaming flags to device.

Top

e2ees/One2oneMsgPayload.proto

One2oneMsgPayload

Payload for one2one msg.

FieldTypeLabelDescription
sequenceuint32The sequence of the chain key.
ciphertextbytesThe ciphertext.
ratchet_keybytesThe ratchet public key.
root_sequenceuint32The root sequence.
sending_message_sequenceuint32The sequence of the sending message.

Top

e2ees/OneTimePreKey.proto

OneTimePreKey

The one-time pre-key.

FieldTypeLabelDescription
opk_iduint32The one-time pre-key ID.
usedboolThis one-time pre-key is used or not.
key_pairKeyPairThe one-time pre-key data.

Top

e2ees/OneTimePreKeyPublic.proto

OneTimePreKeyPublic

The public part of an one-time pre-key.

FieldTypeLabelDescription
opk_iduint32The one-time pre-key ID.
public_keybytesThe public part of this one-time pre-key pair.

Top

e2ees/PendingRequest.proto

PendingRequest

The pending request.

FieldTypeLabelDescription
typePendingRequestTypeThe type of the pending request
request_databytesThe data for the pending request.
request_arg_listbytesrepeatedThe optional arguments for the pending request .

PendingRequestType

The pending request types.

NameNumberDescription
PENDING_REQUEST_TYPE_GET_PRE_KEY_BUNDLE0
PENDING_REQUEST_TYPE_INVITE1
PENDING_REQUEST_TYPE_ACCEPT2
PENDING_REQUEST_TYPE_PUBLISH_SPK3
PENDING_REQUEST_TYPE_SUPPLY_OPKS4
PENDING_REQUEST_TYPE_SEND_ONE2ONE_MSG5
PENDING_REQUEST_TYPE_CREATE_GROUP6
PENDING_REQUEST_TYPE_ADD_GROUP_MEMBERS7
PENDING_REQUEST_TYPE_ADD_GROUP_MEMBER_DEVICE8
PENDING_REQUEST_TYPE_REMOVE_GROUP_MEMBERS9
PENDING_REQUEST_TYPE_LEAVE_GROUP10
PENDING_REQUEST_TYPE_SEND_GROUP_MSG11
PENDING_REQUEST_TYPE_PROTO_MSG12

Top

e2ees/Plaintext.proto

Plaintext

The plaintext.

FieldTypeLabelDescription
versionstringThe version.
common_msgbytesThe common msg payload that is used for general purpose from application.
common_sync_msgbytesThe sync msg payload that is forwarded to other devices of the user.
user_devices_bundleUserDevicesBundleThe user devices' bundle that is used to help sync session with other devices of the user.
group_pre_key_bundleGroupPreKeyBundleThe group pre-key bundle that is used to help create group session.
group_update_key_bundleGroupUpdateKeyBundleThe group update key bundle that is used to help renew group session.

Top

e2ees/PreKeyBundle.proto

PreKeyBundle

Bundle for pre-key.

FieldTypeLabelDescription
user_addressE2eeAddressThe user's address.
e2ees_pack_iduint32The E2EE Security pack ID.
identity_key_publicIdentityKeyPublicThe public part of the identity key pair.
signed_pre_key_publicSignedPreKeyPublicThe public part of the signed pre-key pair.
one_time_pre_key_publicOneTimePreKeyPublicThe public part of the one-time pre-key pair.
signatureServerSignedSignatureThe signature of pre-key bundle signed by the server's key.

Top

e2ees/ProtoMsg.proto

ProtoMsg

The proto msg from server.

FieldTypeLabelDescription
tagProtoMsgTagThe tag for helping server consume this msg.
fromE2eeAddressThe sender's address.
toE2eeAddressThe receiver's address.
acquire_sync_msgAcquireSyncMsgThe acquire sync msg.
supply_opks_msgSupplyOpksMsgThe supply one-time pre-key msg.
invite_msgInviteMsgThe invite msg.
accept_msgAcceptMsgThe accept msg.
add_user_device_msgAddUserDeviceMsgThe add user device msg.
remove_user_device_msgRemoveUserDeviceMsgThe remove user device msg.
create_group_msgCreateGroupMsgThe create group msg..
add_group_members_msgAddGroupMembersMsgThe add group members msg.
remove_group_members_msgRemoveGroupMembersMsgThe remove group members msg.
add_group_member_device_msgAddGroupMemberDeviceMsgThe add group member device msg.
leave_group_msgLeaveGroupMsgThe leave group msg.
e2ee_msgE2eeMsgThe end to end encryption msg.
update_user_msgUpdateUserMsgThe update user msg.
friend_manager_msgFriendManagerMsgThe friend manager msg.
group_manager_msgGroupManagerMsgThe group manager msg.
system_manager_msgSystemManagerMsgThe system manager msg.
client_heartbeat_msgClientHeartbeatMsgThe client heart beat msg.
server_heartbeat_msgServerHeartbeatMsgThe server heart beat msg.
upgrade_e2ee_pack_msgUpgradeE2eePackMsgThe upgrade e2ee pack msg.
signature_listServerSignedSignaturerepeatedThe list of signatures created by signing the fingerprint of tag

Top

e2ees/ProtoMsgTag.proto

ProtoMsgTag

The proto msg tag.

FieldTypeLabelDescription
proto_msg_tint64The server time stamp.
proto_msg_idstringThe proto msg ID.

Top

e2ees/PublishSpkRequest.proto

PublishSpkRequest

Request for publishing signed pre-key.

FieldTypeLabelDescription
user_addressE2eeAddressThe user's address.
signed_pre_key_publicSignedPreKeyPublicThe public part of the signed pre-key pair.

Top

e2ees/PublishSpkResponse.proto

PublishSpkResponse

Response for publishing signed pre-key.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.

Top

e2ees/Ratchet.proto

Ratchet

The ratchet.

FieldTypeLabelDescription
root_keybytesThe root key.
root_sequenceuint32The sequence of the root key.
sending_message_sequenceuint32The sequence of the sending message.
received_message_sequenceuint32The sequence of the received message.
sender_chainSenderChainNodeThe sender chain.
receiver_chainReceiverChainNodeThe receiver chains.
skipped_msg_key_listSkippedMsgKeyNoderepeatedThe skipped message keys.

Top

e2ees/ReceiverChainNode.proto

ReceiverChainNode

The receiver chain node.

FieldTypeLabelDescription
their_ratchet_public_keybytesThe public part of the ratchet key pair in ECC or the ciphertext given by the sender in PQC.
our_ratchet_private_keybytesOur ratchet private key.
chain_keyChainKeyThe chain key.

Top

e2ees/RegisterUserRequest.proto

RegisterUserRequest

Request for registering an account.

FieldTypeLabelDescription
user_namestringThe user's name.
user_idstringThe user's ID.
device_idstringThe ID of the user's device.
authenticatorstringAuthenticator is the email (mailto:xxx@xxx) that is bound to the registering user.
auth_codestringAuth code is a 6-digits number that is received by email or an invitation in this format (e2ee:invitorUserId@invitorDomain;invite=xxxxx).
e2ees_pack_iduint32The E2EE Security pack ID.
identity_key_publicIdentityKeyPublicThe public part of the identity key pair.
signed_pre_key_publicSignedPreKeyPublicThe public part of the signed pre-key pair.
one_time_pre_key_listOneTimePreKeyPublicrepeatedThe public part of all of the user's one-time pre-key pairs.

Top

e2ees/RegisterUserResponse.proto

RegisterUserResponse

Response for registering an account.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.
addressE2eeAddressThe user's address.
usernamestringThe user's name.
passwordstringThe password.
authstringThe authorization token.
expires_inint64The expiry time of authorization token.
authenticatorstringThe optional authenticator that is bound to this userId.
server_certCertificateThe certificate of the server that support the registration.
other_device_address_listE2eeAddressrepeatedThe addresses of other devices that is created with this userId.
other_user_address_listE2eeAddressrepeatedThe addresses of other users who had built session with this userId.
group_info_listGroupInforepeatedThe information of groups that had been created or joined by this userId.

Top

e2ees/RemoveGroupMembersMsg.proto

RemoveGroupMembersMsg

Msg for removing group members.

FieldTypeLabelDescription
e2ees_pack_iduint32The E2EE Security pack ID.
sender_addressE2eeAddressThe sender's address.
group_infoGroupInfoThe group information.
removing_member_listGroupMemberrepeatedThe members going to be removed.
member_info_listGroupMemberInforepeatedThe remaining group members' information.

Top

e2ees/RemoveGroupMembersRequest.proto

RemoveGroupMembersRequest

Request for removing group members.

FieldTypeLabelDescription
msgRemoveGroupMembersMsgThe included msg for this request.

Top

e2ees/RemoveGroupMembersResponse.proto

RemoveGroupMembersResponse

Response for removing group members.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.
removed_group_member_listGroupMemberrepeatedThe removed group members.
group_member_listGroupMemberrepeatedThe group members.
member_info_listGroupMemberInforepeatedThe remaining group members' information.

Top

e2ees/RemoveUserDeviceMsg.proto

RemoveUserDeviceMsg

Msg for removing user device.

FieldTypeLabelDescription
user_addressE2eeAddressThe removed user e2ee address.

Top

e2ees/ResponseCode.proto

ResponseCode

Response status codes indicate whether a specific request has been successfully completed. Responses are grouped in four classes: (ref: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) Informational responses 100–199 Successful responses 200–299 Client error responses 400–499 Server error responses 500–599 Custom responses 1000–1007

NameNumberDescription
RESPONSE_CODE_UNSPECIFIED0Unknown response.
RESPONSE_CODE_OK200The request succeeded, and some resources were read or updated.
RESPONSE_CODE_CREATED201The request succeeded, and some new resources were created as a result.
RESPONSE_CODE_ACCEPTED202The request has been received but not yet acted upon.
RESPONSE_CODE_NO_CONTENT204There is no content to send for this request, and some resources were deleted.
RESPONSE_CODE_BAD_REQUEST400The server cannot or will not process the request due to something that is perceived to be a client error.
RESPONSE_CODE_UNAUTHORIZED401The client is not authenticated to get the requested response.
RESPONSE_CODE_FORBIDDEN403The client is authenticated but does not have access rights to the content.
RESPONSE_CODE_NOT_FOUND404The server can not find the requested resource.
RESPONSE_CODE_REQUEST_TIMEOUT408The server timed out waiting for the request, or client timeout waiting for the response.
RESPONSE_CODE_REQUEST_CONFLICT409Indicates that the request could not be processed because of conflict in the current state of the resource.
RESPONSE_CODE_EXPECTATION_FAILED417The server cannot meet the requirements of the expected request data.
RESPONSE_CODE_INTERNAL_SERVER_ERROR500The server has encountered a situation it does not know how to handle.
RESPONSE_CODE_SERVICE_UNAVAILABLE503The server is down for maintenance or overloaded.
RESPONSE_CODE_CUSTOM_10001000A custom response code supports the flexibility of diverse server implementations.
RESPONSE_CODE_CUSTOM_10011001A custom response code supports the flexibility of diverse server implementations.
RESPONSE_CODE_CUSTOM_10021002A custom response code supports the flexibility of diverse server implementations.
RESPONSE_CODE_CUSTOM_10031003A custom response code supports the flexibility of diverse server implementations.
RESPONSE_CODE_CUSTOM_10041004A custom response code supports the flexibility of diverse server implementations.
RESPONSE_CODE_CUSTOM_10051005A custom response code supports the flexibility of diverse server implementations.
RESPONSE_CODE_CUSTOM_10061006A custom response code supports the flexibility of diverse server implementations.
RESPONSE_CODE_CUSTOM_10071007A custom response code supports the flexibility of diverse server implementations.

Top

e2ees/SenderChainNode.proto

SenderChainNode

The sender chain node.

FieldTypeLabelDescription
our_ratchet_public_keybytesThe public part of the ratchet key pair in ECC or the ciphertext of the encapsulation in PQC.
their_ratchet_public_keybytesTheir ratchet public key.
chain_keyChainKeyThe chain key.

Top

e2ees/SendGroupMsgRequest.proto

SendGroupMsgRequest

Request for sending a group msg.

FieldTypeLabelDescription
msgE2eeMsgThe included msg for this request.
allow_listE2eeAddressrepeatedOptional allow list.
deny_listE2eeAddressrepeatedOptional deny list.

Top

e2ees/SendGroupMsgResponse.proto

SendGroupMsgResponse

Response for sending a group msg.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.

Top

e2ees/SendOne2oneMsgRequest.proto

SendOne2oneMsgRequest

Request for sending an one2one msg.

FieldTypeLabelDescription
msgE2eeMsgThe included msg for this request.

Top

e2ees/SendOne2oneMsgResponse.proto

SendOne2oneMsgResponse

Response for sending an one2one msg.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.

Top

e2ees/ServerHeartbeatMsg.proto

ServerHeartbeatMsg

Msg for server heartbeat.

FieldTypeLabelDescription
hostnamestringThe optional server host name.
server_tint64The server time stamp.

Top

e2ees/ServerSignedSignature.proto

ServerSignedSignature

The server signed signature.

FieldTypeLabelDescription
versionuint32The version number
hash_algAlgTypeHashThe hash algorithm for creating fingerprint of cert attribute and signing public key.
signing_algAlgTypeDsThe algorithm for generating the signature.
signerSubjectThe signer information.
signing_public_key_fingerprintbytesThe hash value as the fingerprint of the signing public key.
msg_fingerprintbytesThe hash value as the fingerprint of message to be signed.
signaturebytesThe signature of some message signed by the signer's key.

Top

e2ees/Session.proto

Session

The Session.

FieldTypeLabelDescription
versionstringThe version.
e2ees_pack_iduint32The E2EE Security pack ID.
session_idstringThe session ID.
our_addressE2eeAddressOur address.
their_addressE2eeAddressTheir address.
ratchetRatchetThe ratchet data.
associated_databytesThe associated data.
temp_shared_secretbytesThe shared secret encapsulated by the invitee's pre-key bundle, empty in ECC.
fingerprintbytesThe fingerprint.
alice_base_keyKeyPairThe inviter's base key pair.
bob_signed_pre_key_iduint32The invitee's signed pre-key ID.
bob_one_time_pre_key_iduint32The invitee's one-time pre-key ID.
pre_shared_input_listbytesrepeatedThe data that needs to generate some shared secret.
f2fboolThe session is face-to-face verified or not.
respondedboolThe invitee has responded or not.
invite_tint64The server time of invitation for creating this session.
short_termboolThe flag indicates that session is used for short term.

Top

e2ees/SignedPreKey.proto

SignedPreKey

The signed pre-key.

FieldTypeLabelDescription
spk_iduint32The signed pre-key ID.
key_pairKeyPairThe signed pre-key pair.
signaturebytesThe signature of key_pair's public_key signed by the user's identity key.
ttlint64The time stamp indicates that the signed pre-key will be removed.

Top

e2ees/SignedPreKeyPublic.proto

SignedPreKeyPublic

The public part of a signed pre-key.

FieldTypeLabelDescription
spk_iduint32The signed pre-key ID.
public_keybytesThe public part of the signed pre-key pair.
signaturebytesThe signature of public_key signed by the user's identity key.

Top

e2ees/SkippedMsgKeyNode.proto

SkippedMsgKeyNode

The skipped msg key node.

FieldTypeLabelDescription
ratchet_key_publicbytesThe public part of the ratchet key.
msg_keyMsgKeyThe msg key.

Top

e2ees/SupplyOpksMsg.proto

SupplyOpksMsg

Msg for sypplying one-time pre-keys.

FieldTypeLabelDescription
server_tint64
opks_numuint32The number of one-time pre-keys needed to be upload.
user_addressE2eeAddressThe user's address.

Top

e2ees/SupplyOpksRequest.proto

SupplyOpksRequest

Request for sypplying one-time pre-keys.

FieldTypeLabelDescription
e2ees_pack_iduint32The E2EE Security pack ID.
user_addressE2eeAddressThe user's address.
one_time_pre_key_public_listOneTimePreKeyPublicrepeatedThe public part of one-time pre-key pairs.

Top

e2ees/SupplyOpksResponse.proto

SupplyOpksResponse

Response for sypplying one-time pre-keys.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.

Top

e2ees/SystemManagerMsg.proto

SystemManagerMsg

Msg for system manager.

FieldTypeLabelDescription
modified_dateint64The modified date of the system manager msg.
opSystemOpThe operation of the system manager msg.
payloadbytesThe optional payload data.

SystemOp

The system operations.

NameNumberDescription
SYSTEM_OP_WELCOME_MSG0
SYSTEM_OP_REGISTER_MSG1
SYSTEM_OP_REGISTER_SUCCESS_MSG2
SYSTEM_OP_ANNOUNCEMENT_MSG3
SYSTEM_OP_NOTIFICATION_MSG4

Top

e2ees/UpdateUserMsg.proto

UpdateUserAvatarArg

Argument for updating the user avatar.

FieldTypeLabelDescription
user_avatar_urlstring

UpdateUserBackupPasskeyArg

Argument for updating the user backup passkey.

FieldTypeLabelDescription
backup_passkeybytes

UpdateUserMsg

Msg for updating user.

FieldTypeLabelDescription
modified_dateint64
user_addressE2eeAddress
opUpdateUserOp
update_user_name_argUpdateUserNameArgThe argument for updating user name.
update_user_avatar_argUpdateUserAvatarArgThe argument for updating user avatar.
update_user_state_argUpdateUserStateArgThe argument for updating user state.
update_user_privacy_argUpdateUserPrivacyArgThe argument for updating user privacy.
update_user_backup_passkey_argUpdateUserBackupPasskeyArgThe argument for updating user backup passkey.

UpdateUserNameArg

Argument for updating the user name.

FieldTypeLabelDescription
usernamestring

UpdateUserPrivacyArg

Argument for updating the user privacy.

FieldTypeLabelDescription
user_privacy_jsonstring

UpdateUserStateArg

Argument for updating the user state.

FieldTypeLabelDescription
user_stateint32

UpdateUserOp

The update user operations.

NameNumberDescription
UPDATE_USER_OP_NAME0
UPDATE_USER_OP_AVATAR1
UPDATE_USER_OP_STATE2
UPDATE_USER_OP_PRIVACY3
UPDATE_USER_OP_BACKUP_PASSKEY4

Top

e2ees/UpdateUserRequest.proto

UpdateUserRequest

Request for updating user.

FieldTypeLabelDescription
msgUpdateUserMsgThe included msg for this request.

Top

e2ees/UpdateUserResponse.proto

UpdateUserResponse

Response for updating user.

FieldTypeLabelDescription
codeResponseCodeThe response code given by the server.
msgstringThe message given by the server.

Top

e2ees/UpgradeE2eePackMsg.proto

UpgradeE2eePackMsg

Message for upgrading e2ee pack.

FieldTypeLabelDescription
upgrade_tsint64The server timestamp for upgrading e2ee pack.
e2ees_pack_iduint32The new e2ee pack ID.

Top

e2ees/UserDevicesBundle.proto

UserDevicesBundle

Bundle for user devices.

FieldTypeLabelDescription
domainstringThe domain.
user_idstringThe user's ID.
device_id_liststringrepeatedAll of the user's devices ID.

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
doubledoubledoublefloatfloat64doublefloatFloat
floatfloatfloatfloatfloat32floatfloatFloat
int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required)
uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required)
sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/longuint64ulonginteger/stringBignum
sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT)