X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilcclient%2Fprotocol.h;fp=apps%2Fsilc%2Fprotocol.h;h=87c2573ad06230c76a31d335085248a3309a3ce2;hp=1c40ef382ab8e6c0f94ab6ff81cab71a9d9414cc;hb=318d79b391bf6288e3e28c840217a7097f3d0392;hpb=0f9738ce962b8498bbed0a75d5fb6fa127e3577f diff --git a/apps/silc/protocol.h b/lib/silcclient/protocol.h similarity index 72% rename from apps/silc/protocol.h rename to lib/silcclient/protocol.h index 1c40ef38..87c2573a 100644 --- a/apps/silc/protocol.h +++ b/lib/silcclient/protocol.h @@ -22,11 +22,10 @@ #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