updates.
[silc.git] / lib / silccore / silcchannel.h
index 349ae3481fd7d2a89dc10fa443213c8f960ffc1f..5ad1f929309b8316cbac28c27a40eb80c4cd3eab 100644 (file)
@@ -1,24 +1,24 @@
-/****h* silccore/silcchannel.h
- *
- * NAME
- *
- * silcchannel.h
- *
- * COPYRIGHT
- *
- * Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
- *
- * Copyright (C) 1997 - 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * 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
- * GNU General Public License for more details.
+/*
+  silcchannel.h
+  Author: Pekka Riikonen <priikone@silcnet.org>
+  Copyright (C) 1997 - 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
+  the Free Software Foundation; either version 2 of the License, or
+  (at your option) any later version.
+  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
+  GNU General Public License for more details.
+
+*/
+
+/****h* silccore/SilcChannelAPI
  *
  * DESCRIPTION
  *
@@ -110,7 +110,8 @@ typedef uint16 SilcMessageFlags;
 #define SILC_MESSAGE_FLAG_ACTION      0x0004
 #define SILC_MESSAGE_FLAG_NOTICE      0x0008
 #define SILC_MESSAGE_FLAG_REQUEST     0x0010
-#define SILC_MESSAGE_FLAG_RESERVED    0x0020 /* to 0x0200 */
+#define SILC_MESSAGE_FLAG_SIGNED      0x0020
+#define SILC_MESSAGE_FLAG_RESERVED    0x0040 /* to 0x0200 */
 #define SILC_MESSAGE_FLAG_PRIVATE     0x0400 /* to 0x8000 */
 /***/
 
@@ -120,7 +121,9 @@ typedef uint16 SilcMessageFlags;
  *
  * SYNOPSIS
  *
- *    SilcChannelPayload silc_channel_payload_parse(SilcBuffer buffer);
+ *    SilcChannelPayload 
+ *    silc_channel_payload_parse(const unsigned char *payload,
+ *                               uint32 payload_len);
  *
  * DESCRIPTION
  *
