5 Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
7 Copyright (C) 2000 - 2001 Pekka Riikonen
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
24 #include "silcske_status.h"
26 /* Forward declarations */
27 typedef struct SilcSKEStartPayloadStruct SilcSKEStartPayload;
28 typedef struct SilcSKEKEPayloadStruct SilcSKEKEPayload;
30 /* SILC Key Exchange Start Payload */
31 struct SilcSKEStartPayloadStruct {
35 unsigned char *cookie;
38 unsigned char *version;
42 unsigned char *ke_grp_list;
45 unsigned char *pkcs_alg_list;
48 unsigned char *enc_alg_list;
51 unsigned char *hash_alg_list;
54 unsigned char *hmac_alg_list;
57 unsigned char *comp_alg_list;
60 /* SILC Key Exchange Payload */
61 struct SilcSKEKEPayloadStruct {
63 unsigned char *pk_data;
69 unsigned char *sign_data;
73 SilcSKEStatus silc_ske_payload_start_encode(SilcSKE ske,
74 SilcSKEStartPayload *payload,
75 SilcBuffer *return_buffer);
77 silc_ske_payload_start_decode(SilcSKE ske,
79 SilcSKEStartPayload **return_payload);
80 void silc_ske_payload_start_free(SilcSKEStartPayload *payload);
81 SilcSKEStatus silc_ske_payload_ke_encode(SilcSKE ske,
82 SilcSKEKEPayload *payload,
83 SilcBuffer *return_buffer);
84 SilcSKEStatus silc_ske_payload_ke_decode(SilcSKE ske,
86 SilcSKEKEPayload **return_payload);
87 void silc_ske_payload_ke_free(SilcSKEKEPayload *payload);