From b34ab0885dc14ff81011ce282ebead115cce2757 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Sun, 29 Apr 2001 19:31:05 +0000 Subject: [PATCH] removed --- public_html/about.html | 86 -------- public_html/contribute.html | 39 ---- public_html/copying.html | 388 ------------------------------------ public_html/cvs.html | 215 -------------------- public_html/docs.html | 110 ---------- public_html/download.html | 71 ------- public_html/faq.html | 154 -------------- public_html/features.html | 94 --------- public_html/history.html | 68 ------- public_html/index.html | 126 ------------ public_html/lists.html | 35 ---- public_html/press.html | 72 ------- public_html/silc.jpg | Bin 7269 -> 0 bytes public_html/silc2.jpg | Bin 11150 -> 0 bytes public_html/todo.html | 348 -------------------------------- 15 files changed, 1806 deletions(-) delete mode 100644 public_html/about.html delete mode 100644 public_html/contribute.html delete mode 100644 public_html/copying.html delete mode 100644 public_html/cvs.html delete mode 100644 public_html/docs.html delete mode 100644 public_html/download.html delete mode 100644 public_html/faq.html delete mode 100644 public_html/features.html delete mode 100644 public_html/history.html delete mode 100644 public_html/index.html delete mode 100644 public_html/lists.html delete mode 100644 public_html/press.html delete mode 100644 public_html/silc.jpg delete mode 100644 public_html/silc2.jpg delete mode 100644 public_html/todo.html 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 4af8ca6f4ee490ca28b4f5d92ef2c87ef84da41d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7269 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 Pf7crP-}TFNGyOjRhacu3 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.
    -
    -

    - -

    - - -- 2.24.0