+struct SilcClientEntryStruct {
+ char *nickname; /* nickname */
+ char *username; /* username */
+ char *hostname; /* hostname */
+ char *server; /* SILC server name */
+ char *realname; /* Realname (userinfo) */
+ SilcUInt32 num;
+ SilcUInt32 mode; /* User mode in SILC */
+ SilcClientID *id; /* The Client ID */
+ unsigned char *fingerprint; /* Fingerprint of client's public key */
+ SilcUInt32 fingerprint_len; /* Length of the fingerprint */
+ bool valid; /* FALSE if this entry is not valid */
+ SilcCipher send_key; /* Private message key for sending */
+ SilcCipher receive_key; /* Private message key for receiving */
+ unsigned char *key; /* Set only if appliation provided the
+ key material. NULL if the library
+ generated the key. */
+ SilcUInt32 key_len;
+ bool generated; /* TRUE if library generated the key */
+ SilcClientKeyAgreement ke; /* Current key agreement context or NULL */
+ SilcClientStatus status; /* Status mask */
+ SilcHashTable channels; /* All channels client has joined */
+};