X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcske%2Fsilcske.h;h=13e82eb65f68e5f80bfcf54045a880a28832d9e3;hb=579f5c6c93c452155943b6526f4c64f6deb27982;hp=880475e028f2183eed0fc4cbd835f576c2435d84;hpb=0fce694339f6b8068a8bd9334140a69212989ca7;p=silc.git diff --git a/lib/silcske/silcske.h b/lib/silcske/silcske.h index 880475e0..13e82eb6 100644 --- a/lib/silcske/silcske.h +++ b/lib/silcske/silcske.h @@ -4,7 +4,7 @@ Author: Pekka Riikonen - Copyright (C) 2000 Pekka Riikonen + Copyright (C) 2000 - 2001 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 @@ -77,9 +77,10 @@ typedef struct { /* Security Property Flags. */ typedef enum { - SILC_SKE_SP_FLAG_NONE = (1L << 0), - SILC_SKE_SP_FLAG_NO_REPLY = (1L << 1), - SILC_SKE_SP_FLAG_PFS = (1L << 2), + SILC_SKE_SP_FLAG_NONE = 0x00, + SILC_SKE_SP_FLAG_NO_REPLY = 0x01, + SILC_SKE_SP_FLAG_PFS = 0x02, + SILC_SKE_SP_FLAG_MUTUAL = 0x04, } SilcSKESecurityPropertyFlag; /* Security Properties negotiated between key exchange parties. This @@ -106,8 +107,8 @@ struct SilcSKEStruct { /* Key Exchange payloads filled during key negotiation with remote data. Responder may save local data here as well. */ SilcSKEStartPayload *start_payload; - SilcSKEOnePayload *ke1_payload; - SilcSKETwoPayload *ke2_payload; + SilcSKEKEPayload *ke1_payload; + SilcSKEKEPayload *ke2_payload; /* Temporary copy of the KE Start Payload used in the HASH computation. */ @@ -155,10 +156,11 @@ SilcSKEStatus silc_ske_initiator_phase_1(SilcSKE ske, void *context); SilcSKEStatus silc_ske_initiator_phase_2(SilcSKE ske, SilcPublicKey public_key, + SilcPrivateKey private_key, SilcSKESendPacketCb send_packet, void *context); SilcSKEStatus silc_ske_initiator_finish(SilcSKE ske, - SilcBuffer ke2_payload, + SilcBuffer ke_payload, SilcSKEVerifyCb verify_key, void *verify_context, SilcSKECb callback, @@ -167,6 +169,7 @@ SilcSKEStatus silc_ske_responder_start(SilcSKE ske, SilcRng rng, SilcSocketConnection sock, char *version, SilcBuffer start_payload, + int mutual_auth, SilcSKECb callback, void *context); SilcSKEStatus silc_ske_responder_phase_1(SilcSKE ske, @@ -174,7 +177,9 @@ SilcSKEStatus silc_ske_responder_phase_1(SilcSKE ske, SilcSKESendPacketCb send_packet, void *context); SilcSKEStatus silc_ske_responder_phase_2(SilcSKE ske, - SilcBuffer ke1_payload, + SilcBuffer ke_payload, + SilcSKEVerifyCb verify_key, + void *verify_context, SilcSKECb callback, void *context); SilcSKEStatus silc_ske_responder_finish(SilcSKE ske, @@ -204,7 +209,8 @@ SilcSKEStatus silc_ske_create_rnd(SilcSKE ske, SilcInt n, SilcInt *rnd); SilcSKEStatus silc_ske_make_hash(SilcSKE ske, unsigned char *return_hash, - unsigned int *return_hash_len); + unsigned int *return_hash_len, + int initiator); SilcSKEStatus silc_ske_process_key_material_data(unsigned char *data, unsigned int data_len,