Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 1997 - 2007 Pekka Riikonen
+ Copyright (C) 1997 - 2014 Pekka Riikonen
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
typedef struct SilcServerEntryStruct *SilcServerEntry;
typedef struct SilcClientKeyAgreementStruct *SilcClientKeyAgreement;
+typedef struct SilcClientAutonegMessageKeyStruct *SilcClientAutonegMessageKey;
typedef struct SilcClientFtpSessionStruct *SilcClientFtpSession;
typedef struct SilcClientCommandReplyContextStruct
*SilcClientCommandReplyContext;
unsigned char *key; /* Valid if application provided the key */
SilcUInt32 key_len; /* Key data length */
SilcClientKeyAgreement ke; /* Current key agreement context or NULL */
+ SilcAsyncOperation op; /* Asynchronous operation with this client */
+
+ SilcClientAutonegMessageKey ake; /* Current auto-negotiation context */
+ SilcInt64 ake_rekey; /* Next private message key auto-negotation */
+ SilcUInt32 ake_generation; /* current AKE rekey generation */
SilcAtomic32 refcnt; /* Reference counter */
SilcAtomic32 deleted; /* Flag indicating whether the client object is
unsigned int generated : 1; /* TRUE if library generated `key' */
unsigned int prv_resp : 1; /* TRUE if we are responder when using
private message keys. */
+ unsigned int no_ake : 1; /* TRUE if client doesn't support
+ auto-negotiation of private message key,
+ or it doesn't work. */
} SilcClientEntryInternal;
/* Internal channel entry context */
SilcRwLock lock; /* Read/write lock */
SilcUInt16 resolve_cmd_ident; /* Resolving identifier */
SilcAtomic32 refcnt; /* Reference counter */
+ SilcAtomic32 deleted; /* Flag indicating whether the
+ server object is already
+ scheduled for deletion. */
} SilcServerEntryInternal;
#endif /* CLIENT_H */