./silcd -f <config file>
-Working Commands
-================
-
-Following commands has been, at least partly, implemented:
+SILC Commands
+=============
/SERVER [<server>[:<port>]]
l <limit> Set/unset channel's user limit
a <passphrase> Set/unset passphrase for channel that must
be provided when joining to the channel.
- b <username!nickname@server>
- Add client to/remove client from ban list
- I <username!nickname@server>
- Add client to/remove client from invite list
- c <cipher>[:<keylen>]
- Set/unset channel's cipher
+ c <cipher> Set/unset channel's cipher
+ h <hmac> Set/unset channel's hmac
Multiple modes can be set/unset at once if the modes does not
require any arguments. If mode requires an argument then only
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:
+
+ a Unset all modes
+ s Unset server operator privileges
+ r Unset router operator privileges
+
/MSG <nickname> <message>
Sends private message to remote client. Support for
Gives a little history information about a client.
+ /INVITE <channel> [<nickname>[@server>]
+ [+|-[<nickname>[@<server>[!<username>[@hostname>]]]]]
+
+ Invites client to a channel or manages the invite list of
+ the channel. The first <nickname> argument is used if an
+ client is invited to the channel. The second +|-<nickname>
+ argument is used to either add or delete invite from the
+ channel's invite list. Wildcards may be used with this
+ command.
+
+ /BAN <channel> [+|-[<nickname>[@<server>[!<username>[@hostname>]]]]]
+
+ Manages the ban list of the channel. Wildcards may be used
+ with this command. You must be channel operator to be
+ able to use this command.
+
/KICK <channel> <nickname>[@<server>] [<comment>]
Kicks client from channel. You have to be at least channel
Obtains router operator privileges.
+ /KILL <nickname> [<comment>]
+
+ Router operator can use this command to remove an client
+ from the SILC Network temporarily.
+
/CONNECT <server> [<port>]
Connects to server the remote <server>. You must be
Shutdowns the server. You must be server operator to be
able to do this.
+ /MOTD [<server>]
+
+ Display the MOTD of the server. If server is not specified
+ the current server is used.
+
+ /LIST [<channel>]
+
+ Lists all channels in the current server, or the channel
+ 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.
Features
========