payload.h
- Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
+ Author: Pekka Riikonen <priikone@silcnet.org>
- 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
#define PAYLOAD_H
#include "silcske_status.h"
-#include "payload_internal.h"
+
+/* Forward declarations */
+typedef struct SilcSKEStartPayloadStruct SilcSKEStartPayload;
+typedef struct SilcSKEKEPayloadStruct SilcSKEKEPayload;
+
+/* SILC Key Exchange Start Payload */
+struct SilcSKEStartPayloadStruct {
+ unsigned char flags;
+ uint16 len;
+
+ unsigned char *cookie;
+ uint16 cookie_len;
+
+ unsigned char *version;
+ uint16 version_len;
+
+ uint16 ke_grp_len;
+ unsigned char *ke_grp_list;
+
+ uint16 pkcs_alg_len;
+ unsigned char *pkcs_alg_list;
+
+ uint16 enc_alg_len;
+ unsigned char *enc_alg_list;
+
+ uint16 hash_alg_len;
+ unsigned char *hash_alg_list;
+
+ uint16 hmac_alg_len;
+ unsigned char *hmac_alg_list;
+
+ uint16 comp_alg_len;
+ unsigned char *comp_alg_list;
+};
+
+/* SILC Key Exchange Payload */
+struct SilcSKEKEPayloadStruct {
+ uint16 pk_len;
+ unsigned char *pk_data;
+ uint16 pk_type;
+
+ SilcMPInt x;
+
+ uint16 sign_len;
+ unsigned char *sign_data;
+};
/* Prototypes */
SilcSKEStatus silc_ske_payload_start_encode(SilcSKE ske,
SilcBuffer buffer,
SilcSKEStartPayload **return_payload);
void silc_ske_payload_start_free(SilcSKEStartPayload *payload);
-SilcSKEStatus silc_ske_payload_one_encode(SilcSKE ske,
- SilcSKEOnePayload *payload,
- SilcBuffer *return_buffer);
-SilcSKEStatus silc_ske_payload_one_decode(SilcSKE ske,
- SilcBuffer buffer,
- SilcSKEOnePayload **return_payload);
-void silc_ske_payload_one_free(SilcSKEOnePayload *payload);
-SilcSKEStatus silc_ske_payload_two_encode(SilcSKE ske,
- SilcSKETwoPayload *payload,
- SilcBuffer *return_buffer);
-SilcSKEStatus silc_ske_payload_two_decode(SilcSKE ske,
- SilcBuffer buffer,
- SilcSKETwoPayload **return_payload);
-void silc_ske_payload_two_free(SilcSKETwoPayload *payload);
+SilcSKEStatus silc_ske_payload_ke_encode(SilcSKE ske,
+ SilcSKEKEPayload *payload,
+ SilcBuffer *return_buffer);
+SilcSKEStatus silc_ske_payload_ke_decode(SilcSKE ske,
+ SilcBuffer buffer,
+ SilcSKEKEPayload **return_payload);
+void silc_ske_payload_ke_free(SilcSKEKEPayload *payload);
#endif