X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilcd%2Fprotocol.h;h=3c184abce2ae2363f1193d1f1dd38ee316037258;hb=413da0f8686910f5e627393157566ae729ca99c4;hp=d0c2bba34398e33a9022cdeb4d519169103166bc;hpb=5159d7204e05ab1fbefdc5fd351ec4da021ce577;p=silc.git diff --git a/apps/silcd/protocol.h b/apps/silcd/protocol.h index d0c2bba3..3c184abc 100644 --- a/apps/silcd/protocol.h +++ b/apps/silcd/protocol.h @@ -2,15 +2,14 @@ protocol.h - Author: Pekka Riikonen + Author: Pekka Riikonen - Copyright (C) 1997 - 2001 Pekka Riikonen + Copyright (C) 1997 - 2003 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 - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - + the Free Software Foundation; version 2 of the License. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -26,6 +25,7 @@ #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. */ @@ -43,8 +43,14 @@ typedef struct { void *dest_id; SilcIdType dest_id_type; + /* Pointers to the configurations. Defined only when responder is TRUE */ + SilcServerConfigRef cconfig; + SilcServerConfigRef sconfig; + SilcServerConfigRef rconfig; + SilcTask timeout_task; SilcPacketContext *packet; + SilcSKESecurityPropertyFlag flags; SilcSKE ske; SilcSKEKeyMaterial *keymat; } SilcServerKEInternalContext; @@ -61,24 +67,25 @@ typedef struct { /* 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; + /* Pointers to the configurations. Defined only when responder is TRUE */ + SilcServerConfigRef cconfig; + SilcServerConfigRef sconfig; + SilcServerConfigRef rconfig; + SilcTask timeout_task; SilcPacketContext *packet; - uint16 conn_type; + SilcUInt16 conn_type; } SilcServerConnAuthInternalContext; /* Internal context for the rekey protocol */ @@ -89,14 +96,15 @@ typedef struct { 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; + SilcTask timeout_task; } 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, @@ -105,10 +113,5 @@ int silc_server_protocol_ke_set_keys(SilcSKE ske, 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