跳至主要内容

Package: skissm

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

Package for skissm software security module.

Top

skissm/AcceptMsg.proto

AcceptMsg

Msg form invitee for completing a key agreement.

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

Top

skissm/AcceptRequest.proto

AcceptRequest

Request for sending an accept msg.

FieldTypeLabelDescription
msgAcceptMsgThe included msg for this request.

Top

skissm/AcceptResponse.proto

AcceptResponse

Response for sending Accept msg.

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

Top

skissm/Account.proto

Account

Account for keeping keys and registeration information.

FieldTypeLabelDescription
versionstringThe version used for this account.
e2ee_pack_iduint32The e2ee pack ID used for this account.
addressE2eeAddressThe address with device ID for 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

skissm/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

skissm/AddGroupMemberDeviceMsg.proto

AddGroupMemberDeviceMsg

Msg for adding a device of group member.

FieldTypeLabelDescription
e2ee_pack_iduint32The e2ee 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

skissm/AddGroupMemberDeviceRequest.proto

AddGroupMemberDeviceRequest

Request for adding a device of group member.

FieldTypeLabelDescription
msgAddGroupMemberDeviceMsgThe included msg for this request.

Top

skissm/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

skissm/AddGroupMembersMsg.proto

AddGroupMembersMsg

Msg for adding group members.

FieldTypeLabelDescription
e2ee_pack_iduint32The e2ee 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

skissm/AddGroupMembersRequest.proto

AddGroupMembersRequest

Request for adding group members.

FieldTypeLabelDescription
msgAddGroupMembersMsgThe included msg for this request.

Top

skissm/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

skissm/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

skissm/ChainKey.proto

ChainKey

The chain key.

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

Top

skissm/ChainablePublickey.proto

ChainablePublickey

A public key chain with each of it's key should be signed by the first key.

FieldTypeLabelDescription
idint32The public key id started from 0.
public_keybytesThe public key.
signaturebytesThe signature of id

Top

skissm/ClientHeartbeatMsg.proto

ClientHeartbeatMsg

Msg for client heartbeat.

FieldTypeLabelDescription
client_tint64The timestamp of client.

Top

skissm/ConsumeProtoMsgRequest.proto

ConsumeProtoMsgRequest

Request for consuming a proto msg received from server.

FieldTypeLabelDescription
proto_msg_idstringThe proto msg ID to be consumed.

Top

skissm/ConsumeProtoMsgResponse.proto

ConsumeProtoMsgResponse

Response for consuming a proto msg.

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

Top

skissm/CreateGroupMsg.proto

CreateGroupMsg

Msg for creating a group.

FieldTypeLabelDescription
e2ee_pack_iduint32The e2ee 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

skissm/CreateGroupRequest.proto

CreateGroupRequest

Request for creating a group.

FieldTypeLabelDescription
msgCreateGroupMsgThe included msg for this request.

Top

skissm/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

skissm/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

skissm/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

skissm/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

skissm/GetGroupRequest.proto

GetGroupRequest

Request for getting a group.

FieldTypeLabelDescription
group_addressE2eeAddressThe group address.
sender_addressE2eeAddressThe sender address.

Top

skissm/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

skissm/GetPreKeyBundleRequest.proto

GetPreKeyBundleRequest

Request for getting pre-key bundle.

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

Top

skissm/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 from every device.

Top

skissm/GroupInfo.proto

GroupInfo

The group information.

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

Top

skissm/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_UNKNOWN0
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

skissm/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

skissm/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

skissm/GroupMsgPayload.proto

GroupMsgPayload

Payload for group msg.

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

Top

skissm/GroupPreKeyBundle.proto

GroupPreKeyBundle

Bundle for group pre-key.

FieldTypeLabelDescription
versionstringThe version.
e2ee_pack_iduint32The e2ee 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

skissm/GroupSession.proto

GroupSession

The group session.

FieldTypeLabelDescription
versionstringThe version.
e2ee_pack_iduint32The e2ee 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

skissm/GroupUpdateKeyBundle.proto

GroupUpdateKeyBundle

Bundle for group update key.

FieldTypeLabelDescription
versionstringThe version.
e2ee_pack_iduint32The e2ee 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

skissm/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

skissm/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

skissm/InviteMsg.proto

InviteMsg

Msg form inviter for initiating a key agreement.

FieldTypeLabelDescription
versionstringThe version.
e2ee_pack_iduint32The e2ee 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

skissm/InviteRequest.proto

InviteRequest

Request for sending an invite msg.

FieldTypeLabelDescription
msgInviteMsgThe included msg for this request.

