+
+
+Function silc_client_add_channel_private_key
+
+
+SYNOPSIS
+
+
+ SilcBool
+ silc_client_add_channel_private_key(SilcClient client,
+ SilcClientConnection conn,
+ SilcChannelEntry channel,
+ const char *name,
+ char *cipher,
+ char *hmac,
+ unsigned char *key,
+ SilcUInt32 key_len,
+ SilcChannelPrivateKey *ret_key);
+
+
+DESCRIPTION
+
+
+ Adds private key for channel. 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 `name' can be application given
+ name for the key. This returns the created key to the 'ret_key'
+ pointer if it is non-NULL;
+
+ If `cipher' and/or `hmac' is NULL then default values will be used
+ (aes-256-cbc for cipher and hmac-sha1-96 for hmac).
+
+ 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.
+
+
+
+ |
+