SILC Core Library
    SILC Auth API
    SILC Channel API
    SILC Command API
    SILC ID API
    SILC ID Cache API
    SILC Modes
    SILC Notify API
    SILC Packet API
    SILC Payload API
    SILC Private API
SILC Math Library
    SILC Math API
    SILC MP API
SILC SFTP Library
    SILC SFTP API
    SILC SFTP Filesystems
SILC Utility Library
    SILC Buffer API
    SILC Buffer Format API
    SILC Buffer Utility API
    SILC Hash Table API
    SILC Log and Debug API
    SILC Memory API
    SILC Mutex API
    SILC Thread API
    SILC Net API
    SILC Schedule API
    SILC Socket Connection API
    SILC Protocol API
    SILC Util API
    SILC Zip API
    SILC List API
    SILC Dynamic List API
SILC Key Exchange Library
    SILC SKE API
    SILC SKE Status
SILC Client Library
    SILC Client API
SILC Crypto Library
    SILC Cipher API
    SILC Hash API
    SILC HMAC API
    SILC PKCS API
    SILC RNG API
Function silc_client_add_private_message_key

SYNOPSIS

    int silc_client_add_private_message_key(SilcClient client,
                                            SilcClientConnection conn,
                                            SilcClientEntry client_entry,
                                            char *cipher,
                                            unsigned char *key,
                                            uint32 key_len,
                                            bool generate_key,
                                            bool responder);

DESCRIPTION

    Adds private message key to the client library. The key will be used to
    encrypt all private message between the client and the remote client
    indicated by the `client_entry'. If the `key' is NULL and the boolean
    value `generate_key' is TRUE the library will generate random key.
    The `key' maybe for example pre-shared-key, passphrase or similar.
    The `cipher' MAY be provided but SHOULD be NULL to assure that the
    requirements of the SILC protocol are met. The API, however, allows
    to allocate any cipher.

    If `responder' is TRUE then the sending and receiving keys will be
    set according the client being the receiver of the private key.  If
    FALSE the client is being the sender (or negotiator) of the private
    key.

    It is not necessary to set key for normal private message usage. If the
    key is not set then the private messages are encrypted using normal
    session keys. Setting the private key, however, increases the security. 

    Returns FALSE if the key is already set for the `client_entry', TRUE
    otherwise. 

>> SilcClientAPI
>> SilcKeyAgreementStatus
>> SilcKeyAgreementCallback
>> SilcPrivateMessageKeys
>> SilcAskPassphrase
>> SilcVerifyPublicKey
>> SilcGetAuthMeth
>> SilcClientMessageType
>> SilcClientOperations
>> SilcNicknameFormatParse
>> SilcClientParams
>> silc_client_alloc
>> silc_client_free
>> silc_client_init
>> silc_client_run
>> silc_client_run_one
>> silc_client_stop
>> silc_client_connect_to_server
>> silc_client_add_connection
>> silc_client_del_connection
>> silc_client_add_socket
>> silc_client_del_socket
>> silc_client_start_key_exchange
>> silc_client_close_connection
>> silc_client_send_channel_message
>> silc_client_send_private_message
>> SilcGetClientCallback
>> silc_client_get_clients
>> silc_client_get_clients_local
>> silc_client_get_clients_by_list
>> silc_client_get_client_by_id
>> silc_client_get_client_by_id_resolve
>> silc_client_del_client
>> SilcGetChannelCallback
>> silc_client_get_channel
>> silc_client_get_channel_id_resolve
>> silc_client_get_channel_by_id_resolve
>> silc_client_del_channel
>> silc_client_get_server
>> silc_client_get_server_by_id
>> silc_client_del_server
>> silc_client_command_alloc
>> silc_client_command_free
>> silc_client_command_dup
>> silc_client_command_find
>> silc_client_send_command
>> SilcClientPendingDestructor
>> silc_client_command_pending
>> silc_client_add_private_message_key
>> silc_client_add_private_message_key_ske
>> silc_client_send_private_message_key
>> silc_client_del_private_message_key
>> silc_client_list_private_message_keys
>> silc_client_free_private_message_keys
>> silc_client_add_channel_private_key
>> silc_client_del_channel_private_keys
>> silc_client_del_channel_private_key
>> silc_client_list_channel_private_keys
>> silc_client_free_channel_private_keys
>> silc_client_send_key_agreement
>> silc_client_perform_key_agreement
>> silc_client_perform_key_agreement_fd
>> silc_client_abort_key_agreement
>> silc_client_set_away_message
>> SilcConnectionAuthRequest
>> silc_client_request_authentication_method
>> silc_client_file_receive(1)
>> silc_client_file_send
>> silc_client_file_receive
>> silc_client_file_close