@@ -128,13 +131,16 @@ typedef uint16 SilcMessageFlags;
  *    `buffer' is the raw payload buffer.
  *
  ***/
-SilcChannelPayload silc_channel_payload_parse(SilcBuffer buffer);
+SilcChannelPayload silc_channel_payload_parse(const unsigned char *payload,
+                                             uint32 payload_len);
 
 /****f* silccore/SilcChannelAPI/silc_channel_payload_parse_list
  *
  * SYNOPSIS
  *
- *    SilcDList silc_channel_payload_parse_list(SilcBuffer buffer);
+ *    SilcDList
+ *    silc_channel_payload_parse_list(const unsigned char *payload,
+ *                                    uint32 payload_len);
  *
  * DESCRIPTION
  *
@@ -143,15 +149,16 @@ SilcChannelPayload silc_channel_payload_parse(SilcBuffer buffer);
  *    now includes multiple Channel Payloads one after the other.
  *
  ***/
-SilcDList silc_channel_payload_parse_list(SilcBuffer buffer);
+SilcDList silc_channel_payload_parse_list(const unsigned char *payload,
+                                         uint32 payload_len);
 
 /****f* silccore/SilcChannelAPI/silc_channel_payload_encode
  *
  * SYNOPSIS
  *
- *    SilcBuffer silc_channel_payload_encode(unsigned char *channel_name,
+ *    SilcBuffer silc_channel_payload_encode(const unsigned char *channel_name,
  *                                           uint16 channel_name_len,
- *                                           unsigned char *channel_id,
+ *                                           const unsigned char *channel_id,
  *                                           uint32 channel_id_len,
  *                                           uint32 mode);
  *
@@ -160,9 +167,9 @@ SilcDList silc_channel_payload_parse_list(SilcBuffer buffer);
  *    Encode new channel payload and returns it as buffer.
  *
  ***/
-SilcBuffer silc_channel_payload_encode(unsigned char *channel_name,
+SilcBuffer silc_channel_payload_encode(const unsigned char *channel_name,
                                       uint16 channel_name_len,
-                                      unsigned char *channel_id,
+                                      const unsigned char *channel_id,
                                       uint32 channel_id_len,
                                       uint32 mode);
 
@@ -288,7 +295,8 @@ int silc_channel_message_payload_decrypt(unsigned char *data,
  * SYNOPSIS
  *
  *    SilcChannelMessagePayload 
- *    silc_channel_message_payload_parse(SilcBuffer buffer,
+ *    silc_channel_message_payload_parse(const unsigned char *payload,
+ *                                       uint32 payload_len,
  *                                       SilcCipher cipher,
  *                                       SilcHmac hmac);
  *
@@ -303,7 +311,8 @@ int silc_channel_message_payload_decrypt(unsigned char *data,
  *
  ***/
 SilcChannelMessagePayload 
-silc_channel_message_payload_parse(SilcBuffer buffer,
+silc_channel_message_payload_parse(unsigned char *payload,
+                                  uint32 payload_len,
                                   SilcCipher cipher,
                                   SilcHmac hmac);
 
@@ -313,7 +322,7 @@ silc_channel_message_payload_parse(SilcBuffer buffer,
  *
  *    SilcBuffer silc_channel_message_payload_encode(uint16 flags,
  *                                                   uint16 data_len,
- *                                                   unsigned char *data,
+ *                                                   const unsigned char *data,
  *                                                   uint16 iv_len,
  *                                                   unsigned char *iv,
  *                                                   SilcCipher cipher,
@@ -332,7 +341,7 @@ silc_channel_message_payload_parse(SilcBuffer buffer,
  ***/
 SilcBuffer silc_channel_message_payload_encode(uint16 flags,
                                               uint16 data_len,
-                                              unsigned char *data,
+                                              const unsigned char *data,
                                               uint16 iv_len,
                                               unsigned char *iv,
                                               SilcCipher cipher,
@@ -382,7 +391,7 @@ silc_channel_message_get_flags(SilcChannelMessagePayload payload);
  *
  ***/
 unsigned char *silc_channel_message_get_data(SilcChannelMessagePayload payload,
-                                    uint32 *data_len);
+                                            uint32 *data_len);
 
 /****f* silccore/SilcChannelAPI/silc_channel_message_get_mac
  *
@@ -418,7 +427,9 @@ unsigned char *silc_channel_message_get_iv(SilcChannelMessagePayload payload);
  *
  * SYNOPSIS
  *
- *    SilcChannelKeyPayload silc_channel_key_payload_parse(SilcBuffer buffer);
+ *    SilcChannelKeyPayload 
+ *    silc_channel_key_payload_parse(const unsigned char *payload,
+ *                                   uin32 payload_len);
  *
  * DESCRIPTION
  *
@@ -426,18 +437,20 @@ unsigned char *silc_channel_message_get_iv(SilcChannelMessagePayload payload);
  *     structure.
  *
  ***/
-SilcChannelKeyPayload silc_channel_key_payload_parse(SilcBuffer buffer);
+SilcChannelKeyPayload 
+silc_channel_key_payload_parse(const unsigned char *payload,
+                              uint32 payload_len);
 
 /****f* silccore/SilcChannelAPI/silc_channel_key_payload_encode
  *
  * SYNOPSIS
  *
  *    SilcBuffer silc_channel_key_payload_encode(uint16 id_len,
- *                                               unsigned char *id,
+ *                                               const unsigned char *id,
  *                                               uint16 cipher_len,
- *                                               unsigned char *cipher,
+ *                                               const unsigned char *cipher,
  *                                               uint16 key_len,
- *                                               unsigned char *key);
+ *                                               const unsigned char *key);
  *
  * DESCRIPTION
  *
@@ -446,11 +459,11 @@ SilcChannelKeyPayload silc_channel_key_payload_parse(SilcBuffer buffer);
  *
  ***/
 SilcBuffer silc_channel_key_payload_encode(uint16 id_len,
-                                          unsigned char *id,
+                                          const unsigned char *id,
                                           uint16 cipher_len,
-                                          unsigned char *cipher,
+                                          const unsigned char *cipher,
                                           uint16 key_len,
-                                          unsigned char *key);
+                                          const unsigned char *key);
 
 /****f* silccore/SilcChannelAPI/silc_channel_key_payload_free
  *