X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilccore%2Fsilcprivate.h;h=e5da22eab400bee1672536f7b75df2d24feb1234;hb=a818c5b5411bbc4436d1c5f011236985c96bb787;hp=79e00b89f64cd4a7c684771fd97239a37952659e;hpb=60cffd2daf6ff3a1275d51311cbc986bd12b0df1;p=silc.git diff --git a/lib/silccore/silcprivate.h b/lib/silccore/silcprivate.h index 79e00b89..e5da22ea 100644 --- a/lib/silccore/silcprivate.h +++ b/lib/silccore/silcprivate.h @@ -1,16 +1,16 @@ /* - + silcprivate.h - - Author: Pekka Riikonen - + + Author: Pekka Riikonen + 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 @@ -18,28 +18,125 @@ */ +/****h* silccore/SilcPrivateAPI + * + * DESCRIPTION + * + * Implementation of the SILC Private Message Payload that is used to + * deliver private messages. + * + ***/ + #ifndef SILCPRIVATE_H #define SILCPRIVATE_H -/* Forward declaration of the Private Message Payload. */ +/****s* silccore/SilcPrivateAPI/SilcPrivateMessagePayload + * + * NAME + * + * typedef struct SilcPrivateMessagePayloadStruct + * *SilcPrivateMessagePayload; + * + * + * DESCRIPTION + * + * This context is the actual Private Message Payload and is allocated + * by silc_private_message_payload_parse and given as argument usually + * to all silc_private_message_* functions. It is freed by the + * silc_private_message_payload_free function. + * + ***/ typedef struct SilcPrivateMessagePayloadStruct *SilcPrivateMessagePayload; /* Prototypes */ +/****f* silccore/SilcPrivateAPI/silc_private_message_payload_parse + * + * SYNOPSIS + * + * SilcPrivateMessagePayload + * silc_private_message_payload_parse(unsigned char *payload, + * SilcUInt32 payload_len, + * SilcCipher cipher); + * + * DESCRIPTION + * + * Parses private message payload returning new private mesage payload + * structure. This also decrypts the message if the `cipher' is provided. + * + ***/ SilcPrivateMessagePayload -silc_private_message_payload_parse(SilcBuffer buffer, SilcCipher cipher); -SilcBuffer silc_private_message_payload_encode(uint16 flags, - uint16 data_len, - unsigned char *data, +silc_private_message_payload_parse(unsigned char *payload, + SilcUInt32 payload_len, + SilcCipher cipher); + +/****f* silccore/SilcPrivateAPI/silc_private_message_payload_encode + * + * SYNOPSIS + * + * SilcBuffer silc_private_message_payload_encode(SilcUInt16 flags, + * SilcUInt16 data_len, + * const unsigned char *data, + * SilcCipher cipher); + * + * DESCRIPTION + * + * Encodes private message payload into a buffer and returns it. If + * the cipher is provided the packet is also encrypted here. It is provided + * if the private message private keys are used. + * + ***/ +SilcBuffer silc_private_message_payload_encode(SilcUInt16 flags, + SilcUInt16 data_len, + const unsigned char *data, SilcCipher cipher); + +/****f* silccore/SilcPrivateAPI/silc_private_message_payload_free + * + * SYNOPSIS + * + * void + * silc_private_message_payload_free(SilcPrivateMessagePayload payload); + * + * DESCRIPTION + * + * Frees Private Message Payload + * + ***/ void silc_private_message_payload_free(SilcPrivateMessagePayload payload); -uint16 + +/****f* silccore/SilcPrivateAPI/silc_private_message_get_flags + * + * SYNOPSIS + * + * SilcUInt16 + * silc_private_message_get_flags(SilcPrivateMessagePayload payload); + * + * DESCRIPTION + * + * Returns flags from the payload. Message flags may indicate some + * status of the message. Private message flags are equivalent to the + * channel message flags. + * + ***/ +SilcUInt16 silc_private_message_get_flags(SilcPrivateMessagePayload payload); -unsigned char * -silc_private_message_get_nickname(SilcPrivateMessagePayload payload, - uint32 *nickname_len); + +/****f* silccore/SilcPrivateAPI/silc_private_message_get_message + * + * SYNOPSIS + * + * unsigned char * + * silc_private_message_get_nickname(SilcPrivateMessagePayload payload, + * SilcUInt32 *nickname_len); + * + * DESCRIPTION + * + * Returns the actual private message. The caller must not free it. + * + ***/ unsigned char * silc_private_message_get_message(SilcPrivateMessagePayload payload, - uint32 *message_len); + SilcUInt32 *message_len); #endif