updates.
[silc.git] / README
diff --git a/README b/README
index 191ebd1e37e8daedb37867b2701f0512f28f5e0c..2a946e5635c27a7795c85772e50576111ca519b9 100644 (file)
--- a/README
+++ b/README
@@ -1,22 +1,9 @@
 SILC - Secure Internet Live Conferencing
 ========================================
 
-[NOTE: SILC is still in middle of development and this package is known
-as Developer's Version which means that the package is in no means stable
-or ready to be in production use.  This package is for those who wants
-to test SILC, find bugs and maybe contribute some time and code for the
-SILC project.  There is no guarantees that this package even compiles and
-even if it compiles there is no guarantees that it would work, and even
-if it works there is no guarantees that it would work correctly, and even
-if it seems to work correctly it may be just plain luck.]
-
-
-Description
-===========
-
 SILC (Secure Internet Live Conferencing) is a protocol which provides
 secure conferencing services in the Internet over insecure channel.
-SILC is IRC like softwarre although internally they are very different.
+SILC is IRC like software although internally they are very different.
 Biggest similarity between SILC and IRC is that they both provide
 conferencing services and that SILC has almost same commands as IRC.  Other
 than that they are nothing alike.  Biggest differences are that SILC is 
@@ -27,172 +14,19 @@ different compared to IRC.
 Running SILC
 ============
 
