From: Pekka Riikonen Date: Sun, 29 Apr 2001 19:31:05 +0000 (+0000) Subject: removed X-Git-Tag: SILC.0.2~5 X-Git-Url: http://git.silcnet.org/gitweb/?a=commitdiff_plain;h=b34ab0885dc14ff81011ce282ebead115cce2757;p=silc.git removed --- diff --git a/public_html/about.html b/public_html/about.html deleted file mode 100644 index abf972ba..00000000 --- a/public_html/about.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -


- - - - - -
- -

-

About SILC

- -

-SILC (Secure Internet Live Conferencing) is a protocol which provides -secure conferencing services in the Internet over insecure channel. -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 -secure what IRC is not in any way. The network model is also entirely -different compared to IRC. - -

-SILC provides security services that any other conferencing protocol -does not offer today. The most popular conferencing service, IRC, -is entirely insecure. If you need secure place to talk to some people -or to group of people over the Internet, IRC or any other conferencing -service, for that matter, cannot be used. Anyone can see the messages -and their contents in the IRC network. And the most worse case, some -people is able to change the contents of the messages. Also, all the -authentication data, such as, passwords are sent plaintext. - -

-SILC is a lot more than just about `encrypting the traffic'. That is -easy enough to do with IRC, SSL and some ad hoc scripts, and even then -the entire network cannot be secured, only part of it. SILC provides -security services, such as, sending private messages entirely secure; no -one can see the message except you and the real receiver of the message. -SILC also provides same functionality for channels; no one except those -clients joined to the channel may see the messages destined to the -channel. Communication between client and server is also secured with -session keys, and all commands, authentication data (such as passwords etc.) -and other traffic is entirely secured. The entire network, and all parts -of it, is secured. This is something that cannot be done currently with -any other conferencing protocol, even when using the ad hoc scripts. :) - -

-SILC has secure key exchange protocol that is used to create the session -keys for each connection. SILC also provides strong authentication based -on either passwords or public key authentication. All authentication -data is always encrypted in the SILC network. All connections has their -own session keys, all channels has channel specific keys, and all private -messages can be secured with private message specific keys. - -

-SILC is an open source (or freeware) project and it has been released -under the GNU General Public Licence. The SILC is free to use and everyone -is free to distribute and change the SILC under the terms of the GNU GPL. -While there is no guarantee for the product SILC has been tried make -as secure as possible. The fact that the software and the protocol is -open for public analysis is a good thing for end user. - -

-Protocol specification of SILC protocol is available for -anyone to look at. There exists four Internet Drafts that has been -submitted to IETF. -See documentation page for more information. - - -

-

Contact

-

-Feedback and comments are welcome. You can reach me in the following -Address. -

-Pekka Riikonen
-priikone at poseidon.pspt.fi -

- -

- - diff --git a/public_html/contribute.html b/public_html/contribute.html deleted file mode 100644 index 30f403ff..00000000 --- a/public_html/contribute.html +++ /dev/null @@ -1,39 +0,0 @@ - - - -


- - - - - -
- -

-

Contributing

- -

-Developers are needed in SILC project. Everyone who has the time and -ability is welcome to come and join the project. We need C coders, -technical writers (to write documentation) and web administrator to take -over these web pages. Feel free to start narrowing down the TODO -list. -

-Interested people are also welcome to give new ideas to the SILC protocol -that is still in its draft phase. You should probably go and read the -SILC protocol specification Internet Drafts to get the idea about what -SILC actually is. The current software version might not give the -whole picture of the SILC. The Internet Drafts are available in -documentation page. -

-Who wants to send code to the project should read the CodingStyle -documentation. New code must comply with the coding style conventions -described in that document. -

-There is anonymous CVS acccess for those who want to participate the -development process. Go see the CVS page. -

- - diff --git a/public_html/copying.html b/public_html/copying.html deleted file mode 100644 index e166f859..00000000 --- a/public_html/copying.html +++ /dev/null @@ -1,388 +0,0 @@ - - - -


- - - -
- - -

-

GNU GENERAL PUBLIC LICENSE

-

Version 2, June 1991

-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
-59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-
- - -

Preamble

- -

- The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - -

-

- When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - -

-

- To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - -

-

- For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - -

-

- We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - -

-

- Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - -

-

- Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - -

-

- The precise terms and conditions for copying, distribution and -modification follow. - -

- - -

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

- - -

- -0. - This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". -

- -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - -

- -1. - You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. -

- -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. -

- -2. - You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: -

- -

    - -
  • a) - You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - -

    -

  • b) - You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - -

    -

  • c) - If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) -
- -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. -

- -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. -

- -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - -

- -3. - You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - - - -

    - -
  • a) - Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - -

    -

  • b) - Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - -

    -

  • c) - Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) -
- -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. -

- -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. -

- -4. - You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - -

- -5. - You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - -

- -6. - Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - -

- -7. - If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. -

- -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. -

- -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. -

- -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - -

- -8. - If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - -

- -9. - The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. -

- -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - -

- - -10. - If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - - -

NO WARRANTY

- -

- -11. - BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - -

- -12. - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - -

- - -

END OF TERMS AND CONDITIONS

- -
- - diff --git a/public_html/cvs.html b/public_html/cvs.html deleted file mode 100644 index b859a5dd..00000000 --- a/public_html/cvs.html +++ /dev/null @@ -1,215 +0,0 @@ - - - -


- - - - - -
- -

-

Anonymous CVS Access

-

- -Anonymous CVS access is now available to SILC CVS repository. The -repository includes everything related to SILC project; source codes, -documentation and even these web pages. The CVS access is of course public -but it is intended for developers. After you have checked out the SILC -source tree you should read README.CVS file from the source tree or rest -of this web page. - -

-Also note that this is the closest to real time development you can get -thus you cannot expect that the source tree would work or even compile. -While it is our intention that the trunk would always at least compile -there might be situations when it will not. - - -


-

Browsing the Source Tree

- -

-If you want to browse the source tree using web browser before checking -out the tree with CVS use following link: -

-Web Access to CVS repository - -

-Note that this is not real-time access to the CVS repository. It is -updated once a day. If you want real-time access then checkout the CVS -repository. - - -


-

Howto Checkout The Source Tree

- -

-The repository can be checked out by using anonymous pserver with CVS. -

-For those who are using sh/ksh/bash the check out is done as follows: -

-

-export CVSROOT=:pserver:silc@silc.pspt.fi:/storage/silc/CVS - -
cvs login -
cvs co silc - -

-For those who are using csh/tcsh the check out is done as follows: -

-

-setenv CVSROOT :pserver:silc@silc.pspt.fi:/storage/silc/CVS - -
cvs login -
cvs co silc - -

-If you don't want to set $CVSROOT environment variable you can set the -path to the cvs as command line options: -

-

-cvs -d:pserver:silc@silc.pspt.fi:/storage/silc/CVS login - -
-cvs -d:pserver:silc@silc.pspt.fi:/storage/silc/CVS co silc - - -

-What ever method you decide to use, after you have done cvs login you will -be prompted for password: -

-

CVS password: silc -

-Type the password "silc" and press Enter. - -

-The actual SILC source tree is checked out using the cvs co silc command, -described above. This command will fetch the source tree and save it into -directory named silc. SILC CVS repository currently does not have any -branches thus this will check out the trunk. The size of the trunk is -currently about 11 MB but will grow in the future. - - -


-

What SILC Source Tree Includes

-

-SILC Source tree includes a lot more stuff that appears in public -distribution. The source tree includes, for example, internal scripts, -configuration files, SILC webpages etc. These never appear on a public -distribution. -

-Following directories currently exist in SILC source tree. -

- -

-  doc/
-
-        Includes all the SILC documentation.  Some of the documentation
-        are generated when distribution is generated.  The automatically
-        generated files must never be commited to CVS.
-
-  includes/
-
-        Includes SILC include files.
-
-  lib/
-
-        Includes SILC libraries.  There maybe libraries on the CVS that
-        does not appear on public distribution.
-
-  public_html/
-
-        Includes the official SILC web pages and everything that relates
-        to them.  This directory never appears on public distribution.
-
-  silc/
-
-        Includes SILC client.  There can be some extra files that will
-        never appear in public distribution, such as, configuration files.
-
-  silcd/
-
-        Includes SILC server.  There can be some extra files that will
-        never appear in public distribution, such as, configuration files.
-
- - - -


-

Howto Compile SILC Source Tree

- -

-After checkout from CVS the SILC source tree must be prepared for -configuration and compilation. To compile the source tree, give, -

-

-
-	./prepare
-	./configure --enable-debug
-	make
-
-
- -The ./prepare script is included in to the source tree and it never -appears in public distribution. The script prepares the source tree -by creating configuration scripts and Makefiles. The prepare must be -run every time you make some changes to configuration scripts (however, -making changes to Makefile.am's does not require running ./prepare). - -

-As a developer you should read the ./configure script's help by -giving ./configure --help and study all of its different options. Also, -you should configure the script with --enable-debug option as it -compiles SILC with -g (debugging) option and it enables the -SILC_LOG_DEBUG* scripts. Warning is due here: The debugging produced -by both cilent and server is very heavy, thus it is common to test -the programs as follows: -

-

-
-	./silc -d -f configfile 2>log
-	./silcd -d -f configfile 2>log
-
-
- -
-


-

Howto Clean SILC Source Tree

- -

-To entirely clear the source tree to the state after it was checked out -from CVS, give, -

-
-	./prepare-clean
-
-
- -This calls `make distclean' plus removes automatically generated files -by hand. It also removes *.log files. However, it will not remove -any other files you might have created. - -
-


