Structure SilcClientEntry
NAME
typedef struct SilcClientEntryStruct { ... } *SilcClientEntry
DESCRIPTION
This structure represents a client or a user in the SILC network.
The local user has this structure also and it can be accessed from
SilcClientConnection structure. All other users in the SILC network
that are accessed using the Client Library routines will have their
own SilcClientEntry structure. For example, when finding users by
their nickname the Client Library returns this structure back to
the application. All strings in the structure are UTF-8 encoded.
SOURCE
struct SilcClientEntryStruct {
/* General information */
char *nickname; /* nickname */
char *username; /* username */
char *hostname; /* hostname */
char *server; /* SILC server name */
char *realname; /* Realname (userinfo) */
/* Mode, ID and other information */
SilcUInt32 mode; /* User mode in SILC, see SilcUserMode */
SilcClientID *id; /* The Client ID */
SilcDList attrs; /* Requested Attributes (maybe NULL) */
unsigned char *fingerprint; /* Fingerprint of client's public key */
SilcUInt32 fingerprint_len; /* Length of the fingerprint */
SilcPublicKey public_key; /* User's public key, may be NULL */
/* Private message keys */
SilcCipher send_key; /* Private message key for sending */
SilcCipher receive_key; /* Private message key for receiving */
SilcHmac hmac_send; /* Private mesage key HMAC for sending */
SilcHmac hmac_receive; /* Private mesage key HMAC for receiving */
unsigned char *key; /* Set only if application provided the
key material. NULL if the library
generated the key. */
SilcUInt32 key_len; /* Key length */
SilcClientKeyAgreement ke; /* Current key agreement context or NULL */
/* SilcClientEntry status information */
SilcEntryStatus status; /* Status mask */
SilcHashTable channels; /* All channels client has joined */
SilcUInt16 resolve_cmd_ident; /* Command identifier when resolving */
unsigned int generated : 1; /* TRUE if library generated `key' */
unsigned int valid : 1; /* FALSE if this entry is not valid */
unsigned int prv_resp : 1; /* TRUE if private message key indicator
has been received (responder). */
/* Application specific data. Application may set here whatever it wants. */
void *context;
};
|