updates
[silc.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index e4f88dbb2190d4c9b9f594952c87dcc5c81d1e35..fe6c148167a237102afd52482f6bc882c27f6085 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,438 @@
+Tue Nov  6 21:31:54 EET 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added silc_hash_babbleprint to create a Bubble Babble
+         Encoded fingerprint.  The encoding is developed by Antti
+         Huima (draft-huima-babble-01.txt), and it creates human
+         readable strings out of binary data.  Affected file
+         lib/silccrypt/silchash.[ch].
+
+       * Print the babble print now in addition of fingerprint as well
+         in Irssi SILC client.  Affected files are
+         irssi/src/fe-common/silc/module-formats.[ch],
+         irssi/src/fe-common/silc/core/client_ops.c.
+
+Sun Nov  4 23:37:28 EET 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Fixed a security problem found in SKE.  The initiator's
+         public key too is now added to the HASH hash value creation
+         which is signed by the responder to create the SIGN value.
+         This will prevent anyone in the middle to lie to the responder
+         about the initiator's public key.  If this is done now, the
+         man in the middle will get caught.  Updated the protocol
+         specification.
+
+Sun Nov  4 11:43:53 EET 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Better installation directory handling.  Configure module
+         paths and other paths automatically to example_silc* files
+         in doc/.  A patch by toma.
+
+       * Fixed compiler warning from MPI library, and from SILC RNG.
+         A patch by johnny.
+
+       * Added SILC_SERVER_PID_FILE to define the pid file for server.
+         It can be configured with ./configure.  A patch by toma.
+
+Sat Nov  3 23:48:23 EET 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Find correct make to use in prepare-clean.  A patch by
+         toma.  Affected file prepare-clean.
+
+Sat Nov  3 22:04:00 PST 2001  Brian Costello <bc@mksecure.com>
+
+       * Added irssi variables use_auto_addr, auto_bind_ip,
+          auto_bind_port and auto_public_ip.
+
+       * Changed the interface for silc_client_send_key_agreement
+          in lib/silcclient/silcapi.h
+
+       Affected files:
+
+         irssi/src/silc/core/silc-core.c
+         irssi/config
+         lib/silcclient/silcapi.h
+         irssi/src/silc/core/silc-channels.c
+         lib/silcclient/client_keyagr.c
+         irssi/docs/help/key
+
+Sat Nov  3 17:48:55 EET 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added silc_pkcs_public_key_compare to compare two 
+         public keys.  Affected file lib/silccrypt/silcpkcs.[ch].
+
+       * Check that the client who set the founder mode on the
+         channel is the same client that is giving the founder
+         mode to itself.  It is done by comparing the saved public
+         key (it is saved even in the authentication is passphrase).
+         Affected file silcd/command.c.
+
+Fri Nov  2 18:52:08 EST 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Do not process packet for disconnected socket connection.
+         Affected file lib/silccore/silcpacket.c.
+
+       * Process the DISCONNECT packet through scheduler in the
+         client library.  Affected file lib/silcclient/client.c.
+
+       * Fixed the silc_client_packet_parse to not to increase
+         the packet sequence number if the conn->sock and the 
+         current socket connection is not same.  This can happen
+         for example during key agreement when the conn includes
+         multiple socket connections (listeners).  Affected file
+         lib/silcclient/client.c.
+
+       * The sender of the file transfer request now provides also
+         the pointer (listener) for the key exchange protocol.  If
+         the listener cannot be created then it sends empty key
+         agreement and lets the receiver provide the listener.
+
+         Added `local_ip' and `local_port' arguments to the
+         silc_client_file_send.  If they are provided they are used,
+         if not then it will attempt to find local IP address, if
+         not found or bind fails then the remote client will provide
+         the listener.
+
+         Affected files are lib/silcclient/client_ftp.c and
+         lib/silcclient/silcapi.h.
+
+       * Extended the FILE SEND command to support defining the
+         local IP and port for key exchange listener.  They are
+         optional.  Affected file irssi/src/silc/core/silc-servers.c.
+
+Thu Nov  1 22:10:07 EST 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Defined to WHOIS command reply the sending of fingerprint
+         of the client's public key (if the proof of posession of the
+         corresponding private key is verified by the server).
+         Updated to the protocol specification.
+
+       * Added support of receiving the client's public key's 
+         fingerprint in command reply in client library.  Affected
+         file is lib/silcclient/command_reply.c, and
+         lib/silcclient/idlist.[ch].
+
+Thu Nov  1 18:06:12 EST 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Do not send over 128 chars long nickname to the server
+         in NICK command.  Affected file lib/silcclient/command.c.
+
+       * Do not send over 256 chars long channel names to the server
+         in JOIN command.  Affected file lib/silcclient/command.c.
+
+Tue Oct 30 22:48:59 EST 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Assure that silc_server_close_connection cannot be called
+         twice for same socket context.  Affected file is
+         silcd/server.c.
+
+Tue Oct 30 16:58:14 EST 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Send error message to application if opening file for
+         writing during file transfer fails.  Affected file is
+         lib/silcclient/client_ftp.c.
+
+         Remove all file transfer sessions for a client that we're
+         removing from ID cache.
+
+         Affected file is lib/silcclient/client_ftp.c.
+
+       * Fixed silc_net_addr2bin to return correct address.  Affected
+         file lib/silcutil/[unix/win32]/silc[unix/win32]net.c.
+
+       * Fixed file transfer session removing on signoff notify.
+         Affected file irssi/src/silc/core/silc-servers.c.
+
+       * Added the SilcClientFileError to be returned in the monitor
+         callback.  Added NO_SUCH_FILE and PERMISSION_DENIED errors.
+         Affected file lib/silcclient/silcapi.h.
+
+Mon Oct 29 17:43:04 EST 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Fixed a crash in silc_client_ftp_free_sessions and
+         silc_client_ftp_session_free_client.  Affected file
+         lib/silcclient/client_ftp.c.
+
+       * Added `disabled' field in the SilcChannelEntry in the server
+         to indicate if the server entry is disabled.  Affected file
+         silcd/idlist.h, silcd/command[_reply].c.
+
+       * SILC server adds now /var/run/silcd.pid everytime it is
+         started.  Affected file silcd/silcd.c.
+
+       * Added silc_server_packet_send_clients to send a packet to
+         the provided table of client entries.  Affected file
+         silcd/packet_send.[ch].
+
+       * Fixed a crash in client resolving in client_prvmsg.c in 
+         client library.  Affected file lib/silcclient/client_prvmsg.c.
+
+       * Do not actually remove the client directly from ID cache
+         during SERVER_SIGNOFF, but invalidate it.  This way we
+         preserve the WHOWAS info for the client.  Affected file
+         silcd/server_util.c.
+
+       * Fixed SERVER_SIGNOFF notify handling in the server.  The
+         server is now able to process incoming SERVER_SIGNOFF notify
+         for a server that it doesn't even know about.  It will remove
+         the clients provided in the notify.  Affected file
+         silcd/packet_receive.c.
+
+       * Check for partial packet in data queue after every packet that
+         was found from the queue.  Return and wait for more data if 
+         there is partial data in queue.  Affected file is
+         lib/silccore/silcpacket.c.
+
+Sun Oct 28 18:46:27 EST 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added SilcClietFileError enum to indicate error in
+         file transfer.  Added SILC_CLIENT_FILE_MONITOR_KEY_AGREEMENT
+         and SILC_CLIENT_FILE_MONITOR_ERROR new monitor statuses.
+         Affected files lib/silcclient/silcapi.h and
+         lib/silcclient/client_ftp.c.
+
+       * Check that newsize in silc_buffer_realloc is larger than
+         the old buffer's size.  Affected file lib/silcutil/silcbufutil.h.
+
+       * Added better monitor of file transfers.  It now monitors
+         key agreement protocol during the file transfer too.  Added
+         error reporting too.  Affected files
+         irssi/src/silc/core/silc-servers.c,
+         irssi/src/fe-common/silc/module-formats.[ch].
+
+       * Wrote a help file for FILE command.
+
+       * Added silc_rng_global_get_byte_fast to get not-so-secure
+         random data as fast as possible.  Random data is read from
+         /dev/urandom if available and from the SILC RNG if not
+         available.  It is used in padding generation.  Affected file
+         lib/silccrypt/silcrng.[ch].
+
+       * All packets in client library are now processed synchronously.
+         Optimized packet processing a lot.  Affected file
+         lib/silcclient/client.c.
+
+       * All server connection packets are processing synchronously
+         now in server, to optimize packet processing.  Affected file
+         silcd/server.c.
+
+       * Include files are installed now only in Toolkit distribution
+         if make install is given.  Affected files: all Makefile.am's.
+
+Thu Oct 25 22:44:06 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Assure that silc_client_notify_by_server_resolve does not
+         resolve the client information multiple times.  If it cannot
+         be found by the first it cannot be found at all.  Affected
+         file lib/silcclient/client_notify.c.
+
+       * Fixed WHOWAS command reply calling.  Affected file
+         lib/silcclient/command_reply.c.
+
+       * Removed all references to silc_idlist_get_client from the
+         Irssi SILC client since that call is internal call used by
+         the library.  The Irssi SILC client will use now client
+         retrieval functions found in silcapi.h.
+
+       * Fixed a bug in resolving nickname info before sending
+         private message.  It used freed memory.  Affected file
+         irssi/src/silc/core/silc-servers.c.
+
+Thu Oct 25 19:04:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Assure my_channels statistics cannot go negative in server.
+         Affected files silcd/server.c, silcd/server_util.c.
+
+Wed Oct 24 19:53:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Upgraded dotconf 1.0.2 to 1.0.6 in lib/dotconf.
+
+Tue Oct 23 13:51:19 EEST 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Win32 Toolkit changes.  Affected files
+         win32/silc.dsw, win32/libsilc/libsilc.def,
+         win32/libsilcclient/libsilc.def,
+         lib/silcutil/silcutil.c, and
+         lib/sftp/sftp_fs_memory.c.
+
+Mon Oct 22 16:35:05 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added silc_net_localip to return local host's IP address.
+         Affected file lib/silcutil/silcnet.[ch].
+
+       * If key exchange or rekey protocol is active for a connection
+         parse all packets syncronously since there might be packets
+         in packet queue that we are not able to process without first
+         processing packets before them.  Affected file silcd/server,
+         lib/silcclient/client.c.
+
+       * SilcPacketParserCallback now returns TRUE or FALSE to indicate
+         whether library should continue processing the packet. 
+         Affected file lib/silccore/silcpacket.h.
+
+       * Added SilcSFTPMonitor callback, SilcSFTPMonitors and
+         SilcSFTPMonitorData to SFTP server to monitor various
+         SFTP client requests.  Affected file lib/silcsftp/silcsftp.h,
+         lib/silcsftp/sftp_server.c.
+
+       * Added silc_file_size to return file size.  Affected file
+         lib/silcutil/silcutil.[ch].
+
+       * Implemented the file transfer support for the client library.
+         Added preliminary support for simple client to client one-file
+         transmission.  Affected file lib/silcclient/client_ftp.c,
+         lib/silccilent/client.[ch].
+
+       * Added new local command FILE to the Irssi SILC Client.
+         It is used to perform the file transfer.  It has subcommands
+         SEND, RECEIVE, SHOW and CLOSE.  Affected files
+         irssi/src/silc/core/client_ops.c, 
+         irssi/src/silc/core/silc-server.[ch].
+
+Mon Oct 22 12:50:08 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Relay the SILC_PACKET_FTP in the server.  Affected files
+         silcd/server.c and silcd/packet_receive.c.
+
+Sun Oct 21 20:21:02 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Renamed silc_file_read and silc_file_write to functions
+         silc_file_readfile and silc_file_writefile.  Added function
+         silc_file_open and silc_file_close.  Affected files 
+         lib/silcutil/silcutil.[ch].
+
+Thu Oct 18 20:58:13 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Resolve the client info when received private message or
+         channel message for a client which nickname we don't know.
+         Affected files lib/silcclient/client_prvmsg.c and
+         lib/silcclient/client_channel.c.
+
+       * Do not crash in /KEY if client is not connected.  Affected
+         file irssi/src/silc/core/silc-channels.c.
+
+       * Added SilcClientStatus field to the SilcClientEntry in the
+         lib/silcclient/idlist.h.
+
+         Added SILC_CLIENT_STATUS_RESOLVING to mark that the entry
+         is incomplete and is being resolved, it won't be resolved
+         twice.
+
+         Make sure also that USERS command reply does not resolve
+         twice information.  Affected file is
+         lib/silcclient/command_reply.c.
+
+         Make sure that silc_client_get_clients_by_list does not
+         resolve twice same information.
+
+       * Check for valid client->id in the silc_server_free_client_data.
+         Affected file silcd/server.c.
+
+       * Fixed /GETKEY nick@server not to crash if the server entry
+         is not found.  Affected file lib/silcclient/command.c.
+
+       * Fixed the silc_server_check_cmode_rights to check the
+         requested modes correctly.  Affected file silcd/command.c.
+
+Thu Oct 18 12:10:22 CEST 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Better checks for non-printable chars in nick added.
+         Affected file silcd/command.c.
+
+Thu Oct 18 09:18:58 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Call the silc_server_udpate_servers_by_server in the
+         primary router that comes back online in the backup resuming
+         protocol.  Otherwise it routes packets wrong.  Affected file
+         silcd/server_util.[ch], silcd/server_backup.c.
+
+Wed Oct 17 16:51:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Added SILC_STR_UI8_[N]STRING[_ALLOC] formats to the
+         lib/silcutil/silcbuffmt.[ch].
+
+       * Redefined the SILC packet header to include the padding
+         length.  Affected file lib/silccore/silcpacket.[ch].
+
+       * Added SILC_PACKET_PADLEN_MAX macro to return the padding
+         length for maximum padding up to 128 bytes).  Affected
+         file lib/silccore/silcpacket.h.
+
+       * Removed all backwards support for old 0.5.x MAC thingies.
+         The SILC packet header change makes it impossible to be
+         backwards compatible.
+
+       * Send the ENDING packet with timeout in the backup resuming
+         protocol.  This is to assure that all routers has connected
+         to the primary router.  Affected file silcd/server_backup.c.
+
+       * Changed the RNG to take the first IV from random data.  It
+         used to take it from zero actually.  Changed the RNG also
+         to use /dev/urandom during session.  /dev/random is used
+         in initialization.  Affected file lib/silccrypt/silcrng.[ch].
+
+Tue Oct 16 20:45:49 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Changed the SILC packet header to have the first two bytes
+         (the packet length) encrypted.  Affected files aroung the
+         code tree, lib/silccore/silcpacket.[ch].  Removed the
+         SilcPacketCheckDecrypt callback.  It is not needed anymore
+         since the silc_packet_receive_process will determine now
+         whether the packet is normal or special.
+
+       * Implemented the unidirectional MAC keys.  Affected files
+         lib/silcske/silcske.c, silcd/protocol.c and
+         lib/silcclient/protocol.c.
+
+       * Implemented the packet sequence number to the MAC computation.
+         Affected files lib/silccore/silcpacket.c, silcd/protocol.c,
+         silcd/packet_send.c, silcd/server.c, lib/silcclient/client.c,
+         lib/silcclient/protocol.c.
+
+Mon Oct 15 17:42:55 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Allow backup router to announce servers.  All servers
+         announced by backup router are added to the global list
+         automatically.  Update hte server's socket to our primary
+         router also when backup router announces a server.
+         Affected file silcd/packet_receive.c.
+
+       * Do not update the client->router in the function
+         silc_server_udpate_clients_by_server if the client is on
+         global list.  We might fail to find any specific server
+         for locally connected clients and local cell clients.  They
+         should still use the `from' and not `to' as client->router.
+         This fixes backup router resuming protocol.  Affected file
+         silcd/server_util.c.
+
+       * Decrease channel statistics count only if the channel
+         deletion worked.  Affected files are silcd/server.c and
+         silcd/server_util.c.
+
+       * Added silc_server_update_servers_by_server to update origin
+         of all server entries.  Used during backup router protocol.
+         Affected files silcd/server_util.[ch], silcd/server.c. and
+         silcd/backup_router.c.
+
+       * ROBODoc documented the lib/silccrypt/silchmac.h.  Added new
+         function silc_hmac_init, silc_hmac_update, silc_hmac_final,
+         silc_hmac_get_hash and silc_hmac_get_name.  Affected file
+         lib/silccrypt/silchmac.c.
+
+Sun Oct 14 18:28:22 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Assure that router cannot reroute the same channel message
+         to the sender.  Affected file silcd/packet_receive.c.
+
+Sat Oct 13 12:46:18 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
+
+       * Made better checks that the channel message is not sent
+         to the router it came from.  Affected file is
+         silcd/packet_send.c.  Fixed memory leak too.
+
+       * Announce informations for incoming router connection, but
+         only after checking if it is replaced by backup router.
+         Affected file silcd/packet_receive.c.
+
 Fri Oct 12 18:37:24 EDT 2001  Pekka Riikonen <priikone@silcnet.org>
 
        * Fixed the backup resuming protocol to work in multiple