updates.
[silc.git] / README
diff --git a/README b/README
index dfff7705f863255715b5921a685350caeaf6b843..da6a575df12abb756270da6a78f890a3cb593923 100644 (file)
--- a/README
+++ b/README
@@ -87,12 +87,22 @@ SILC Commands
                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 <-pubkey|<password>
+                               Set/unset channel founder authentication.
+                               Channel founder may set this mode so that
+                               if the client leaves the channel it can
+                               claim the founder rights when it returns
+                               to the channel.  If -pubkey is set then
+                               the authentication will be done using the
+                               client's public key.  You can claim the
+                               founder rights using the CUMODE command.
 
                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.
 
-       /CUMODE <channel> +|-<modes> <nickname>[@<server>]
+       /CUMODE <channel> +|-<modes> <nickname>[@<server>] [-pubkey|<passwd>]
 
                Changes/set user's mode on a channel.  Most of the modes 
                require that the client who changes some client's mode must
@@ -100,26 +110,39 @@ SILC Commands
                user modes are available:
 
                a <nickname>[@<server>]
+
                                Set/unset all modes (cannot be used to set
                                both founder and operator rights, can be used
                                only to remove both modes at once).
-               f <nickname>[@<server>]
-                               Unset channel founder.  Channel founder rights
-                               cannot be set by user (only by server) so this
-                               can be used only to unset the mode.
+
+               f <nickname>[@<server>] [-pubkey|<password>]
+
+                               Set/Unset channel founder.  If the -pubkey
+                               option or <password> is provided then the
+                               client is claiming the founder rights by
+                               providing the channel founder authentication
+                               data.  If the -pubkey is provided then the
+                               authentication is performed using the
+                               client's public key.  If you are channel
+                               founder you can set the channel founder
+                               authentication using CMODE command.
+
                o <nickname>[@<server>]
+
                                Set/unset channel operator.  Requires that 
                                you are channel operator or channel founder.
 
        /UMODE  +|-<modes>
 
-               Sets/unsets user mode.  Currently none of the modes can
-               be set by the user so this command can be merely used to
-               unset some mode.  Following user modes are available:
+               Sets/unsets user mode.  Note that some of the modes the
+               client cannot set itself.  The following user modes are
+               available:
 
                a       Unset all modes
                s       Unset server operator privileges
                r       Unset router operator privileges
+               g       Set/unset to be gone (or use /AWAY command)
+
 
        /MSG    <nickname> <message>
 
@@ -229,6 +252,100 @@ SILC Commands
                specified.  If the channel cannot be found then all
                channels are listed.
 
+       /KEY    msg|channel <nickname|channel> 
+               set|unset|list|agreement|negotiate [<arguments>]
+
+               This command is used to set and unset private keys for
+               channels, set and unset private keys for private messages
+               with remote clients and to send key agreement requests and
+               negotiate the key agreement protocol with remote client.
+               The key agreement is supported only to negotiate private
+               message keys, it currently cannot be used to negotiate
+               private keys for channels, as it is not convenient for that
+               purpose.
+
+               Types:          
+
+               msg     The command is performed for private messages
+                       affecting the <nickname>.
+
+               channel The command is performed for channel affecting
+                       the <channel>.
+
+
+               Commands:
+
+               set     [<key> [<cipher>] [<hmac>]]
+
+                       Set the key into use.  If the <key> is provided it
+                       is used as the key material.  If the <key> is not
+                       provided the negotiated key material is used.  If
+                       the negotiation has not been performed this command
+                       has no effect.
+
+                       If the type is `msg' and the <key> is `*' then
+                       random key will be generated automatically.
+
+                       The <cipher> may be set for both private message
+                       and channel private keys and the <hmac> may be set
+                       only to the channel private keys.
+
+               unset   [<number>]
+
+                       Unset the key.  The private key is not used after
+                       this command.  The key must be set again or the key
+                       material must be re-negotiated to be able to use
+                       the private keys again.
+
+                       The channel may have several private keys set.  The
+                       <number> can be used to indicate what key is being
+                       unset.  If it is not provided all keys are removed.
+
+
+               list    List all private keys that has been set.
+
+                       If the type is `msg' and the <nickname> is ยด*' then
+                       all private message keys that you've set will be
+                       listed.
+
+               agreement [<hostname> [<port>]]
+
+                       Send key agreement request to remote client.  If
+                       the <hostname> is provided it is sent in the request.
+                       The receiver may use the hostname to start the
+                       key agreement.  If the <port> is also provided your
+                       key agreement protocol server is bound to that
+                       port.  Note that it cannot be privileged port (<1023).
+                       If the <hostname> and <port> is not provided then
+                       the receiver will never initiate the key agreement.
+                       In this case you must start the key agreement after
+                       receiving the reply to the request, by giving the
+                       /KEYAGR start command.
+
+                       This command may be used to send reply to the
+                       remote client.  When receiving empty key agreement
+                       you can reply to the sender with the hostname and
+                       port of your key agreement server with this command.
+
+               negotiate [<hostname> [<port>]]
+
+                       This may be called to start the key agreement with
+                       <nickname>.  This command has effect only if the
+                       <nickname> has replied to your key agreement request.
+                       You will see a notify on the screen when the reply
+                       arrives.  The <hostname> and <port> is the hostname
+                       and port of the remote client's key agreement
+                       server.
+
+       /ME     <channel> <action message>
+
+               This command is used to send an action to the channel.
+               This equals to CTCP's ACTION (IRC's /ME) command.
+
+       /NOTICE <channel> <message>
+
+               This command is used to send for example informational
+               notice messages to the channel.
 
 Features
 ========