-The development version is still preliminary version and requires some
-work to get it working.  You should, first of all, check the example
-configuration files in ./doc/ directory.  Change them according to your
-needs.
-
-To run SILC client:
-
-       cd silc
-       ./silc -f <config file>
-
-To run SILC server
-
-       cd silcd
-       ./silcd -f <config file>
-
-
-Working Commands
-================
-
-Following commands has been, at least partly, implemented:
-
-
-       /SERVER [<server>[:<port>]]
-
-               Connects to remote SILC server.
-
-       /NICK   [<nickname>]
-
-               Changes/sets nickname.  Note that in SILC there can be
-               multiple same nicknames.  However, the logic on working
-               with multiple nicknames on user interface is pretty much
-               still missing.  Also note that nicknames in SILC are
-               case-sensitive.
-
-       /JOIN   <channel>
-
-               Joins to a channel.  Channel names start with `#'
-               character.
-
-       /LEAVE  <channel>
-
-               Leaves the channel.  If /leave * is given the client
-               leaves the current channel.
-
-       /CMODE  <channel> +|-<modes> [{ <arguments>}]
-
-               Changes/sets channel mode.  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).  Following modes are available:
-
-               p               Set/unset channel as private channel
-               s               Set/unset channel as secret channel
-               k               Set/unset that channel uses private channel key
-               i               Set/unset channel as invite only channel
-               t               Set/unset that only channel operator or 
-                               founder may set channel topic
-               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
-
-               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>]
-
-               Changes/set user's mode on a channel.  Most of the modes 
-               require that the client who changes some client's mode must
-               be channel founder or channel operator.  Following channel
-               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.
-               o <nickname>[@<server>]
-                               Set/unset channel operator.  Requires that 
-                               you are channel operator or channel founder.
-
-       /MSG    <nickname> <message>
-
-               Sends private message to remote client.  Support for
-               handling multiple same nicknames with /MSG command is
-               still missing.
-
-       /WHOIS  <nickname>[@<server>] [<count>]
+After installing the SILC to the system the SILC client is started by
+giving command:
 
-               Gives a little information about a client.  Support for
-               handling multiple same nicknames with this command is
-               still missing.
+       silc
 
-       /WHOWAS  <nickname>[@<server>] [<count>]
+If you want to run with specific configuration file give -f option.
 
-               Gives a little history information about a client.
+To run the server you should configure the server first.  To run the
+server give the command:
 
-        /KICK   <channel> <nickname>[@<server>] [<comment>]
+       silcd
 
-                Kicks client from channel. You have to be at least channel
-               operator to be able to kick client from channel.  Note:
-               you cannot kick channel founder even if you are channel
-               operator.
-
-       /PING   [<server>]
-
-               Pings server.  Only locally connected server may be 
-               pinged.
-
-       /INFO   [<server>]
-
-               Requests information about a server.  If argument is
-               not specified current server is used.
-
-       /AWAY   [<message>]
-
-               Sets away message.  When private message is received and
-               away message is set the client automatically replies to
-               the sender with the away message.  To remove away message
-               give the command without arguments.
-
-       /QUIT
-
-               Quits session.  Connection to remote server is closed.
-
-       /CLEAR
-
-               Clears current screen.
-
-       /VERSION
-
-               Shows client version.
-
-       /OPER   <username> [<public key>]
-
-               Obtains server operator privileges.
-
-       /SILCOPER <username> [<public key>]
-
-               Obtains router operator privileges.
-
-       /CONNECT <server> [<port>]
-
-               Connects to server the remote <server>.  You must be
-               server operator to be able to do this.
-
-
-       /CLOSE  <server> [<port>]
-
-               Closes connection to the <server>.  You must be server
-               operator to be able to do this.
-
-       /SHUTDOWN
-
-               Shutdowns the server.  You must be server operator to be
-               able to do this.
+This will launch the server on to the background.
 
 
 Features
@@ -242,63 +76,43 @@ TODO file for more information.]
 History
 =======
 
-Even though SILC were just released to the public the idea and the protocol
-itself is quite old.  I got the idea about SILC in its current form in
-the year 1996 and first lines of codes were written in early 1997.  This
-release is now third rewrite of the SILC.  The very first version were
-written in 1997 and it included SILC client and very very preliminary
-SILC server.  The server actually weren't usable but the client looked
-pretty much the same as it does now.  At that time the SILC also included
-RSA implementation and 3DES implementation.  The random number generator
-that exists in this current release is actually based on the RNG written
-in 1997.  The RNG written in 1997, on the other hand, were based on
-the SSH's random number generator.  The RNG has been rewritten twice
-since the first version.
-
-I stopped writing the SILC later in 1997 when I got busy at school and
-in work.  The pause lasted several months.  The development resumed in
-1998 when my friend (Juha Räsänen) and I implemented ElGamal algorithm.
-I rewrote some other parts as well.  However, for the same reasons as
-previously the development stopped again.  I resumed the development
-later in 1998 by doing rewrite of the SILC in C++.  This was obviously 
-a mistake but at that time it seemed like a good idea.  Again, in the 
-winter 1999 I got very busy writing my thesis and was forced to stop the 
-development again.  I also, started a new job in the spring.
-
-Later, in 1999, I decided that this time I'm going to make it the right
-way.  C++ was obviously a bad choice so I decided to fall back to plain
-C language.  I also decided to do complete rewrite and started doing
-more thorough planning of what the SILC actually should include.  I also
-decided that this time it is going to kill me before I stop the 
-development.  I started writing SILC in the weekends and actually 
-everytime I had some spare time.  I also started a new job but I didn't
-let that get to my way.  The result of this development effort is the
-release now in public.
-
-I've learned a lot by doing the SILC.  I guess, when I started it I wasn't
-that good of a C programmer.  That alone was a reason why SILC hasn't
-seen the day of light before now.  My programming style has also changed 
-dramatically during these years.  Actually, it has changed couple times 
-since this last rewrite as well.  However, the code style of current SILC 
-release is quite consistent (actually the coding style SILC has been 
-written now I've learned in my current job).
-
-There is probably over 85% of new code in this third rewrite.  Rest has 
-just been copied from the old versions and only minor changes has been
-made (like changed function names and overall coding style).  I've 
-preserved the dates of the old files (dating back to 1997) that has 
-existed in some forms in the old versions.  There is a lot of new code but
-already I see a lot that needs rewriting.  The development continues.
+SILC was released in the summer 2000 to the public, but the idea and the
+protocol itself is quite old. The SILC was designed by Pekka Riikonen in
+the year 1996 and first lines of codes were written in the early 1997. The
+SILC has been rewritten three times since its very first version in 1997.
+The first version included SILC client, very preliminary SILC server, RSA
+implementation and 3DES implementation. The server actually was not usable
+but the client looked pretty much the same as the first client released in
+the summer 2000. The first version had also random number generator which
+were based on the SSH's random number generator. The current RNG is based
+on the first RNG but has been rewritten twice since the first version. 
+
+The development of SILC was suspended in 1997 when Pekka got busy at
+school and in work. The pause laster several months. The development
+resumed in 1998 when Juha Räsänen and Pekka implemented the ElGamal
+algorithm. However, for the same reasons as previously the development
+stopped again, and was resumed again later in 1998 by doing rewrite of
+ther SILC in C++. This was obviously a mistake but at that time it seemed
+like a good idea. Again, in the winter 1999 the development suspended when
+Pekka got busy writing his thesis and was forced to stop the development. 
+
+Later, in 1999, it was decided that this time SILC will be rewritten from
+scratch in the right way. C++ was obviously a bad choice so plain C 
+language was selected again. The protocol itself faced some rework by
+redesigning some core parts of the protocol. The protocol was also fully
+documented and the protocol specifications were submitted to the IETF. The
+result of this development effort is the release now in public. Since the
+release in the summer 2000 several other people have contributed to the
+project as well. And, the development continues. 
 
 
 Contact
 =======
 
-Feedback and comments are welcome.  You can reach me in the following
-Address. 
-
-Official SILC project web site is   : http://silc.pspt.fi
-FTP archive for SILC project is     : ftp://silc.pspt.fi/pub/silc/
-Development mailing list address is : silc-devel@lists.sourceforge.net
+Feedback and comments are welcome.  Bug reports should be sent to the
+development mailing list.
 
-                               Pekka Riikonen <priikone@poseidon.pspt.fi>
+Official SILC project web site      : http://silcnet.org/
+FTP archive for SILC project        : ftp://ftp.silcnet.org/
+Development mailing list address    : silc-devel@lists.sourceforge.net
+SILC Server                         : /server silc.silcnet.org