Top

skissm/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

skissm/KeyPair.proto

KeyPair

The Keypair.

FieldTypeLabelDescription
public_keybytesThe public key.
private_keybytesThe private key.

Top

skissm/LeaveGroupMsg.proto

LeaveGroupMsg

Msg for leaving a group.

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

Top

skissm/LeaveGroupRequest.proto

LeaveGroupRequest

Request for leaving a group.

FieldTypeLabelDescription
msgLeaveGroupMsgThe included msg for this request.

Top

skissm/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

skissm/MsgKey.proto

MsgKey

The msg key.

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

Top

skissm/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

skissm/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

skissm/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

skissm/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

skissm/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

skissm/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

skissm/PreKeyBundle.proto

PreKeyBundle

Bundle for pre-key.

FieldTypeLabelDescription
user_addressE2eeAddressThe user's address.
e2ee_pack_iduint32The e2ee 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 identity_key_public

Top

skissm/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.
signatureServerSignedSignatureThe signature of tag

Top

skissm/ProtoMsgTag.proto

ProtoMsgTag

The proto msg tag.

FieldTypeLabelDescription
proto_msg_tint64The server time stamp.
proto_msg_idstringThe proto msg ID.

Top

skissm/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

skissm/PublishSpkResponse.proto

PublishSpkResponse

Response for publishing signed pre-key.

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

Top

skissm/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

skissm/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

skissm/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).
e2ee_pack_iduint32The e2ee 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

skissm/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.
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

skissm/RemoveGroupMembersMsg.proto

RemoveGroupMembersMsg

Msg for removing group members.

FieldTypeLabelDescription
e2ee_pack_iduint32The e2ee 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

skissm/RemoveGroupMembersRequest.proto

RemoveGroupMembersRequest

Request for removing group members.

FieldTypeLabelDescription
msgRemoveGroupMembersMsgThe included msg for this request.

Top

skissm/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

skissm/RemoveUserDeviceMsg.proto

RemoveUserDeviceMsg

Msg for removing user device.

FieldTypeLabelDescription
user_addressE2eeAddressThe removed user e2ee address.

Top

skissm/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

NameNumberDescription
RESPONSE_CODE_UNKNOWN0Unknown
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.

Top

skissm/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

skissm/SendGroupMsgResponse.proto

SendGroupMsgResponse

Response for sending a group msg.

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

Top

skissm/SendOne2oneMsgRequest.proto

SendOne2oneMsgRequest

Request for sending an one2one msg.

FieldTypeLabelDescription
msgE2eeMsgThe included msg for this request.

Top

skissm/SendOne2oneMsgResponse.proto

SendOne2oneMsgResponse

Response for sending an one2one msg.

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

Top

skissm/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

skissm/Server.proto

Server

The server with chainable public keys.

FieldTypeLabelDescription
namestringThe name of the registed server.
domainstringThe domain of the registed server.
public_key_listChainablePublickeyrepeatedThe public key for verifying msg from server.

Top

skissm/ServerHeartbeatMsg.proto

ServerHeartbeatMsg

Msg for server heartbeat.

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

Top

skissm/ServerSignedSignature.proto

ServerSignedSignature

The server signed signature.

FieldTypeLabelDescription
domainstringThe domain of server that is responsible for the signature.
idint32The id of key that is used to create the signature.
signaturebytesThe signature for some data.

Top

skissm/Session.proto

Session

The Session.

FieldTypeLabelDescription
versionstringThe version.
e2ee_pack_iduint32The e2ee 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

skissm/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

skissm/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

skissm/SkippedMsgKeyNode.proto

SkippedMsgKeyNode

The skipped msg key node.

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

Top

skissm/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

skissm/SupplyOpksRequest.proto

SupplyOpksRequest

Request for sypplying one-time pre-keys.

FieldTypeLabelDescription
e2ee_pack_iduint32The e2ee pack ID.
user_addressE2eeAddressThe user's address.
one_time_pre_key_public_listOneTimePreKeyPublicrepeatedThe public part of one-time pre-key pairs.

Top

skissm/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

skissm/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

skissm/UpdateUserMsg.proto

UpdateUserAvatarArg

Argument for updating the user avatar.

FieldTypeLabelDescription
user_avatar_urlstring

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.

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

Top

skissm/UpdateUserRequest.proto

UpdateUserRequest

Request for updating user.

FieldTypeLabelDescription
msgUpdateUserMsgThe included msg for this request.

Top

skissm/UpdateUserResponse.proto

UpdateUserResponse

Response for updating user.

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

Top

skissm/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)