
CMODE %|<channel> +|-<modes> [{ <arguments>}]

 This command is used to manage the modes of the channel.  Most
 of the modes require special privileges, such as channel operator
 or channel founder privileges to work.  The mode is added by
 adding + before the option(s) and removed by adding - before the
 option(s).  The (*) mark below means that only founder may set/unset
 that mode.  Other modes both channel operator and founder may manage.

 The following modes are available:

    p               Set/unset channel as private channel.  Private
                    channels are shown with LIST command with an
                    indication the channel is private.  Private
                    channel is not shown on user's joined channel
                    list (with for example WHOIS command).

    s               Set/unset channel as secret channel.  Secret
                    channels are entirely invisible.  They are not
                    shown with LIST command and they do not appear
                    in user's joined channel list.

    k               Enable/disable private channel key usage.   (*)
                    When enabled KEY command may be used to set
                    private channel key(s) on the channel.

    i               Set/unset channel as invite only channel.  If
                    you are the founder of the channel you will
                    still be able to join the channel by giving
                    command /JOIN channel -founder.

    t               Set/unset that only channel operator or
                    founder may set channel topic

    m               Set/unset user silencing.  Normal users
                    are not able to talk on channel.            (*)

    M               Set/unset operator silencing.  Operators
                    are not able to talk on channel.            (*)

    l <limit>       Set/unset channel's user count limit

    a <passphrase>  Set/unset passphrase for channel that must
                    be provided when joining to the channel.    (*)

    c <cipher>      Set/unset channel's cipher                  (*)

    h <hmac>        Set/unset channel's HMAC                    (*)

    f [<pubkeyfile> <privkeyfile> [<privkey passphrase>]]
                    Set/unset channel founder authentication.   (*)
                    Channel founder may set this mode so that
                    when the client leaves the channel it can
                    claim the founder rights when it returns
                    to the channel, and to set the channel to
                    be permanent channel.  You can reclaim the
                    founder rights using CUMODE or JOIN commands.

                    If the <pubkeyfile> and <privkeyfile> is
                    provided then the <pubkeyfile> will the used
                    as founder public key, and the private key
                    is used to compute a signature for the SILC
                    server.  If these are omitted then the default
                    SILC keypair is used.  Normally you do not need
                    to provide these arguments.

    C [{[+|-]<pubkeyfile> }]                                    (*)
                    Set/unset channel public key mode, and add/remove
                    channel publics key from the channel public key
                    list.  When this mode is set only those users
                    whose public keys has been added to the list are
                    able to join the channel.  Channel founder may set
                    this mode and operate on the channel public key
                    list.

                    To add public key to the list give command:
                    CMODE +C +/path/to/the/public_key_file.pub

                    To remove one public key from the list give
                    command:
                    CMODE +C -/path/to/the/public_key_file.pub

                    To add or remove more than one public keys add as
                    many public key file paths as necessary.

                    When this mode is unset (-C), all public keys are
                    removed from the list.  If +C is given without
                    arguments the current channel public key list is
                    displayed.

 Multiple modes can be set/unset at once if the modes does not
 require any arguments.  If mode requires an argument then only
 one mode can be set at once.

 When the +k (private channel key mode) mode is set the channel's
 default cipher and HMAC are not used.  The private key (see /HELP KEY
 for help how to set the private channel key) defines the cipher and
 HMAC for the channel while +k mode is set.  Also the +c and +h modes
 are ignored when private channel key mode is set.

Examples:

  Set the channel a permanent (persistent).  The channel won't be
  deleted when last user leaves the channel.  When you as the founder
  leave the channel you will be able to reclaim the founder rights
   later.

    /CMODE * +f

  Reclaim founder rights (and operator privileges) for you channel:

    /CUMODE * +of mynick

  You can do the same during joining:

    /JOIN yourchannel -founder

  Change channel founder keypair on your channel.  You can do this if
  you want to transfer founder rights to some other user or if you
  created new keypair.  The operation requires that you have a copy of
  the old keypair:

    /CUMODE * +f mynick /path/to/old/pubkey /path/to/old/privkey
    /CMODE * +f /path/to/new/pubkey /path/to/new/privkey

  or simply /CMODE * +f if you are already using the new keypair.

  Here's how to transfer founder rights to different user using
  temporary keypair.  First, create temporary keypair:

    # silc -C

  Become founder on your channel:

    /CUMODE * +f mynick

  Set the temporary keypair on the channel and then send the key
  pair to your friend with /FILE command or with encrypted Email:

    /CMODE * +f /path/to/temp/pubkey /path/to/temp/privkey
    (/FILE send /path/to/temp/keypair.tgz yourfriend)

  Tell your friend to give the following command to become founder:

    /CUMODE * +f yourfriend /path/to/temp/pubkey /path/to/temp/privkey

  Your friend then sets his own keypair on the channel:

    /CMODE * +f

  After this the temporary keypair can be removed and your friend has
  become the founder of the channel.  This way the founder rights can
  be transferred without ever revealing your own keypair.  When your
  friend becomes the founder your founder rights will be removed by
  the server automatically.  It is also possible to continue using the
  temporary keypair, thus sharing founder rights with two or more
  users.  Note that it is possible for only one user at a time to
  have founder mode on the channel even if they share the keypair.

See also: CUMODE, UMODE, JOIN, KEY