-

Makefiles and configuration files

- -

-Developers should never directly write a Makefile. All Makefiles are -always automatically generated by ./prepare and later by ./configure -scripts. Instead, developers must write Makefile.am files. There -are plenty of examples what they should look like. If you change -Makefile.am during development you don't have to run ./prepare, just -run normal make. -

-Configuration files are the files that ./prepare automatically generates -and what will be included into public distribution. ./prepare creates -for example the ./configure script that is not commited to the CVS. -`configure.in' is the file that developers must edit to change ./configure -script. After changing one must run ./prepare. -


-

- - diff --git a/public_html/docs.html b/public_html/docs.html deleted file mode 100644 index 32b3b167..00000000 --- a/public_html/docs.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -


- - - - - -
- -

-

SILC Documentation

- -

-Currently the SILC documentation is under work and the software does not -have that much of a documentation. -

-README file from the software: README -
-Coding Style in SILC source tree: CodingStyle -

-[Coming later: Software manual, SILC Library Reference manual] - - -


-

SILC Protocol Internet Drafts

-

- -SILC Protocol is documented and four Internet Drafts exists. These -Internet Drafts are also available from -IETF. -

-

  • Secure Internet Live Conferencing (SILC), Protocol Specification -

    -Abstract -

    - This memo describes a Secure Internet Live Conferencing (SILC) - protocol which provides secure conferencing services over insecure - network channel. SILC is IRC [IRC] like protocol, however, it is - not equivalent to IRC and does not support IRC. Strong cryptographic - methods are used to protect SILC packets inside the SILC network. - Three other Internet Drafts relates very closely to this memo; - SILC Packet Protocol [SILC2], SILC Key Exchange and Authentication - Protocols [SILC3] and SILC Commands [SILC4]. -

    - -draft-riikonen-silc-spec-02.txt -


    - -

  • SILC Packet Protocol -

    -Abstract -

    - This memo describes a Packet Protocol used in the Secure Internet Live - Conferencing (SILC) protocol, specified in the Secure Internet Live - Conferencing, Protocol Specification Internet Draft [SILC1]. This - protocol describes the packet types and packet payloads which defines - the contents of the packets. The protocol provides secure binary packet - protocol that assures that the contents of the packets are secured and - authenticated. -

    - -draft-riikonen-silc-pp-02.txt -


    - -

  • SILC Key Exchange and Authentication Protocols -

    -Abstract -

    - This memo describes two protocols used in the Secure Internet Live - Conferencing (SILC) protocol, specified in the Secure Internet Live - Conferencing, Protocol Specification internet-draft [SILC1]. The - SILC Key Exchange (SKE) protocol provides secure key exchange between - two parties resulting into shared secret key material. The protocol - is based on Diffie-Hellman key exchange algorithm and its functionality - is derived from several key exchange protocols. SKE uses best parts - of the SSH2 Key Exchange protocol, Station-To-Station (STS) protocol - and the OAKLEY Key Determination protocol [OAKLEY]. -

    - The SILC Connection Authentication protocol provides user level - authentication used when creating connections in SILC network. The - protocol is transparent to the authentication data which means that it - can be used to authenticate the user with, for example, passphrase - (pre-shared-secret) or public key (and certificate). -

    - -draft-riikonen-silc-ke-auth-02.txt -


    - -

  • SILC Commands -

    -Abstract -

    - This memo describes the commands used in the Secure Internet Live - Conferencing (SILC) protocol, specified in the Secure Internet Live - Conferencing, Protocol Specification Internet Draft [SILC1]. The - SILC Commands are very important part of the SILC protocol. Usually - the commands are used by SILC clients to manage the SILC session, but - also SILC servers may use the commands. This memo specifies detailed - command messages and command reply messages. -

    - -draft-riikonen-silc-commands-00.txt -


    - -

  • - - diff --git a/public_html/download.html b/public_html/download.html deleted file mode 100644 index 63dc0aa1..00000000 --- a/public_html/download.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -


    - - - - - -
    - -

    -

    Download SILC

    -

    - -The latest SILC release is version 0.1. Please, read the README -and INSTALL files after downloading for instructions how to install and -use SILC. -

    -

    -This version has the functional server and router linking -support. People who is running SILC servers and are interested to get the -server linked to the new router on silc.pspt.fi contact -me now.

    -

    -

    Main Download

    -

    -Sources HTTP: -tar.gz (1820 KB), -tar.bz2 (1448 KB) -
    -Sources FTP: tar.gz -(1820 KB) -

    -

    Other packages

    -

    -Mandrake: -i586, - -src -
    -Debian: deb -
    -

    - -

    -

    CVS Snapshots

    -

    -Daily CVS snapshots are available. These are generated 22:00 GMT every -night. Read the CVS page for more information. -

    -HTTP: CVS Snapshot -

    - -

    -

    Portability

    -

    -The SILC has been reported to work on, at least: -

    -

  • Linux -
  • FreeBSD -
  • NetBSD -
  • OpenBSD -
  • HPUX -
  • Solaris -

    - -

  • - - diff --git a/public_html/faq.html b/public_html/faq.html deleted file mode 100644 index d6541c78..00000000 --- a/public_html/faq.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -


    - - - - - -
    - -

    -

    Frequently Asked Questions

    - -

    -Q: What is SILC?
    -A: SILC (Secure Internet Live Conferencing) is a protocol which provides - secure conferencing services in the Internet over insecure channel. - SILC is IRC like 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 secure what IRC is not in any - way. The network model is also entirely different compared to IRC. -


    - -Q: Why SILC in the first place?
    -A: Simply for fun, nothing more. An actually for need back then when - it was started. SILC has been very interesting and educational - project. -


    - -Q: When will SILC be completed?
    -A: SILC still has a lot things to do. The time of completion is much - related to how many interested people is willing to join the effort. - It will be ready when it is ready. The reason for release of the - current development version is just to get it out and people aware - that something like this exist. SILC is not ready for production - use so it is not expected that there is that much of a hype around - SILC. I don't have to hurry... :) -


    - -Q: Why use SILC? Why not IRC with SSL?
    -A: Sure, that is possible, although, does that secure the entire IRC - network? And does that increase or decrease the lags and splits in - the IRC network? Does that provide user based security where some - specific private message are secured? Does that provide security - where some specific channel messages are secured? Security is not - just about applying encryption to traffic and SILC is not just about - `encrypting the traffic`. You cannot make insecure protocol suddenly - secure just by encrypting the traffic. SILC is not meant to be IRC - replacement. IRC is good for some things, SILC is good for same and - some other things. -


    - -Q: Can I use SILC with IRC client? What about can I use IRC with SILC - client?
    -A: Answer for both question is no. IRC client is in no way compatible - with SILC server. SILC client cannot currently use IRC but this may - change in the future if IRC support is added to the SILC client. - After that one could use both SILC and IRC with the same client. - Although, even then one cannot talk from SILC network to IRC network. - That just is not possible. -


    - -Q: Why client/server protocol is based on IRC? Would it be more - interesting to implement something extensible and more powerful?
    -A: They are not, not the least. Have you read the protocol specification? - The client superficially resembles IRC client but everything that - happens under the hood is nothing alike IRC. SILC could *never* - support IRC because the entire network toppology is different - (hopefully more scalable and powerful). So no, SILC protocol (client - or server) is not based on IRC. Instead, I've taken good things from - IRC and leaved all the bad things behind and not even tried to burden - myself with the IRC caveats that will burden IRC and future IRC - projects til the end. SILC client resembles IRC client because it is - easier for new users to start using SILC when they already know all the - commands. -


    - - -Q: Why SILC? Why not IRC3?
    -A: Question that is justified no doubt of that. I didn't start doing SILC - to be replacement for IRC. SILC was something that didn't exist in - 1996 or even today except that SILC is now released. However, I did - check out the IRC3 project in 1997 when I started coding and planning - the SILC protocol. -

    - But, IRC3 is problematic. Why? Because it still doesn't exist. The - project is at the same spot where it was in 1997 when I checked it out. - And it was old project back then as well. Couple of months ago I - checked it again and nothing were happening. That's the problem of IRC3 - project. The same almost happened to SILC as well as I wasn't making - real progress over the years. I talked to the original author of IRC, - Jarkko Oikarinen, in 1997 and he directed me to the IRC3 project, - although he said that IRC3 is a lot of talking and not that much of - anything else. I am not trying to put down the IRC3 project but its - problem is that no one in the project is able to make a decision what - is the best way to go about making the IRC3 and I wasn't going to be - part of that. The fact is that if I would've gone to IRC3 project, - nor IRC3 or SILC would exist today. I think IRC3 could be something - really great if they just would get their act together and start - coding the thing. -


    - -Q: How secure SILC really is?
    -A: A good question which I don't have a answer. SILC has been tried to - make as secure as possible. However, there is no security protocol - or security software that has not been vulnerable to some sort of - attacks. SILC is in no means different from this. So, it is suspected - that there are security holes in the SILC. These holes just needs to - be found so that they can be fixed. -

    - But to give you some parameters of security SILC uses the most secure - crytographic algorithms such as Blowfish, RC5, Twofish, etc. SILC - does not have DES or 3DES as DES is insecure and 3DES is just too - slow. SILC also uses cryptographically strong random number generator - when it needs random numbers. Public key cryptography uses RSA - and Diffie Hellman algorithms. Key lengths for ciphers are initially - set to 128 bits but many algorithm supports longer keys. For public - key algorithms the starting key length is 1024 bits. -

    - But the best answer for this question is that SILC is as secure as - its weakest link. SILC is open and the protocol is open and in public - thus open for security analyzes. -

    - To give a list of attacks that are ineffective against SILC: -

    -

  • Man-in-the-middle attacks are ineffective if proper public key - infrastructure is used. SILC is vulnerable to this attack if - the public keys used in the SILC are not verified to be trusted. - -
  • IP spoofing is ineffective (because of encryption and trusted - keys). - -
  • Attacks that change the contents of the data or add extra - data to the packets are ineffective (because of encryption and - integrity checks). - -
  • Passive attacks (listenning network traffic) are ineffective - (because of encryption). Everything is encrypted including - authentication data such as passwords when they are needed. - -
  • Any sort of cryptanalytic attacks are tried to make ineffective - by using the best cryptographic algorithms out there. -


    -More to come later... -


    - -

  • - - diff --git a/public_html/features.html b/public_html/features.html deleted file mode 100644 index 07624ce7..00000000 --- a/public_html/features.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -


    - - - - - -
    - -

    -

    Features

    - -

    - -Features to be included into the final release of SILC. -

    - -

  • Normal conferencing services such as private messages, channels, - channel messages, etc. All traffic is secured and authenticated. -

    -

  • No unique nicknames. There can be same nicknames in SILC without - collisions. SILC has unique Client ID's, Server ID's and Channel ID's - to assure that there are no collisions. The maximum length of the - nickname is 128 characters. The maximum length of the channel name - is 256 characters. -

    -

  • Channels can have channel operators and a channel founder which is the - client who created the channel. Channel founder privileges supersedes - the channel operator privileges. Also, channel founder privileges - may be regained even if the founder leaves the channel. The - requirement for this is that the client is connected to the same - server it was originally connected. The channel founder cannot - be removed from the channel by force. -

    -

  • Channel messages are protected by channel key, generated by the - server. The key is re-generated once in an hour. It is - possible to set a private key for the channel so that even the - servers does not know the key. Actually, it is possible to set - several private keys so that only specific users on the channel may - decrypt some specific messages. Adding the private key significantly - increases the security as nobody else but the users on the channel - knows the key. -

    -

  • Private messages are protected using the session keys, generated - when connecting to the server. This means that the private messages - are decrypted and re-encrypted enroute to the true receiver of the - message. However, it is possible to set a private key between two - clients and protect the private messages with that key. In this case - no server enroute can decrypt the message since they don't have - the key. The SILC protocol provides an automatic key negotiation - between two clients using the SKE protocol. This makes it very - easy to negotiate a shared secret key with another client in the - network. -

    -

  • All the other traffic, like commands between client and the server - are protected using the session keys. Session keys are re-generated - once in an hour. The re-key may be done with or without the PFS - (Perfect Forward Secrecy). -

    -

  • Secure key exchange and authentication protocol. SILC Key Exchange - (SKE) protocol provides key material used in the SILC sessions in - secure manner. The protocol is immune for example to man-in-the-middle - attacks and is based on the Diffie-Hellman key exchange algorithm. The - SILC Authentication protocol provides strong - authentication. Authentication may be based on passphrase or public - key (RSA) authentication. For clients there is an option not to - use authentication when connecting to servers. -

    -

  • All traffic is encrypted and authenticated using the best cryptographic - algorithms out there. Cipher keys are, by default, 256 bits in length and - public keys, by default, 1024 bits in length. -

    -

  • Supports the following ciphers: AES, Twofish, Blowfish, Mars, - Cast-256, RC5 and RC6. Supports the following hash functions: MD5 and - SHA1. Supports the PKCS #1 (RSA) for public key cryptography. -

    -

  • Supports data compression with GZIP to improve performance. -

    -

  • SIM (SILC Module) support. Support for loading of shared objects at - run-time that provides new and extended features to both SILC client - and server. These can provide extra ciphers and extra features to - the software. -

    -

  • SILC client can be installed and used without root privileges. -

    -

  • SILC client can be configured by system wide configuration files but - with user specific configuration files as well. -

    -

  • - - diff --git a/public_html/history.html b/public_html/history.html deleted file mode 100644 index f36c8919..00000000 --- a/public_html/history.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -


    - - - - - -
    - -

    -

    History

    - -

    -Even though SILC were released in summer 2000 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. -

    -

    - - diff --git a/public_html/index.html b/public_html/index.html deleted file mode 100644 index 8609b8b9..00000000 --- a/public_html/index.html +++ /dev/null @@ -1,126 +0,0 @@ - -

    - -SILC - Secure Internet Live Conferencing -
    - - -
    -


    -SILC Logo - -

    SILC - Secure Internet Live Conferencing

    -

    Welcome to the Secure Internet Live Conferencing project homepage

    - - - - - -
    - - - - - -
    -


    - - - - - - - - - - - - - -
     
     
    - -
    -

    SILC 0.1 Is Now Available!

    -
    - -The new Beta version 0.1 of SILC is available for testing. -Read the README and INSTALL files after downloading for instructions how -to compile and use SILC. Report bugs to the -SILC development mailing list. -

    -

    -This version has the functional server and router linking -support. People who is running SILC servers and are interested to get the -server linked to the new router on silc.pspt.fi contact -me now.

    -

    -Download: SILC 0.1 Beta Version -
    -Changes: SILC 0.1 Changes -

    -

    -


    -

    -
     
     
    - -
    -

    SILC Server Available For Testing

    -
    - -

    -There is SILC server up and running that can be tested. Just give command -/server silc.pspt.fi to connect to the server. There may be some action -on channel #silc (unless everybody is sleeping) so you might want to give -command /join #silc. -

    -Available servers: silc.pspt.fi on port 706 is SILC Router and -silc.pspt.fi on port 707 is normal SILC server connected to the router. -Both are available for free use. -

    -

    -


    -

    -
     
     
    - -
    -

    Developers Wanted For SILC Project

    -
    - -SILC Project needs developers who would like to contribute their time, -skills and ideas to the project. SILC still has a long road ahead before -the first official stable release. -

    -If You would like to contribute to SILC project please contact me at: -priikone at poseidon.pspt.fi -

    -


    -

    -
    - -

    -


    - -
    - -Webpage by Pekka Riikonen -priikone at poseidon.pspt.fi
    -Logos automagically generated with GIMP
    -[ ] hits since June 12 2000
    -
    - - - diff --git a/public_html/lists.html b/public_html/lists.html deleted file mode 100644 index 56fefe22..00000000 --- a/public_html/lists.html +++ /dev/null @@ -1,35 +0,0 @@ - - - -


    - - - - - -
    - -

    -

    Public SILC Mailing Lists

    - -

    -Available since: Sat Jul 22 17:23:48 EEST 2000 -

    - -There is currently one mailing list available. The mailing list is the -main SILC development mailing list. To subscribe to the mailing list visit -the following link and follow the instructions on the web page. -

    - -SILC-devel mailing list - -

    -After you have subscribed as instructed on the web site you will receive -email for further instructions. To send email to the list the email must -be destined to: silc-devel at lists.sourceforge.net address. - -


    -

    - - diff --git a/public_html/press.html b/public_html/press.html deleted file mode 100644 index 89957e45..00000000 --- a/public_html/press.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -


    - - - - - -
    -

    - -

    XXX

    -

    -New Open Source project called Secure Internet Live Conferencing (SILC) -has been started. Initial development version of the software is -available for testing. -

    -SILC (Secure Internet Live Conferencing) is a protocol which provides -secure conferencing services in the Internet over insecure channel. -SILC is IRC like software although internally they are very different. -Biggest similiarity 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 -secure what IRC is not in any way. The network model is also entirely -different compared to IRC. -

    -SILC is an open source (or freeware) project and it has been released -under the GNU General Public Licence. The SILC is free to use and -everyone -is free to distribute and change the SILC under the terms of the GNU GPL. -While there is no guarantee for the product SILC has been tried make -as secure as possible. Developers are needed and everyone is free to -contribute their time, skills and ideas for the project. -

    -Official SILC Project home page: -http://silc.pspt.fi -

    -SILC Development Version is available for download from following -addresses: -

    -HTTP: -silc-28062000.tar.gz (1.1 MB) -
    -FTP: -silc-28062000.tar.gz (1.1 MB) -

    -The SILC protocol specification is available from following addresses: -

    -HTTP: -http://silc.pspt.fi/docs.html -
    -FTP: -ftp://silc.pspt.fi/pub/silc/ -

    -Author's contact information: -

    -Pekka Riikonen -priikone@poseidon.pspt.fi -
    -Home page: -http://poseidon.pspt.fi/~priikone/english/ -

    - - -

    - -

    - - diff --git a/public_html/silc.jpg b/public_html/silc.jpg deleted file mode 100644 index 4af8ca6f..00000000 Binary files a/public_html/silc.jpg and /dev/null differ diff --git a/public_html/silc2.jpg b/public_html/silc2.jpg deleted file mode 100644 index 8d62b72c..00000000 Binary files a/public_html/silc2.jpg and /dev/null differ diff --git a/public_html/todo.html b/public_html/todo.html deleted file mode 100644 index 94c0aaf8..00000000 --- a/public_html/todo.html +++ /dev/null @@ -1,348 +0,0 @@ - - - -


    - - - - - -
    - -

    - -

    TODO

    -

    -

    -
    -TODO
    -====
    -
    -This is more or less complete list of tasks that has to be done before
    -SILC 1.0 could ever be released.  It is clear that the list does not
    -include all the bugs that exists.  At the end of list are tasks that 
    -needs to be done but are probably post 1.0.
    -
    -Feel free to contribute if you have the ability and free time - all the
    -help is really appreciated - and needed.
    -
    -							- Pekka
    -
    -
    -New features TODO
    -=================
    -
    - o Extended SIM (SILC Module) support.  Currently only SILC Cipher API
    -   and SILC Hash API may be used as SIM's.  What I have in mind is to
    -   have extended support for SIM's so that basically any SILC API could
    -   be used as SIM's.  This would open tremendous possiblities but
    -   opens also issues on security that needs to be dealt with.
    -
    -   Some sort of SIM compilation environment should be defined so that
    -   the SIM's could use SILC specific symbols from the modules (which they
    -   cannot do currently).  In the future modules could add new features
    -   to SILC easily with this support.  I'm more thinking this from client's
    -   perspective to add new features to client (such as IRC support as SIM)
    -   but server should have the support as well.  Anyhow, this is an 
    -   interesting feature...
    -
    -   This maybe post 1.0 task - dunno.
    -
    - o SIM support for other platforms than just for Linux.  Apache has
    -   example code (code that we could use directly pretty easily) for
    -   other platforms.
    -
    - o We should replace all short, int, long, unsigned short, unsigned int,
    -   unsigned long with some pre-defined datatypes that really are what
    -   we want on all platforms.  int16, uint16, int32, uint32 etc. are
    -   what we could use or maybe SilcInt16, SilcUInt16 etc.  Also, boolean
    -   datatype should be defined.
    -
    - o More platform supports should be added.  The code is pretty much
    -   generic but there are some parts that require porting (SIM).  Also, 
    -   some support for different platforms is needed into configure.in.
    -
    - o SILC requires currently GCC to work because we use GCC specific 
    -   compilation options.  Generally any compiler that supports inline
    -   functions and can build shared libraries (for SIMs) should work.  
    -   These cases should be included into configure.in.
    -
    -
    -TODO In SILC Client
    -===================
    -
    - o Implement all commands.  A lot of commands are still yet to be
    -   implemented.  Most of them are trivial but some will require some
    -   planning.  Go see the command.c for unimplemented commands.
    -
    - o Non-blocking connection on the background must be stopped if some
    -   other connection on same window has established.  Now it is possible
    -   that some non-blocking connection timeouts on the background when
    -   we already have a working connection to some other place; things
    -   goes bad.
    -
    - o Finish WHOIS, finish JOIN and other commands that are partly
    -   implemented.
    -
    - o Input line on UI is buggy.  Cursor movement etc bugs.  Too lazy to
    -   fix it.
    -
    - o Logic for handling multiple same nicknames for example in private
    -   message sending.  I guess the logic is done in server side but is
    -   missing from client.
    -
    - o Private message key setting is missing and must be implemented.
    -   Currently private messages are encrypted with session keys.  This
    -   is required by the protocol.
    -
    - o Channel private key setting is missing and must be implemented.
    -   Currently there cannot be private keys for channels.  Normal channel
    -   keys (generated by server) are used.  This is required by the protocol.
    -
    - o I guess, public key authentication (when connecting to a server)
    -   is not working currently.  It is just matter of loading the keys
    -   from file and using them (see corresponding code in server, it should
    -   support public key authentication already).
    -
    - o Multiple windows support.  Basic support for multiple windows already
    -   exists but a lot is still missing to get it working.  Also, some
    -   of the existing stuff probably needs to be tweaked a bit before the
    -   multiple windows support could be done.  And of course the actual
    -   commands that control the windows needs to be written (/WINDDOW).
    -
    - o Implement /KEYMAP (or similiar) command to remap control and function
    -   keys.
    -
    - o Implement /ALIAS command to make command aliases.
    -
    - o Implement /set/if/do/while etc as in IRC2.  Maybe post 1.0 task.
    -   Some scripting would be good.
    -
    - o Connection Authentication request resolving is missing and must be
    -   done.  This is required by the protocol.
    -
    - o Key Exchange protocol's responder side is missing from client.  
    -   Generally it is possible for the client to be responder so it should
    -   be implemented (See corresponding code from server).  Error handling
    -   in the KE protocol is also in pretty bad shape in client.
    -
    - o Configuration file format - could be better.
    -
    - o Write help files for commands.  Nice format for the help files should
    -   be selected.  I'm open for ideas.
    -
    - o All allocations and freeing needs to be checked for memory leaks.
    -
    -
    -TODO In SILC Server
    -===================
    -
    - o Implement all commands on server side.  A lot of commands are still yet
    -   to be implemented.  Most of them are trivial but some will require some
    -   planning.  Go see the command.c for unimplemented commands.
    -
    - o DNS/IP lookup blocks the server.  This must be fixed.  Check the
    -   resolver stuff (resolver(3), resolver(5)).  Either we have to do the
    -   own resolver stuff (through scheduler, if possible without writing
    -   too much own stuff) or use threads.
    -
    - o Length of the packet processing timeouts needs to be checked whether
    -   they are too short or too long.  I haven't really tested whether they
    -   are suitable.  They should be tested on high load which I haven't done
    -   at all yet.
    -
    - o INVITE command must set the channel's invite list if channel is 
    -   invite-only channel.
    -
    - o Server says that it is able to listen on multiple ports but currently
    -   that is bogus.  It can, but internals are for single server.
    -
    - o Command flag usage in general is not implemented yet.
    -
    - o Client history must be implemented.  Protocol says that server must
    -   keep history information about clients for some period of time.
    -
    - o Channel flags and user modes on channels are not implemented yet as
    -   /MODE command is not implemented yet in client and server.
    -
    - o Protocol execution timeouts are hard coded, should be configurable.
    -
    - o serverutil.c I guess should be created for util-like functions that
    -   now resides in server.c, which is getting too big.
    -
    - o serverconfig.c and the function naming in it is inconsistent.  It is 
    -   not silc_config_server* it should be silc_server_config*.  As should
    -   all the SilcConfigServer* types be SilcServerConfig*.
    -
    - o Implement DENY_CONNECTION section in serverconfig.c and in server.
    -
    - o Implement REDIRECT_CLIENT section in serverconfig.c and in server.
    -
    - o Configuration file format - could be better.
    -
    - o IP address fields in configuration file should accept mask format
    -   as well, IP/MASK, and not just plain IP.
    -
    - o Connection classes should be actually implemented in serverconfig.c.
    -   They can be defined but they are totally ignored currently.
    -
    - o Acceptance of incoming connections (client and server connections)
    -   should be checked before key exchange protocol.  Currently it is
    -   checked at the authentication phase after KE, that is ok, but it should
    -   be checked before starting KE, as well.
    -
    - o Statistics are totally missing from the server.  It would be nice
    -   to gather some statistics.
    -
    - o All allocations and freeing needs to be checked for memory leaks.
    -
    -
    -TODO In SILC Libraries
    -======================
    -
    - o Implement PFS (Perfect Forward Secrecy) flag in SKE (and in client and
    -   server, actually).  If PFS is set, re-key must cause new key exchange.
    -   This is required by the SILC protocol.
    -
    - o Re-key in general is actually missing (from everywhere) and must be done.
    -
    - o SKE does not send correct status types.  Types are defined but not
    -   sent.
    -
    - o Connection authentication protocol does not send correct status types.
    -   These types are not defined currently at all.
    -
    - o PKCS#1 style RSA public key encryption/decryption/sign/verify is 
    -   missing, and should be added for interoperability reasons.  The thing 
    -   I've done now is bad and should be removed as soon as possible (or 
    -   the protocol should then state the method of how they should be done).
    -
    - o Slow ciphers should be removed.  I think we don't need more than
    -   the AES finalists plus blowfish and RC5.
    -
    - o These slow ciphers actually don't work currently as I've tested
    -   only the ones that are worth testing.  The CBC mode on these slow
    -   ciphers probably don't work.  No need to worry, these ciphers should
    -   be removed.
    -
    - o Scheduler needs to be analyzed on high load as it might be unfair
    -   towards select() because it may run timeout tasks before select() and
    -   after select().  If it is found to be unfair the timeout task running
    -   before select() should probably be removed.
    -
    - o On select() issue; maybe we should use poll() instead if it is
    -   available? poll() doesn't have max fd limit...
    -
    - o SIM support for SILC PKCS API needs to made so that they could be
    -   used as SIM's.  At the same time some work is required on prime
    -   generation as the way it is done now sucks.  Read from code for
    -   more (silcpkcs.h).
    -
    - o Compression routines are missing.  The protocol supports packet
    -   compression thus it must be implemented.  SILC Comp API must be
    -   defined.  zlib package is already included into the lib dir (in CVS,
    -   not in distribution), but it is not used yet, and it requires some
    -   tweaking on the Makefiles (we want static lib not shared).
    -
    - o Cipher API needs to be made more consistent.  Some parts of the
    -   code generated with current Cipher API looks really bad.  Same
    -   is with PKCS API, even worse actually.  They need to be made
    -   cleaner.  Introducing silc_cipher_encrypt/decrypt/set_key etc.
    -   functions (I actually don't understand why have I left these un-done).
    -
    - o Scheduler should automatically allocate task queues if NULL pointers 
    -   are passed to the silc_schedule_init.  Would make initialization 
    -   cleaner.
    -
    - o Packet processing routines in client and server are actually pretty
    -   much generic and should be moved from the client/server to the library
    -   as generic routines (silc__packet_decrypt_rest* etc).
    -   This requires heavy changes to the client and server.
    -
    - o Random Number Generator needs some tweaking.  Reading /dev/random may
    -   block resulting slow initialization of RNG.  Some other things in the
    -   RNG may block as well.  Also, I have some pending changes to the RNG 
    -   that needs to be commited (from Schneier's Yarrow-160 paper).  They 
    -   should make the RNG even better.
    -
    - o Logging should be made more generic in a way that application can
    -   set to where the logging is destined to.  Now, it is always destined
    -   to stdout (or stderr) which is a bad thing for client.  Ie. some
    -   sort of logging registration functions or similiar should be done
    -   (silclog.[ch] in core).  The actual output of logs should be done
    -   by callback function in the application not in lib.
    -
    - o All allocations and freeing needs to be checked for memory leaks.
    -
    - o silc_buffer_[un]format() needs to be made more stable as it may
    -   crash the SILC if malformed data is sent as argument.  There are a
    -   lot of places in client and server where we trust directly data coming
    -   from network and try to unformat it.  The unformatting routine needs
    -   to be able handle situations where data sent is malformed, by mistake
    -   or intentionally.  This is important as it is easy to crash the SILC
    -   now by just sending malformed data.  Also, in client and server we
    -   must start checking the return value from silc_buffer_[un]format.
    -
    -
    -Other Things TODO
    -=================
    -
    - o Write manuals for server.
    -
    - o Write manuals for client.
    -
    - o Write SILC Library Reference manual.  This would include all the SILC
    -   API's with simple examples how the functions are to be used.  This is
    -   pretty easy to create by taking all the functions plus their comments
    -   from source/header files.  However, same sort of reference manual 
    -   should be written for client and server as well.
    -
    -
    -TODO After 1.0
    -==============
    -
    - o Pthreads support.  A lot of problems are solved with server (and with
    -   client as well) if we add pthread support.  We can forget things such
    -   as non-blocking connecting etc, and we can do things such as DNS/IP
    -   lookups async.  The server itself also benefits great deal from 
    -   threads, especially from performance point of view.
    -
    -   But, this is not a small task and almost entire SILC Library has to
    -   be made re-entrant.  Own API is probably added for the threads support
    -   to make changes in the future as painless as possible.  So the API 
    -   would have things like silc_mutex_lock, silc_mutex_unlock and 
    -   friends...
    -
    - o X.509 certificate support.  SILC protocol supports certificates and
    -   it would be great to have support for them.  This is a big task as
    -   support has to be made for ASN.1 as well.  I've looked into OpenSSL 
    -   package as it has X.509 certificate support (and ASN.1 as well).  
    -   The code does not look very good to my eye but it has some potentials.
    -   This should be looked at more closely.
    -
    -   Naturally own SILC Certificate API has to be defined regardles what
    -   the actual X.509 library is (OpenSSL X.509 or something else).  Other
    -   choice is to write own X.509 library but I'm not going to do it - 
    -   I can help to migrate the OpenSSL X.509 into SILC and I can help if 
    -   someone would like to write the X.509 library - but I'm not going 
    -   to start writing one myself.  Anyhow, the OpenSSL X.509 lib should
    -   be checked.
    -
    - o SSH2 public keys support.  Maybe - not really needed but could be
    -   nice as SSH is widely used all over the place.  SILC Protocol 
    -   supports SSH2 public keys.
    -
    - o IRC support for SILC client.  This would be nice to have on client
    -   as it could be used to connect to SILC and IRC.  People wouldn't
    -   have to have two different clients when same would work on both.
    -   I'd like to see this done as SIM, after the extended SIM support
    -   has been added to SILC.
    -
    - o Cipher optimizations (asm, that this) at least for i386 would be nice.
    -
    -

    - -

    - -