#define SILC_PROTOCOL_SERVER_CONNECTION_AUTH 1
#define SILC_PROTOCOL_SERVER_KEY_EXCHANGE 2
#define SILC_PROTOCOL_SERVER_REKEY 3
+#define SILC_PROTOCOL_SERVER_BACKUP 4
/* #define SILC_PROTOCOL_SERVER_MAX 255 */
/* Internal context for Key Exchange protocol. */
void *dest_id;
SilcIdType dest_id_type;
+ /* Pointer to the configurations. */
+ void *cconfig;
+ void *sconfig;
+ void *rconfig;
+
SilcTask timeout_task;
SilcPacketContext *packet;
+ SilcSKESecurityPropertyFlag flags;
SilcSKE ske;
SilcSKEKeyMaterial *keymat;
} SilcServerKEInternalContext;
/* SKE object from Key Exchange protocol. */
SilcSKE ske;
- /* Auth method that must be used. This is resolved before this
- connection authentication protocol is started. Used when we are
- initiating. */
- uint32 auth_meth;
-
- /* Authentication data if we alreay know it. This is filled before
- starting the protocol if we know the authentication data. Otherwise
- these are and remain NULL. Used when we are initiating. */
+ /* Authentication method and data if we alreay know it. This is filled
+ before starting the protocol if we know the authentication data.
+ Otherwise these are and remain NULL. Used when we are initiating. */
+ SilcUInt32 auth_meth;
void *auth_data;
- uint32 auth_data_len;
+ SilcUInt32 auth_data_len;
/* Destinations ID from KE protocol context */
void *dest_id;
SilcIdType dest_id_type;
+ /* Pointer to the configurations. */
+ void *cconfig;
+ void *sconfig;
+ void *rconfig;
+
SilcTask timeout_task;
SilcPacketContext *packet;
- uint16 conn_type;
+ SilcUInt16 conn_type;
} SilcServerConnAuthInternalContext;
/* Internal context for the rekey protocol */
bool responder; /* TRUE if we are receiving party */
bool pfs; /* TRUE if PFS is to be used */
SilcSKE ske; /* Defined if PFS is used */
- SilcSKEKeyMaterial *keymat; /* Defined if PFS is used */
SilcPacketContext *packet;
} SilcServerRekeyInternalContext;
/* Prototypes */
void silc_server_protocols_register(void);
void silc_server_protocols_unregister(void);
-int silc_server_protocol_ke_set_keys(SilcSKE ske,
+int silc_server_protocol_ke_set_keys(SilcServer server,
+ SilcSKE ske,
SilcSocketConnection sock,
SilcSKEKeyMaterial *keymat,
SilcCipher cipher,
SilcHmac hmac,
SilcSKEDiffieHellmanGroup group,
bool is_responder);
-void silc_server_protocol_rekey_generate(SilcServer server,
- SilcServerRekeyInternalContext *ctx);
-void
-silc_server_protocol_rekey_generate_pfs(SilcServer server,
- SilcServerRekeyInternalContext *ctx);
#endif