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_channel_private_key SYNOPSIS
        int silc_client_add_channel_private_key(SilcClient client,
                                                SilcClientConnection conn,
                                                SilcChannelEntry channel,
                                                char *cipher,
                                                char *hmac,
                                                unsigned char *key,
                                                uint32 key_len);
DESCRIPTION
        Adds private key for channel. This may be set only if the channel's mode
        mask includes the SILC_CHANNEL_MODE_PRIVKEY. This returns FALSE if the
        mode is not set. When channel has private key then the messages are
        encrypted using that key. All clients on the channel must also know the
        key in order to decrypt the messages. However, it is possible to have
        several private keys per one channel. In this case only some of the
        clients on the channel may know the one key and only some the other key.

        The private key for channel is optional. If it is not set then the
        channel messages are encrypted using the channel key generated by the
        server. However, setting the private key (or keys) for the channel
        significantly adds security. If more than one key is set the library
        will automatically try all keys at the message decryption phase. Note:
        setting many keys slows down the decryption phase as all keys has to
        be tried in order to find the correct decryption key. However, setting
        a few keys does not have big impact to the decryption performace.
NOTES
        NOTE: This is entirely local setting. The key set using this function
        is not sent to the network at any phase.

        NOTE: If the key material was originated by the SKE protocol (using
        silc_client_send_key_agreement) then the `key' MUST be the
        key->send_enc_key as this is dictated by the SILC protocol. However,
        currently it is not expected that the SKE key material would be used
        as channel private key. However, this API allows it.
>> 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