Copyright © 2001 - 2002 SILC Project SILC Project Website | SILC Toolkit Reference Manual Index

SILC Toolkit Reference Manual SILC Core Library SILC Authentication Interface SILC Message Interface SILC Channel Interface SILC Command Interface SILC Notify Interface SILC Status Types SILC Modes SILC ID Interface SILC ID Cache Interface SILC Argument Interface SILC Attributes Interface Packet Protocol Interface SILC Math Library SILC MP Interface SILC Math Interface SILC SFTP Library SILC SFTP Interface SFTP Filesystems Interface SILC Utility Library Basic SILC Types SILC Buffer Interface SILC Buffer Format Interface SILC Hash Table Interface SILC Logging Interface SILC Memory Interface SILC Mutex Interface SILC Thread Interface SILC Network Interface SILC Schedule Interface SILC Socket Interface SILC Protocol Interface SILC Config Interface SILC File Util Interface SILC String Util Interface SILC Util Interface SILC List Interface SILC Dynamic List Interface SILC VCard Interface SILC Application Utilities SILC Key Exchange Library SILC SKE Interface SKE Status Types SKE Diffie Hellman Groups SKE Payloads SILC Client Library Using SILC Client Library Tutorial Arguments for command_reply Client Operation Arguments for notify Client Operation Client Library Interface Reference SILC Crypto Library Introduction to SILC RNG SILC RNG Interface SILC Cipher API SILC PKCS API SILC Hash Interface SILC HMAC Interface Resource Links SILC Project Website SILC Protocol Documentation SILC White Paper SILC FAQ
Function silc_message_payload_encode SYNOPSIS
        SilcBuffer silc_message_payload_encode(SilcMessageFlags flags,
                                               const unsigned char *data,
                                               SilcUInt32 data_len,
                                               bool generate_iv,
                                               bool private_message,
                                               SilcCipher cipher,
                                               SilcHmac hmac,
                                               SilcRng rng,
                                               SilcPublicKey public_key,
                                               SilcPrivateKey private_key,
                                               SilcHash hash);
DESCRIPTION
        Encodes a Message Payload into a buffer and returns it.  This is
        used to encode channel messages and private messages into a packet.
        If `private_message' is FALSE then this encodes channel message, if
        it is TRUE this encodes private message.  If `private_message' is
        TRUE then `generate_iv' MUST be FALSE if the private message key
        `cipher' is not static key (pre-shared key).  If it is static key
        then protocol dictates that IV must be present in the Message Payload
        and `generate_iv' must be TRUE.  The caller must know whether the key
        is static or not for private messages.  If the key was generated with
        Key Agreement protocol then `generate_iv' is always FALSE.  For
        channel messages `generate_iv' is always set to TRUE value.

        The `cipher' is the cipher used to encrypt the message and `hmac'
        is used to compute the MAC for the payload.  If encoding private
        message that will be encrypted with session keys (no private message
        key) then `cipher' and `hmac' is NULL and this merely encodes the
        payload buffer, and the caller must encrypt the packet later.
        If `rng' is NULL then global RNG is used, if non-NULL then the
        `rng' is used (for IV and padding generation).

        The `public_key', `private_key' and `hash' are provided only if the
        flags includes SILC_MESSAGE_FLAG_SIGNED, in which case the message
        will be digitally signed.  If `public_key' is non-NULL then it will
        be included in the message.  The `private_message' and `hash' MUST
        be provided.  The `hash' SHOULD be SHA1.
SILC Message Interface SilcMessagePayload SilcMessageSignedPayload SilcMessageFlags silc_message_payload_decrypt silc_message_payload_parse silc_message_payload_encrypt silc_message_payload_encode silc_message_payload_free silc_message_get_flags silc_message_get_data silc_message_get_mac silc_message_get_iv silc_message_get_signature silc_message_signed_payload_parse silc_message_signed_payload_encode silc_message_signed_payload_free silc_message_signed_verify silc_message_signed_get_public_key

Copyright © 2001 - 2002 SILC Project SILC Project Website | SILC Toolkit Reference Manual Index