#define PROTOCOL_H
/* SILC client protocol types */
-#define SILC_PROTOCOL_CLIENT_NONE 0
-#define SILC_PROTOCOL_CLIENT_CONNECTION_AUTH 1
-#define SILC_PROTOCOL_CLIENT_CHANNEL_AUTH 2
-#define SILC_PROTOCOL_CLIENT_KEY_EXCHANGE 3
-/* #define SILC_PROTOCOL_CLIENT_MAX 255 */
+#define SILC_PROTOCOL_CLIENT_NONE 0
+#define SILC_PROTOCOL_CLIENT_CONNECTION_AUTH 1
+#define SILC_PROTOCOL_CLIENT_KEY_EXCHANGE 2
+/* #define SILC_PROTOCOL_CLIENT_MAX 255 */
/* Internal context for key exchange protocol */
typedef struct {
SilcSocketConnection sock;
SilcRng rng;
int responder;
+
+ /* Destinations ID taken from authenticataed packet so that we can
+ get the destinations ID. */
+ void *dest_id;
+ SilcIdType dest_id_type;
+
SilcBuffer packet;
SilcSKE ske;
} SilcClientKEInternalContext;
/* Auth method that must be used. This is resolved before this
connection authentication protocol is started. */
- unsigned int auth_meth;
+ SilcProtocolAuthMeth auth_meth;
+
+ /* Destinations ID from KE protocol context */
+ void *dest_id;
+ SilcIdType dest_id_type;
/* Authentication data if we alreay know it. This is filled before
starting the protocol if we know the authentication data. Otherwise
} SilcClientConnAuthInternalContext;
/* Prototypes */
+void silc_client_protocols_register(void);
+void silc_client_protocols_unregister(void);
#endif