Created SILC Client Libary by moving stuff from silc/ directory.
[silc.git] / lib / silcclient / protocol.h
similarity index 72%
rename from apps/silc/protocol.h
rename to lib/silcclient/protocol.h
index 1c40ef382ab8e6c0f94ab6ff81cab71a9d9414cc..87c2573ad06230c76a31d335085248a3309a3ce2 100644 (file)
 #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 {
@@ -34,6 +33,12 @@ 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;
@@ -48,7 +53,11 @@ typedef struct {
 
   /* 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
@@ -60,5 +69,7 @@ typedef struct {
 } SilcClientConnAuthInternalContext;
 
 /* Prototypes */
+void silc_client_protocols_register(void);
+void silc_client_protocols_unregister(void);
 
 #endif