+Sat Jun 2 10:45:09 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed a bug in Irssi SILC client; do not show that you are
+ server/router operator if you really are not. Affected file is
+ irssi/src/silc/core/client_ops.c.
+
+ * Renamed silc_command_free_payload to silc_command_payload_free.
+ Affected file lib/silccore/silccommand.h
+
+ * Added silcmath.h to include the prototoypes of various routines
+ in the lib/silcmath. Removed the old modinv.h, mpbin.h and
+ silcprimegen.h.
+
+ * Changed the following headers to ROBODoc format:
+
+ lib/silccore/silcchannel.h
+ lib/silccore/silccommand.h
+ lib/silccore/silcid.h
+ lib/silccore/silcidcache.h
+ lib/silccore/silcmode.h
+ lib/silccore/silcnotify.h
+ lib/silccore/silcpacket.h
+ lib/silcmath/silcmath.h
+
+Fri Jun 1 22:19:37 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added checking to the server code not to start the server if
+ ciphers and stuff are not configured properly. Affected files
+ silcd/serverconfig.[h] and silcd/server.c.
+
+ * Changed the layout of the header files of the public interfaces
+ in the SILC libraries. The new layout supports ROBODoc
+ documentation tool (and some others) so that it is easy to create
+ a library reference manual. All the other headers and source
+ code must still follow the CodingStyle document. Also source
+ code must not include these ROBODoc stuffs, only the headers.
+ Furthermore, all public interface headers must now be named
+ by using `silc' prefix, example: silcapi.h, silccipher.h.
+ Some files were renamed due to this. All the other headers
+ must not be used as public interfaces. I will update the
+ CodingStyle document later. Changed following headers, so far:
+
+ lib/silcclient/silcapi.h
+ lib/silccore/silcauth.h
+ lib/silccore/silcprivate.h
+ lib/silccrypt/silcdh.h
+
+Fri Jun 1 10:28:09 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Updated TODO.
+
+ * Removed silc_client_packet_send_flush from the client library
+ as it is not needed. Affected file lib/silcclient/client.[ch].
+
+ * Added printing of message of unresolved authentication method
+ to the Irssi SILC client. Added it to the module formats.
+ Removed the same message from the client library.
+
+Thu May 31 13:57:33 CEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added new distribution feature, DISTLABEL. Every distribution
+ can define own preprocessor label that can be used in the
+ source code. For example: #ifdef SILC_DIST_CLIENT. Affected
+ file distributions, acconfig.h.pre and prepare.
+
+Tue May 29 22:16:40 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added Makefile.defines_int to include the actual definitions
+ for Makefile.defines.in. Tested the new distribution system,
+ created distributions and tested installation.
+
+ * Added AWAY message printing to the Irssi SILC client. Added
+ the messages to the irssi/src/fe-common/silc/module-formats.[ch].
+
+ * Added SCONNECT command to call the SILC's CONNECT command.
+ Cannot use CONNECT directly since Irssi uses that internally.
+ Affected file irssi/src/silc/core/silc-servers.c.
+
+ Added ACTION local command. It is same as ME command but takes
+ the channel as mandatory argument.
+
+ Rewrote some of the Irssi's help files to suite for SILC
+ protocol.
+
+Mon May 28 19:05:22 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added Makefile.defines[.in] that should for now on be included
+ in all Makefile.am file in the source tree. That file includes
+ all common compilation definitions for SILC source tree.
+
+Mon May 28 10:30:51 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Minor changes to the ./prepare script to change the package
+ name according the distribution name to the configure.in.
+
+Sun May 27 22:24:57 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Created new distribution system. Added file `distributions'
+ that defines all the distributions that can be created out of
+ the SILC source tree. The ./prepare script now reads that
+ file to determine how to prepare the distributions. The
+ first argument to the ./prepare is the name of the distribution
+ and second is the version of the distribution. If given
+ without arguments it creates the default (toolkit) distribution
+ with the default version (defined in ./prepare).
+
+ All Makefile.am files that are subject to the distributions
+ are now named as Makefile.am.pre. These are ./Makefile.am
+ and lib/Makefile.am. Others may be changed later.
+
+Sun May 27 15:57:17 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added invite list, ban list, some key management and connection
+ error message printing to module formats in the Irssi SILC client.
+
+ * Added new silc_client_set_away_message to set the away message
+ that is back to the person who sent private message. The
+ affected file lib/silcclient/silcapi.h and the
+ lib/silcclient/client_prvmsg.c.
+
+Sun May 27 12:39:48 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed the private message sending in the Irssi SILC client,
+ added local command KEY to the Irssi SILC client.
+
+ Added key management and key agreement message formats to the
+ irssi/src/fe-common/silc/module-formats.[ch].
+
+ Added USERS (alias WHO) printing, server/router operator
+ indication and LIST command printing to the module formats.
+
+Sat May 26 17:43:42 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed channel joining notify handling, cumode notify handling
+ from Irssi SILC client.
+
+ * Added SILC specific module-formats to the Irssi SILC client so
+ that SILC specific message hilighting, colors etc is possible.
+ Affected file irssi/src/fe-common/silc/module-formats.[ch].
+
+ Added channel mode, channel user mode, actions, notices,
+ whois and whowas printing to the the module-formats.c.
+
+ * Fixed a bug in channel deletion in the server. The channel
+ is not left to the cache even if the channel founder auth mode
+ is set when there are no users anymore on the channel. Affected
+ file silcd/server.c.
+
+ * The silc_net_localhost now resolves the entire hostname including
+ the domain name. Affected file lib/silcutil/silcnet.c.
+
+Sat May 26 12:13:37 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Changed the ask_passphrase client operation to be ascynchronous.
+ It has now a completion callback and a context that the
+ application must call after it has got the passphrase from
+ the user. Affected files lib/silcclient/silcapi.h,
+ lib/silcclient/protocol.c, lib/silcclient/command.c and
+ silc/client_ops.c.
+
+ Added SilcAskPassphrase callback that the application calls
+ to deliver the passphrase to the library.
+
+ * Changed the SKE protocol's SilcSKEVerifyCb to be asynchronous.
+ The public key verification and especially a certificate
+ verification is asynchronous procedure.
+
+ Added new SILC_SKE_STATUS_PENDING status to indicate the
+ request is pending and a callback will be called to finalize
+ the request.
+
+ Added also SILC_SKE_STATUS_PUBLIC_KEY_NOT_PROVIDED status to
+ indicate that remote end did not send its public key (or
+ certificate), even though we require it. Added check for this
+ condition in the SKE. This was a security bug, now fixed.
+
+ Defined new SilcSKEVerifyCbCompletion callback that is called
+ when the verification process is completed.
+
+ The affected files lib/silcske/silcske_status.h and
+ lib/silcske/silcske.[ch].
+
+ * Changed the verify_public_key client operation to be async
+ as well. Defined SilcVerifyPublicKey callback that is used to
+ indicate the success of the public key verification process.
+
+ Changed the server and client to use the new async client
+ operations.
+
+ * Changed the Irssi SILC client's internal scheduler to be called
+ twice as many times as it used to be. As a result the client
+ should be a bit faster now. Affected file is
+ irssi/src/silc/core/silc-core.c.
+
+ * Added support to Irssi SILC client of asynchronous public key
+ verification and passphrase inquiry. Affected file is
+ irssi/src/silc/core/silc-core.c.
+
+Fri May 25 14:38:38 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Do not say "You have left channel %s" in client library.
+ Moved it to the application. Affected files are
+ lib/silcclient/command.c and silc/client_ops.c.
+
+ * Fixed silc_client_get_clients. Command context was not
+ duplicated and was freed memory in the callback. Affected
+ file lib/silcclient/idlist.c.
+
+ * Do not say "you are now talking..." on JOIN command in the
+ client library. The appliation must handle it.
+
+ * Do not say ".. changed topic to" in command reply in the
+ client libary. The application must handle it.
+
+ * Fixed TOPIC command sending in the client library.
+
+ * Fixed a memory leak in silc_client_command_free in the file
+ lib/silcclient/command.c.
+
+Thu May 24 19:08:55 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Imported a modified version of Irssi client to the source tree.
+ The Irssi will be used to create a new client called
+ Irssi SILC. Imported to irssi/.
+
+ Added silc_core_init_finish function to the Irssi. Affected
+ file irssi/configure.in.
+
+ A lot changes in the Makefile.ams around the irssi tree.
+
+Tue May 22 22:23:49 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Do not rehash if the new size is same as the old size of the
+ hash table, in the silc_hash_table_rehash*. The affected file
+ lib/silcutil/silchashtable.c.
+
+ * Replaced hash_table_del_by_context calls from the server
+ (when channel->user_list and client->channels) to the
+ hash_table_del as it is sufficient and faster.
+
+Tue May 22 17:27:16 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added silc_hash_table_list, silc_hash_table_get and the
+ SilcHashTableList structure to provide an alternative way to
+ traverse the hash table. The affected files are
+ lib/silcutil/silchashtable.[ch].
+
+ * Changed the server's idlist routines to use the hash table
+ routines to optimize the code.
+
+Mon May 21 21:46:20 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Replaced the client entry's `channel' list and channel entry's
+ `user_list' list to hash tables for optimized lookup. Changed
+ the code to use the hash table interface around the code.
+ Affected file lib/silcd/idlist.[ch].
+
+ * Added `auto_rehash' boolean argument to the function
+ silc_hash_table_alloc to indicate whether the hash table should
+ auto-rehash when it thinks is appropriate time. It will
+ increase the hash table size if the there is twice as much
+ entries in the table than the size of the table, and will
+ decrease the size if there are twice as less entries than
+ the size of the table.
+
+Mon May 21 09:51:11 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed silc_xxx_get_supported to not crash at some circumstances.
+
+Sun May 20 13:45:58 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * silc_idcache_purge_by_context deletes the entry now by context
+ as it is supposed to do. Affected file lib/silccore/idcache.c.
+
+ * Send the ERR_NO_SUCH_NICK in the WHOIS command reply if the
+ client is not anymore valid (WHOWAS givens the info) and not
+ the ERR_NO_SUCH_CLIENT_ID if the nickname still exists.
+
+Sat May 19 16:30:03 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Removed the `data' and `data_len' arguments from the ID Cache
+ interfaces and added `name' argument. ID Cache does not handle
+ anymore the binary data only a names associated with given ID.
+
+ * When hashing a Client ID with silc_hash_id the entire ID is
+ not hashed anymore, instead only the hash of the Client ID is
+ hashed. This way we can access the Client ID from the cache
+ with Client ID but with the hash of the ID (which is a hash of
+ the nickname) as well without any difference in performance.
+
+ Added also silc_idcache_find_by_id_one_ext to do one on one
+ searching when we have the actual ID. Added also function
+ silc_hash_client_id_compare. The affected files are
+ lib/silccore/idcache.[ch] and lib/silcutil/silcutil.[ch].
+
+ * When hashing the name associated with a ID it is always done
+ in lowercase. This way we can access the cache without worrying
+ about case-sensitivity, even though, for example nicknames are
+ case sensitive.
+
+ * Fixed a bug in server with channel message sending. It put
+ wrong ID type as destination ID. The affected file
+ silcd/packet_send.c.
+
+ * silc_idcache_del_by_context now deletes from all hash tables
+ by context. Affected file lib/silccore/idcache.c.
+
+Fri May 18 17:42:00 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Changed the client library to use the new ID Cache interface.
+ Changes around the source tree.
+
+ * Added silc_hash_table_rehash_ext to rehash with specific
+ hash function. Affected file lib/silcutil/silchashtable.[ch].
+
+ * Added silc_hash_string_compare to compare two strings in the
+ hash table. Affected file lib/silcutil/silcutil.[ch].
+
+Fri May 18 11:18:45 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added new function silc_idcache_del_by_context into the
+ lib/silccore/idcache.[ch].
+
+ * Changed the server's ID list routines to use the new ID Cache
+ interface. Changes around the source tree.
+
+Fri May 18 08:35:31 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added silc_hash_table_del[_by_context]_ext functions in to the
+ lib/silcutil/silchashtable.[ch].
+
+ Removed silc_hash_table_find_all* routines and added new
+ silc_hash_table_find_foreach to replace them.
+
+ Added silc_hash_table_replace_ext function as extended
+ replacing function. Separated the simple hash table interface
+ from the extended hash table interface in the file
+ lib/silcutil/silchashtable.h.
+
+ * Fixed minor bugs and changed it to use some of the new
+ hash table functions in lib/silccore/idcache.c
+
+Thu May 17 18:15:12 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added new function silc_hash_table_find_all to return all keys
+ in the hash table by the specified key. As the hash table is
+ collision resistant it also makes it possible to have several
+ duplicate keys in the hash table. This function may be used to
+ find all of the keys from the hash.
+
+ Added user_context arguments to the SilcHashFunction,
+ SilcHashCompare and SilcHashDestructor to deliver user specified
+ context.
+
+ Added new fuctions silc_hash_table_find[_all]_ext to do
+ extended lookup with specified hash and compare functions and
+ specified user contexts.
+
+ Added new function silc_hash_table_add_ext to add the key
+ with specified hash function and user context.
+
+ Added new function silc_hash_table_foreach to traverse all
+ entrys in the hash table. Added SilcHashForeach callback
+ function.
+
+ Added new function silc_hash_table_del_by_context to delete
+ the entry only if the context associated with the key matches.
+
+ Affected files are lib/silcutil/silchashtable.[ch].
+
+ * Removed silc_hash_[server/client/channel]_id and added just
+ silc_hash_id to the lib/silcutil/silcutil.[ch]. Added also
+ silc_hash_id_compare to compare two ID's using as the hash table
+ comparison function. Added also silc_hash_data to hash
+ binary data and silc_hash_data_compare to compare it.
+
+ * Removed silc_idlist_find_client_by_hash as it is not needed
+ anymore. Affected file silcd/idlist.[ch].
+
+ * Rewrote the entire ID Cache system (in lib/silccore/idcache.[ch])
+ to use internally the SilcHashTable. The new ID Cache is a lot
+ faster than the old one. Some of the ID Cache interface was also
+ rewritten and obsolete and stupid functions were removed.
+
+Wed May 16 23:03:30 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added entry_count field to the SilcHashTable to keep the number
+ of the entries in the table. Implemented the function
+ silc_hash_table_rehash. Added new function
+ silc_hash_table_count. Affected file lib/silcutil/silchashtable.c.
+
+ Fixed a minor bug in silc_hash_table_free.
+
+ * Added silc_hash_string, silc_hash_uint, silc_hash_ptr,
+ silc_hash_client_id, silc_hash_server_id and silc_hash_channel_id
+ into the lib/silcutil/silcutil.[ch].
+
+Wed May 16 20:02:47 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Implemented a collision resistant hash table into the
+ lib/silcutil/silchashtable[ch]. See the header and the source
+ for the SilcHashTable API.
+
+Tue May 15 22:05:46 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Merged dotconf version 1.0.2 into lib/dotconf.
+
+Sun May 13 19:32:09 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Do not compile anything in lib/silcsim/* if the SIM support
+ is not enabled. The tree should now compile without problems
+ under cygwin.
+
+Thu May 10 22:49:51 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Compiled the SILC under cygwin. Compiled and tested briefly
+ without problems. More tests needed. The SIMs didn't compile
+ though.
+
+ * Added various #ifdef HAVE_* stuff to lib/silccrypt/silrng.c.
+
+ * Fixed possible crash in silc_get_username in the
+ lib/silcutil/silcutil.c.
+
+Tue May 8 09:04:03 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed a va_arg in silc/client_ops.c.
+
+ * Oops, RC5 routines were named AES and caused some problems
+ when not using SIM's. Affected file lib/silccrypt/rc5.c.
+
+Sun May 6 13:59:48 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added new SilcIDIP structure into the lib/silccore/id.h and
+ replaced the old `ip' fields from all SILC ID's to that type.
+ This is a step towards IPv6 support.
+
+ The silc_id_get_len takes now the ID as an extra argument.
+ The silc_id_id2str, silc_id_str2id and silc_id_dup now supports
+ both IPv4 and IPv6 based ID's.
+
+ The affected files are lib/silccore/id.[ch] and other files
+ around the tree using these routines.
+
+ * Removed the ID length arguments in server from various
+ silc_server_send_notify_* routines -> they are not needed
+ anymore.
+
+Sat May 5 13:56:33 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed memory leak in silc_encode_pem_file in the file
+ lib/silcutil/silcutil.c.
+
+Thu May 3 21:23:50 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Check minor version as well in the SKE. Affected files are
+ silcd/protocol.c and lib/silcclient/protocol.c.
+
+ * Added --identifier option to the server so that an identifier
+ can be when creating the public key for the server. Affected
+ file is silcd/silcd.c.
+
+ * Fixed minor decoding bug in silc_pkcs_decode_identifier in
+ lib/silccrypt/silcpkcs.c.
+
+Wed May 2 20:50:49 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Register default ciphers and stuff when using -C option with
+ the server. Affected file sildc/silcd.c.
+
+ * Put back the servers public key filename format, it is better
+ than the new one. For now, the client keys are saved with the
+ new filename format. The affected file silc/client_ops.c.
+
+ * Implemented the Cipher API for the rest of the ciphers that
+ did not implement it or implemented it the wrong way.
+
+Wed May 2 13:31:26 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Register default ciphers and stuff when using the -S option
+ in the client. Affected file silc/silc.c. Same also when
+ creating new key pair with -C option.
+
+Tue May 1 14:18:13 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed the silc_verify_public_key client operation function to
+ save the public keys differently. The fingerprint is now
+ used as filename and not the hostname. This way also the
+ client keys are saved uniquely and not with hostnames. The
+ affected file is silc/client_ops.c.
+
+ * Trimmed the silc_hash_fingerprint function to remove extra
+ whitespaces from the end of the fingerprint. The affected
+ file is lib/silccrypt/silchash.c.
+
+ * Updated TODO.
+
+ * Added silc_cipher_register_default function to register all
+ default ciphers. It can be used when configuration files
+ does not exist and the application does not want any specific
+ ciphers in any specific order.
+
+ The SilcDList is now used as silc_cipher_list dynamically
+ allocated cipher list. Removed the static list all together
+ and now all ciphers must be allocated to the dynamic list.
+ The silc_cipher_alloc routine was changed to check only the
+ dynamic list.
+
+ All silc_cipher_* routines that used to return int returns
+ now bool.
+
+ The affected files lib/silccrypt/silccrypt.[ch].
+
+ * The same thing was done to silc_hash_* as for silc_cipher_*
+ routines. Affected files lib/silccrypt/silchash.[ch].
+
+ * The same thing was done to silc_pkcs_* as for silc_cipher_*
+ routines. Affected files lib/silccrypt/silcpkcs.[ch].
+ Added also silc_pkcs_[un]register[_default] functions.
+ Removed the data_context from the PKCS API.
+
+ * Added silc_hmac_register_default function to register default
+ hmacs. Affected files lib/silccrypt/silchmac.[ch]. Added also
+ SILC_ALL_HMACS macro that can be used with silc_hmac_unregister
+ to unregister all hmacs at once.
+
+ * Register the default ciphers, hash functions, PKCSs and HMACs
+ if client's configuration file does not exist. The affected
+ file silc/silc.c.
+
+ * The client did not load the hash functions from the SIM
+ modules at all. Added support for this. Affected file is
+ silc/clientconfig.c.
+
+ * When decoding public key with silc_pkcs_public_key_decode, check
+ the supported algorithm only if PKCS are registered. Affected
+ file lib/silccrypt/silcpkcs.c. The same was done with the
+ silc_pkcs_private_key_decode.
+
+ * Fixed the SILC List routines to keep the list always in order.
+ It used to change the list's order when traversing the list but
+ not it preserves the order. Affected file lib/trq/silclist.h.
+
+Mon Apr 30 17:29:03 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added the client library to use the SilcSocketConnection's
+ reference counter (by silc_socket_dup) to prevent the bug that
+ the socket object may be freed underneath async operation.
+
+ * The name resolv library checking fixes in the configure.in.pre.
+ The patch by salo.
+
+ * Created new version of the protocol drafts for future
+ development. The -03 drafts are the ones that will be changed
+ in the trunk now and the -02 will remain as they are.
+
+ * Send list of CUMODE notifys to the router when announcing
+ the channel users to the router. Affected file silcd/server.c.
+ If the router receiving channel founder CUMODE for a channel
+ that already has channel founder it will send CUMODE notify
+ to the sender to remove the channel founder rights from the
+ announced client. Affected file silcd/packet_receive.c.
+
+ * The CUMODE notify may now use Server ID as well as the entity
+ who changes the mode. Updated protocool specs.
+
+ * Updated INSTALL and README files.
+
+Sun Apr 29 23:17:50 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * New web pages in the http://silc.pspt.fi. The pages was
+ designed by salo.
+
+ * Updated CREDITS.
+
+Sun Apr 29 13:33:41 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Implemented the [DenyConnectin] config section in the server.
+ Added silc_server_config_denied_conn to check whether incoming
+ connection is denied. Affected file silcd/serverconfig.[ch].
+
+ * Do not check the ports when checking the incoming configuration
+ data if the port is 0, meaning any. Affected file is
+ silcd/serverconfig.c.
+
+Fri Apr 20 18:58:43 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed buffer overflow in silc_string_compare in the file
+ lib/silcutil/silcutil.c.
+
+ * Fixed double free in silc_server_command_leave in the file
+ silcd/command.c.
+
+Fri Apr 20 14:00:11 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed the version checking in the server. Affected file is
+ silcd/protocol.c.
+
+Thu Apr 19 19:52:46 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed the configuration data fetching when accepting new
+ connections in the server. Affected file silcd/server.c.
+
+Thu Apr 19 11:40:20 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added `sender_entry' argument to the function
+ silc_server_packet_relay_to_channel so that we can check
+ whether some destination actually belongs to the same route
+ the sender belongs (ie, we must not resend the packet to the
+ sender). Affected file silcd/packet_send.[ch].
+
+ * Added `servername' field to the SilcClientEntry in the server
+ to hold the name of the server where client is from. Affected
+ file is silcd/idlist.h.
+
+Wed Apr 18 22:19:03 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Moved the channel message encrypting in the router betwen
+ router connections from silc_server_channel_message to the
+ silc_server_packet_relay_to_channel since we want to check
+ whether we have anybody channel before encrypting anything.
+ Affected files silcd/packet_[receive/send].c.
+
+Tue Apr 17 21:18:19 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed the [AdminConnection] server config section to support
+ multiple entries. Affected file silcd/serverconfig.c.
+
+ * Added support into the server to check the validity of the
+ incoming connection before executing any KE or authentication
+ protocols.
+
+ * The connection configuration is now saved to the KE and
+ connection auth protocol contexts and not fetched anymore in
+ the protocol. Affected files silcd/server.c, silcd/protocol.[ch].
+
+ * The local hosts listenning address and port is also resolved
+ now when starting the server. We want to have the socket object
+ to include the real address and port for the listener. Added
+ new function silc_net_check_local_by_sock into the files
+ lib/silcutil/silcnet.[ch].
+
+ * Fixed a broadcast bug in server -> do not broadcast if we
+ are standalone.
+
+ * Fixed a routing bug. Do not route broadcast packets ever.
+ Broadcast packets must be processed always and not routed since
+ they may be destined to some other host than yourself and thus
+ would get routed without no good reason. Affected file is
+ silcd/server.c.
+
+ * Added function silc_server_config_is_primary_route to check
+ whether primary router connection has been configured (a router
+ configuration that we are initiating). If there is not, we
+ will assume that there is only two routers in the SILC network
+ and we will use the incoming router connection as our primary
+ route. Affected files silcd/serverconfig.[ch], silcd/server.c.
+
+ * Changed the order of the broadcasting. Broadcast _after_ the
+ packet has been processed not before. Affected file is
+ silcd/server.c.
+
+ * Fixed a [ClientConnection] parsing bug. The port was never
+ parsed correctly thus resulting to port 0. Affected file
+ silcd/serverconfig.c.
+
+ * Fixed silc_server_send_notify_args -> it ignored the `broadcast'
+ argument and did not set the broadcast packet flag. Affected
+ file silcd/packet_send.c. Fixed same bug in the function
+ silc_server_send_notify as well.
+
+ * If we receive NEW_ID packet for our own ID in the server, ignore
+ the packet.
+
+Mon Apr 16 12:10:33 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Updated TODO.
+
+ * Removed the nickname from the Private Message Payload.
+ Updated the code and the protocol specs.
+
+ * Updated protocol specs for submitting to the IETF.
+
+ * Tweaked the Random Number Generator a bit. Affected file
+ lib/silccrypt/silcrng.c. Exported a new function
+ silc_rng_[global]_add_noise which can be used to add more
+ noise to the RNG.
+
+Sat Apr 14 16:21:32 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Do not parse packets with different timeout when protocol
+ is active -> may cause problem with rekey. Affected file
+ silcd/server.c.
+
+ * When server receives signoff notify it must not create
+ new channel key if the client is on any channels since the
+ sender of the signoff notify will create it.
+
+Fri Apr 13 17:12:46 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added printing of error messages during SKE protocol from the
+ failure packet sent by server during SKE. Affected file
+ silc/client_ops.c.
+
+ * Removed the client's failure_callback handling with timeout
+ and handle it immediately when received.
+
+ * The SKE library returned wrong type in SUCCESS and FAILURE
+ packets. They must be 32 bit MSB not 16 bit MSB.
+
+Fri Apr 13 00:09:08 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Ok, rewrote the logic of the re-key and now it seems to work.
+ I tested it on high traffic with frequent re-keys without
+ problems. Added hmac_receive (and renamed hmac to hmac_send)
+ in SilcClientConnection in lib/silcclient/client.h and
+ in SilcIDListData in silcd/idlist.h. Also, removed the
+ SilcPacketParserContext's cipher and hmac fields as they are
+ not needed anymore and actually caused some problems when
+ the ciphers and hmac's changed underneath the packet parser.
+
+Thu Apr 12 14:42:51 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * If re-key protocol is active then process the incoming packets
+ synchronously since we must assure that icoming packets encrypted
+ with the old key is processed before the new keys is set to
+ use. This is true other packets than for REKEY packets.
+ Affected file silcd/server.c. The same was done to client library
+ as well, affected file lib/silcclient/client.c.
+
+Thu Apr 12 12:01:52 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed bug in client and server to accept the force send if
+ the packet is send from silc_[server/client]_packet_process
+ function. Otherwise the packets are never delivered, oops.
+
+Wed Apr 11 22:10:15 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Disable force sending of packets when REKEY protocol is active.
+ We must assure that no packet is sent directly when rekey is
+ performed. All packets must be sent through packet queue.
+ Added macro SILC_SERVER_IS_REKEY to silcd/server.h and
+ SILC_CLIENT_IS_REKEY to lib/silcclient/client.h. Affected
+ function is silc_[server/client]_packet_send_real to check
+ the situation.
+
+ * Replaced the SIM paths from example config files to
+ /usr/local/modules. Also, make install creates now
+ /usr/local/silc/logs directory to hold all the SILC server
+ logs.
+
+Wed Apr 11 16:59:59 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Made the configure.in.pre work on Solaris. Patch by salo.
+
+ * Made all ciphers compatible with non-x86 machines. Defined
+ CBC mode macros into lib/silccrypt/ciphers_def.h.
+
+Tue Apr 10 20:32:44 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed the make install.
+
+Tue Apr 10 16:20:34 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * When MAC computation fails the silc_packet_decrypt returned 0
+ even though it was supposed to return -1. Fixed this. The
+ affected file is lib/silccore/silcpacket.c.
+
+ * Do not replace the config files in /etc/silc (in make install)
+ if they already exist. Affected file ./Makefile.am.
+
+ * Do not send re-key packets immediately but through packet queue.
+ Affected file silcd/protocol.c and lib/silcclient/protocol.c.
+
+ * Changed silc_net_check_host_by_sock to return FALSE if the
+ IP/DNS could not be resolved. Though, it returns the IP address
+ now even if it could not resolve it (but returns also FALSE).
+ Affected file lib/silcutil/silcnet.[ch].
+
+Mon Apr 9 21:54:44 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added silc_pkcs_decode_identifier to decode the public key's
+ identifier. Affected file lib/silccrypt/silpkcs.[ch].
+ Added also silc_pkcs_free_identifier. Added also new context
+ SilcPublicKeyIdentifier.
+
+ * Added -S option to the silc client. It is used to dump the
+ contents of the specified public key file.
+
+ * Changed the PKCS api to return the public key length when
+ setting the public key.
+
+ * Fixed a fatal bug in the public and private key file loading.
+ Affected file lib/silccrypt/silcpkcs.c.
+
+ * Execute the packet parsing for client with zero (0) timeout
+ if the protocol is active. Affected file silcd/server.c.
+
+Sun Apr 8 19:30:56 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Made the key generation options to the silcd program. Added
+ -C option, equivalent to client's option.
+
+ * Added new [ServerKeys] config section to the server. It
+ configures the server's public and private key.
+
+ * Defined generic Public Key Payload into the protocol
+ specification to send specific type of public keys and
+ certificates.
+
+ * Defined new command SILC_COMMAND_GETKEY to fetch a client's
+ public key or certificate.
+
+ * Implemented the GETKEY command to the server and to the
+ client library and on user interface.
+
+Sun Apr 8 01:37:21 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Made preliminary `make install' work.
+
+Thu Apr 5 17:42:30 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added SilcServerRekey context into silcd/idlist.h.
+
+ * Added the PFS support as defined in the specification to the
+ SKE protocol. Affected files lib/silcske/*.c.
+
+ * Added `ske_group' field to the SilcServerRekey context to hold
+ the number of the SKE group that is used with PFS in re-key.
+ Affected file silcd/idlist.h.
+
+ * Added PFS re-key support to the server. Affected file is
+ silcd/protocol.c.
+
+ * Added silc_protocol_cancel to cancel execution of the next
+ state of the protocol. Affected file is
+ lib/silccore/silcprotocol.[ch].
+
+ * Added the re-key support with and without PFS to the client
+ library. Re-key is performed once in an hour, by default.
+
+ Added new protocol type SILC_PROTOCOL_CLIENT_REKEY.
+ Added silc_client_rekey_callback and silc_client_rekey_final.
+ Affected files are lib/silcclient/protocol.[ch] and
+ lib/silcclient/client.[ch].
+
+ * Removed the `hmac_key' and `hmac_key_len' fields from the
+ SilcClientConnection structure; not needed. Affected file is
+ lib/silcclient/client.h.
+
+ * Updated TODO.
+
+Wed Apr 4 16:32:31 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Do not ask whether user wants to use the negotiated private key
+ for private messages, just use it. Affected file is
+ silc/local_command.c.
+
+ * Added `send_enc_key' and `enc_key_len' fields to the
+ SilcIDListData structure since they are needed in the re-key
+ phase. Affected file is silcd/idlist.[ch].
+
+ * Implemented the simple re-key protocol into the server.
+ Affected files silcd/server.c and silcd/protocol.[ch]. The
+ re-key will be performed once in an hour, by default.
+
+ Added new protocol type SILC_PROTOCOL_SERVER_REKEY.
+ Added silc_server_rekey, silc_server_rekey_callback and
+ silc_server_rekey_final.
+
+ * Removed Tunneled flag from the protocol. Updated the code
+ and the specifications.
+
+ * Adde `pfs' field to the SilcIDListData to indicate whether
+ the PFS is to be performed in the re-key. Affected file is
+ silcd/idlist.h.
+
+Tue Apr 3 21:52:42 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Defined uint8, int8, uint16, int16, uint32, int32, uint64 and
+ int64 of at least the xintXX size. If void * is less that 4
+ bytes uint32 * will be used. Defined bool as boolean.
+
+ * Changed _ALL_ unsigned long and unsigned int to uint32,
+ unsgined short to uint16 in the source tree.
+
+ * Fixed a fatal bug in silc_server_remove_clients_by_server. Do
+ not handle clients that has entry->data.registered == FALSE.
+ They are not in the network anymore. Affected file is
+ silcd/server.c.
+
+Tue Apr 3 16:39:19 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Implemented the sending of the SERVER_SIGNOFF notify in the
+ server. Affected file is silcd/server.c.
+
+ * Added silc_server_send_notify_args into silcd/packet_send.[ch].
+ Added also silc_notify_payload_encode_args into the
+ lib/silccore/silcnotify.[ch].
+
+ * Implemented ther SERVER_SIGNOFF notify handling in the server.
+ Affected file silcd/packet_receive.c.
+
+ * Implemented the SERVER_SIGNOFF notify handling in the client
+ library. Affected file lib/silcclient/client_notify.c. Also,
+ implemnted the printing of the SERVER_SIGNOFF info to the
+ application. Affected file silc/client_ops.c.
+
+ * The silc_idlist_del_server now returns TRUE or FALSE to indicate
+ if the deleting was successful. Affected file silcd/idlist.[ch].
+
+ * Added support for public key authentication in the connection
+ authentication protocol in the client library. Affected file
+ lib/silcclient/protocol.c.
+
+ * Changed the server's silc_idlist_get_clients_by_* interface
+ to support already allocated array so that new entries may be
+ added to pre-allocated array. Affected file silcd/idlist.[ch].
+ This fixes some bugs with WHOIS, WHOWAS and IDENTIFY commands
+ and command replies.
+
+ * All command reply functions in the server now calls the
+ pending command callback even if error occured. This way the
+ error will be delivered to the client as well. Affected files
+ silcd/command.c and silcd/command_reply.c.
+
+ * Fixed INFO command to return local server's info if no server
+ was provided. Affected file lib/silcclient/command.c.
+
+ * Removed RESTART command for good. Updated the code and the
+ protocol specs.
+
+ * Rewrote parts of the task system. It is a bit simpler now.
+ Removed unsued task priorities. The affected files are
+ lib/silcutil/silctask.[ch].
+
+Mon Apr 2 20:02:33 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Moved the USERS printing from the library to the application.
+ Affected files lib/silcclient/command.c and silc/client_ops.c.
+
+Mon Apr 2 13:13:23 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Updated TODO.
+
+ * Added channel key re-key support. The re-key is perfomed
+ only by the router and is done once in an hour. Added `rekey'
+ field to the SilcChannelEntry in the server. Affected files
+ silcd/server.c and silcd/idlist.h.
+
+ * Added silc_task_unregister_by_context into the file
+ lib/silcutil/silctask.[ch].
+
+Sun Apr 1 19:49:34 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added SILC_UMODE_GONE mode to indicate when the client is not
+ present in the SILC network. Added also support to the local
+ command AWAY that will set this mode. Added support of showing
+ "xxx is gone" in WHOIS command. The USERS command shows the
+ gone status as well.
+
+ * Fixed setting server and router operator privileges in the
+ server's UMODE command. Affected file silcd/command.c.
+
+ * Merged the SKE KE1 and KE2 payloads into one payload. The
+ new KE payload is equivalent to the old KE2 payload.
+
+ Cleaned up the SKE Start Payload parsing. It now uses the
+ simple buffer unformatting to do the parsing. A lot faster
+ now.
+
+ Added new Mutual Authentication flag (SILC_SKE_SP_FLAG_MUTUAL)
+ to the SKE that is used to indicate whether both of the SKE
+ parties should perform authentication. By default only the
+ responder performs authentication. By setting this flag also
+ the initiator must do authentication. By default it is unset
+ since in normal SKE case, client to server connection, only
+ the responder should do authentication. When doing SKE between
+ two clients both should perform authentication. Updated the
+ code and the protocol specs.
+
+ * A little fix to IDENTIFY command in the server. Search the
+ client first by hash not nickname. Affected file is
+ silcd/command.c.
+
+ * Fixed the silc_client_close_connection to support closing
+ the client to client connections wihtout deleting too much
+ data. Affected file lib/silcclient/client.c.
+
+ * Fixed a fatal bug in server and client; if KE1 or KE2 packets
+ are received if protocol used to be active but is not anymore
+ the application would crash due to NULL pointer dereference.
+ Affected files silcd/server.c and lib/silcclient/client.c.
+
+ * Added `hash' field to the SilcClientConnection to include
+ the hash function negotiated in the SKE protocol.
+
+ * Added new channel mode SILC_CMODE_FOUNDER_AUTH that is used
+ to set the channel founder authentication data. A client can
+ claim the founder rights later by providing the authentication
+ data to the CUMODE command using SILC_CUMODE_FOUNDER mode.
+ This way the channel founder can regain the channel founder
+ privileges even it is left the channel. This works only on
+ local server and the client must be connected to the same
+ server to be able to regain the founder rights. Updated the
+ protocol specs accordingly.
+
+ Added support to the CMODE command in the client to set the
+ founder auth data. Read the README to see how to set it.
+
+ Added support to the CUMODE command to claim the founder
+ rights. Read the README to see how to do it.
+
+ Added support for the founder authentication to the Channel
+ Entry in the server. Affected file silcd/idlist.h.
+
+ Added support for the SILC_CMODE_FOUNDER_AUTH mode in the
+ server's CMODE command. Affected file silcd/command.c.
+
+ * Added the following new functions into lib/silccore/silcauth.[ch]:
+ silc_auth_get_method and silc_auth_get_data.
+
+ * The server now saves the remote hosts public key to the
+ SilcIDListData pointer. Affected file silcd/protocol.c.
+
+ * The normal server now does not remove the channel entry from
+ the cache if the founder authentication data is set. It used
+ to remove it if the founder was the last one on the channel on
+ the server and left the channel. The auth data is saved and
+ if the channel is re-joined later the old entry is used with
+ the old auth data. Affected files silcd/command_reply.c and
+ silcd/server.c.
+
+ * Removed the `pkcs' field from the SilcIDListData structure
+ in the server; it is not used. Affected file silcd/idlist.h.
+
+Sat Mar 31 15:38:36 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed packet processing on slow links. Partial packets were
+ never re-processed because the incoming data buffer was cleared
+ by the application. Application must not directly clear the
+ sock->inbuf, the packet processing routines handle it. Fixed
+ this in client library and in server.
+
+Fri Mar 30 16:35:27 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed the WHOIS and IDENTIFY send reply function to really
+ check whether to send list or just one entry. Affected file
+ silcd/command.c.
+
+ * Cleaned up the LEAVE command's channel key distribution. The
+ affected file silcd/command.c.
+
+ * Changed CMODE_CHANGE's <Client ID> to <ID Payload> as server
+ can enforce the channel mode as well. In that case the ID
+ includes the ID of the server. The code now enforces the
+ mode change if the router have different mode than the server.
+
+ * The notify client operation with CMODE_CHANGE notify can now
+ return NULL client_entry pointer if the CMODE was not changed
+ by client. Application must check for this.
+
+ * Added <Server ID> argument to INFO command to support server
+ info fetching by Server ID.
+
+ * Added silc_server_announce_get_channel_users to get assembled
+ packets of channel users of the specified channel. Affected
+ file silcd/server.[ch].
+
+ * Fixed bug in CHANNEL_CHANGE notify in the server. The new ID
+ was freed underneath the ID Cache.
+
+ * Re-announce clients when the server received CHANNEL_CHANGE
+ notify from the router. Affected file silcd/packet_send.c.
+
+Thu Mar 29 19:10:28 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Fixed a fatal bug when client does /join 1 2 3 4 5 6 the server
+ crashed since it did not handle the fact that there is no cipher
+ called "3" and didn't check the error condition. Now fixed.
+
+ * Added SILC_MESSAGE_FLAG_REQUEST message flag as generic request
+ flag. It can be used to send message requests.
+
+Thu Mar 29 12:26:25 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Implemented the RESTART command in the client.
+
+ * Added SILC_MESSAGE_FLAG_NOTICE message flag for informational
+ notice type messages. Added notice printing to the user
+ interface.
+
+ * The channel keys are not re-generated if the channel's mode
+ is PRIVKEY, ie private key on the channel exists. Affected
+ files silcd/server.c and silcd/command.c.
+
+ * Fixed a little bug in channel message delivery when channel
+ private keys are set in the server. Affected file is
+ silcd/packet_send.c.
+
+ * Changed the setting on channel->on_channel = TRUE from the
+ silc_client_save_channel_key to the JOIN command reply. The
+ key payload is not received if the private channel key is set.
+ Affected file lib/silcclient/command_reply.c and the
+ lib/silcclient/client_channel.c.
+
+ * When the CMODE_CHANGE notify is sent and the channel private
+ key mode is removed the channel key must be re-generated in
+ other cells as well. Added this support for the router in the
+ silcd/packet_receive.c.
+
+ * Added new local command NOTICE to send notice message on
+ channel. Affected file silc/local_command.[ch].
+
+Wed Mar 28 23:55:54 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Added new local command ME to the client. It is used to send
+ message to a channel with SILC_MESSAGE_FLAG_ACTION to indicate
+ some action. Affected file silc/local_command.[ch].
+
+ * Changed channel_message and private_message client operations
+ to deliver the message flags to the application. Added also
+ the `flags' arguments to the silc_client_send_channel_message
+ and silc_client_send_private_message functions. Affected file
+ silcapi.h.
+
+Wed Mar 28 20:50:47 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+ * Redefined the Private Message Payload to support private message
+ keys and to support the new private message flags. Updated
+ the protocol specs. Flags makes it possible to have for example
+ CTCP style messages.
+
+ * Added new type SilcPrivateMessagePayload and defined an API
+ for it in the lib/silcclient/silcprivate.[ch].
+
+ * Tested private message private keys successfully. Tested the
+ private message key set, unset and list commands with the new
+ KEY command.
+
+ * Redefined the Channel Message Payload to include the channel
+ message flags (equal with private message flags) to support
+ for example CTCP style messages.
+
+ * Defined some of the message (for channel and private message)
+ flags. Updated the protocol specs and added the flags to the
+ lib/silccore/silcchannel.h. The type is SilcMessageFlags.
+
Wed Mar 28 15:52:36 EEST 2001 Pekka Riikonen <priikone@poseidon.pspt.fi>
* Added SilcKeyAgreementStatus type to the key agreement routines