+
+/* Internal client entry context */
+typedef struct SilcClientEntryInternalStruct {
+ 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; /* Valid if application provided the key */
+ SilcUInt32 key_len; /* Key data length */
+ SilcClientKeyAgreement ke; /* Current key agreement context or NULL */
+
+ /* Flags */
+ unsigned int valid : 1; /* FALSE if this entry is not valid */
+ unsigned int resolving : 1; /* TRUE when entry is being resolved */
+ unsigned int generated : 1; /* TRUE if library generated `key' */
+ unsigned int prv_resp : 1; /* TRUE if private message key indicator
+ has been received (responder). */
+ SilcUInt16 resolve_cmd_ident; /* Command identifier when resolving */
+ SilcAtomic8 refcnt; /* Reference counter */
+} SilcClientEntryInternal;
+
+#endif /* CLIENT_H */