updates.
[silc.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index 73afc3098bb9df19b8dca9f486bd6e968858cbf6..235599ae27b0b47a8f6f950820d2722983b34424 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,7 +1,638 @@
+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.
+
+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
+         to indicate the current status and error if one occured.
+         The status types are defined in the lib/silcclient/silcapi.h.
+
+       * Added new local command KEY that is used to set and unset private
+         keys for channels, set and unset private keys for private messages
+         with remote clients and to send key agreement requests and
+         negotiate the key agreement protocol with remote client.  The
+         key agreement is supported only to negotiate private message keys,
+         it currently cannot be used to negotiate private keys for channels,
+         as it is not convenient for that purpose.
+
+       * Fixed a minor pending callback setting bug in the function
+         silc_client_get_client_by_id_resolve, now the function works.
+         Affected file lib/silcclient/idlist.c.
+
+       * Added function silc_net_get_local_port to get local bound
+         port by socket.  Added to lib/silcutil/silcnet.[ch].
+
+       * Added `sockets' and `sockets_count' fields to the SilcClient
+         object.  They hold the sockets of the listenning sockets in
+         the client.  Listenning sockets may be for example the key 
+         agreement server.  Affected file lib/silcclient/client.[ch].
+         Added functions the silc_client_add_socket and the
+         silc_client_del_socket.  They are exported to the application
+         as well.
+
+       * Added ~./silc/clientkeys to support other client's public keys.
+
+       * Renamed verify_server_key client operation to verify_public_key
+         and added one argument to indicate the type of the connection
+         (server, client etc.).
+
+Tue Mar 27 22:22:38 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added silc_server_connection_auth_request to handle the
+         incoming CONNECTION_AUTH_REQUEST packet.  Affected file is
+         silcd/packet_receive.[ch].
+
+       * Added silc_server_send_connection_auth_request into the
+         silcd/packet_send.c to send the connection auth request packet.
+
+       * Cleaned up the silcd/protocol.c a bit and fixed some memory
+         leaks.
+
+       * Fixed the public key authentication in responder side in the
+         server.  The `auth_data' pointer includes the SilcPublicKey
+         not the path to the public key.  Affected file silcd/protocol.c.
+
+       * Implemented the public key authentication in the initiator side
+         in the server.  Affected file silcd/protocol.c.
+
+       * Removed the [RedirectClient] config section from the server
+         configuration.  Is not needed and I don't want to implement it.
+
+Tue Mar 27 12:49:56 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Cleaned up the CMODE command in the server.  It now works
+         correctly and supports all the modes defined in the protocol.
+         Affected file is silcd/command.c.
+
+       * Added `hmac_name' field to the SilcChannelEntry in the server
+         to hold the default HMAC of the channel.  It can be set when
+         creating the channel (with JOIN command).  Affected files
+         silcd/idlist.[ch].
+
+       * Added <cipher> and <hmac> argument to the CMODE_CHANGE notify
+         type to indicate the change of the current cipher and hmac
+         on the channel.  Client can safely ignore the <cipher> argument
+         (if it chooses to do so) since the CHANNEL_KEY packet will 
+         force the channel key change anyway.  The <hmac> argument is
+         important since the client is responsible of setting the new
+         HMAC and the hmac key into use.
+
+       * Fixed the CMODE command in the client library as well.
+
+       * Tested CMODE command in router environment successfully.
+
+Mon Mar 26 14:39:48 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Show the version of the remote client (or server) when connecting
+         to the server.  It is logged to the log file.  Affected file
+         is silcd/protocol.c.
+
+       * Fixed the KILLED notify handling in the client library.  The
+         client must be removed from all channels when receiving the
+         KILLED notify.
+
+         Also, do not remove the client entry when giving the KILL 
+         command but when the KILLED notify is received.
+
+       * Removed silc_idlist_find_client_by_nickname from the server.
+         Not needed anymore.  Affected files silcd/idlist.[ch].
+
+       * Implemented the CHANNEL_CHANGE notify type handling to the
+         server.  Affected file silcd/server.c.
+
+       * Updated TODO.
+
+Mon Mar 26 12:11:14 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added silc_server_send_notify_invite to send the INVITE
+         notify between routers.
+
+       * Implemented the INVITE command correctly to the server.
+
+       * Implemented the INVITE notify type handling in the server.
+
+       * Implemented the INVITE command to the client library and on the
+         user interface.
+
+Sun Mar 25 20:27:09 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added function silc_server_get_client_resolve to find the
+         client entry by ID from all ID lists and then resolve it
+         (using WHOIS) if it cannot be found.  Affected file is
+         silcd/server.[ch].
+
+Sun Mar 25 13:52:51 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Implemented the BAN command to the client library.
+
+       * The JOIN command in the server now checks the invite list
+         and the ban list.
+
+       * Changed the silc_command_reply_payload_encode_va and the
+         silc_command_payload_encode_va to support that if argument is
+         NULL it ignores and checks the next argument.  Affected file
+         lib/silccore/silccommand.c.
+
+       * Added silc_server_send_notify_ban to send the BAN notify
+         type between routers.
+
+       * Chaned the silc_notify_payload_encode to support that if 
+         argument is NULL it ignores and checks the next argument.
+         Affected file lib/silccore/silcnotify.c.
+
+       * Tested ban lists in router environment successfully.
+
+Sat Mar 24 14:47:25 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Implemented BAN command to the server, in silcd/command.[ch].
+
+       * Removed the BAN and INVITE_LIST modes from the CMODE command
+         in the server code.
+
+       * Added function silc_string_match to regex match two strings.
+         Affected files lib/silcutil/silcutil.[ch].
+
+Fri Mar 23 22:02:40 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Redefined parts of the SilcChannelEntry in the server to support
+         the new ban and invite lists.
+
+Fri Mar 23 16:25:11 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Redefined the INVITE command.  The same command can be used to
+         invite individuals to the channel but also to manage the invite
+         list of the channel (to add to and remove from the invite list).
+         Updated the protocol specs.
+
+       * Added new command SILC_COMMAND_BAN that can be used to manage
+         the ban list of the channel.  Updated the protocol specs.
+
+       * Removed the channel modes: the SILC_CMODE_BAN and the 
+         SILC_CMODE_INVITE_LIST as they were a bit kludge to be included
+         in the CMODE command.  The equivalent features are now available
+         using INVITE and BAN commands.  Updated the protocol specs.
+
+       * Added new SILC_NOTIFY_TYPE_BAN notify type to notify routers
+         in the network about change in the current ban list.  The notify
+         type is not used by the client.
+
+       * Redefined parts of the SILC_NOTIFY_TYPE_INVITE command to 
+         support the invite lists.
+
+Thu Mar 22 22:52:23 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added new function silc_string_regexify that converts string
+         including wildcard characters into regex string that can
+         be used by the GNU regex library.  Added into the file
+         lib/silcutil/silcutil.[ch].
+
+         Added silc_string_regex_combine to combine to regex strings
+         into one so that they can be used as one regex string by
+         the GNU regex library.  Added into the file
+         lib/silcutil/silcutil.[ch].
+
+         Added silc_string_regex_match to match two strings.  It returns
+         TRUE if the strings match.  Added into lib/silcutil/silcutil.[ch].
+
+Thu Mar 22 15:29:42 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Imported GNU regex to the soruce tree into lib/contrib.
+         Fixed some compiler warning from the regex.c.
+
+Wed Mar 21 15:27:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Fixed MOTD command in the server to work in router environment.
+
+       * Fixed the MOTD command in the client library to support
+         the server argument in the command.
+
+       * Added `nickname_len' argument to the silc_idlist_add_client
+         in the server, as the `nickname' argument may be binary data
+         (it may be hash).
+
+       * Added silc_idlist_get_channels to return all channels from
+         the ID list.
+
+       * Implemented LIST command to the server.  Affected file is
+         silcd/command.c.
+
+       * Implemented the LIST command to the client library and on the
+         user interface.
+
+       * Added [<user count>] argument to the LIST command reply.
+         With private channels the user count is not shown.
+
+       * Updated TODO and README.
+
+Tue Mar 20 21:05:57 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * The client entry's data.registered must be TRUE even with
+         global client entry on global client list.  The data.registered
+         is used to check whether the client is anymore in the network,
+         for example with WHOWAS command so it must be valid.
+
+       * Fixed the WHOWAS command in the server.  It now actually works
+         in router environment.  Added function into silcd/command_reply.c
+         silc_server_command_reply_whowas_save.
+
+       * Added silc_idlist_purge function to the silcd/idlist.c
+         to periodically purge the ID Cache.
+
+       * Fixed INFO command in the server.  It works now in router
+         environment.  Added <server name> argument to the INFO command
+         reply.  Updated the protocol specs.
+
+       * Fixed minor bug in silc_idcache_purge to not purge if the
+         expire value is zero.
+
+       * Fixed various bugs in WHOIS and IDENTIFY command handling as
+         they were buggy because of the WHOWAS information.
+
+       * Fixed local command MSG to handle the async resolving of 
+         the remote client properly.  It used to fail the first MSG.
+         Affected file silc/local_command.c.
+
+       * Added `data_len' field to SilcIDCache context.
+
+Tue Mar 20 16:29:00 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Update TODO.  Todo in commands in the server.
+
+Tue Mar 20 15:45:14 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added new notify type SILC_NOTIFY_TYPE_UMODE_CHANGE that is
+         used by routers as broadcast packet to inform other routers
+         about the changed user mode.
+
+         Implemented the notify handling in the server.  Affected file is
+         silcd/packet_receive.c.  Added the function 
+         silc_server_send_notify_umode to the silcd/packet_send.[ch].
+
+       * Added new generic Channel Payload and deprecated the New Channel
+         Payload.  The New Channel Payload is now the generic Channel
+         Payload.
+
+       * Added new argument `mode' to the silc_server_send_new_channel
+         as it is required in the Channel Payload now.
+
+       * Renamed the SilcChannelPayload to SilcChannelMessagePayload
+         and created a new and real SilChannelPayload to represent the
+         new generic Channel Payload.  Implemented the encode/decode
+         for Channel Payload.  Affected file lib/silccore/silcchannel.[ch].
+
+       * Added silc_server_get_client_channel_list to return the list
+         of channels the client has joined for WHOIS command reply.
+         Affected file silcd/server.[ch].
+
+       * Implemented the channel list sending in the WHOIS command reply
+         in server and in the client.
+
+         Implemented the channel list displaying on the user interface
+         as well.  Affected file silc/client_ops.c.
+
+       * Added silc_channel_payload_parse_list to parse list of Channel
+         Payloads.  It returns SilcDList list of SilcChannelPayloads.
+         Client for example can use this function to parse the list of
+         channels it receives in the WHOIS command reply.  The caller
+         must free the list by calling silc_channel_payload_list_free.
+         Affected files lib/silccore/silcchannel.[ch].
+
+Mon Mar 19 21:39:15 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added one new argument <user mode> to the WHOIS command reply
+         to return the mode of the user in SILC.  Updated the protocol
+         specs.
+
+         Implemented it to the server and client.
+
+Mon Mar 19 18:43:06 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Fixed the mode printing on the user interface on joining.
+         Affected file silc/client_ops.c.
+
+       * Implemented the UMODE command and user modes in general to the
+         client library and to the user interface.
+
+       * Implemented the UMODE command to the server.
+
+       * The server now sends UNKNOWN_COMMAND error status if client sends
+         unknown command.  Affected file silcd/command.c.
+
+       * All server commands now handle the command identifier the right
+         way when sending the command reply to the client.  The client can
+         use to identify the command replies with the identifier.
+
+Mon Mar 19 16:13:07 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added silc_server_get_client_route to resolve the route to
+         the client indicated by the client ID.  Affected file is
+         silcd/server.[ch].
+
+       * Added silc_server_relay_packet as general function to relay
+         packet to arbitrary destination.  This deprecates functions
+         like _send_private_message_key, _relay_notify etc.  Affected
+         file is silcd/packet_send.[ch].
+
+         Removed silc_server_send_key_agreement, 
+         silc_server_send_private_message_key and
+         silc_server_packet_relay_notify functions from the file
+         silcd/packet_send.[ch].
+
+       * Updated TODO.
+
+       * Implemented the SILC_NOTIFY_TYPE_KILLED notify handling in the
+         server.  Affected file silcd/packet_receive.[ch].
+
+       * Implemented the KILL command to the client.  Implemented the
+         SILC_NOTIFY_TYPE_KILLED notify handling in the client library.
+         Affected files lib/silcclient/command[_reply].c and
+         lib/silcclient/client_notify.c.  Implemented the KILL notify
+         printing in the user inteface.
+
+       * Fixed a lot silc_parse_nick memory leaks from the client
+         library in the file lib/silcclient/command.c.
+
+       * Changed the silc_server_send_notify_on_channels's `sender'
+         argument from SilcSocketConnection to SilcClientEntry to 
+         check the sender as entry and not as connection object and not
+         to send to the client provided as argument.  The affected file
+         is silcd/packet_send.[ch].
+
+       * The notify packets that are destined directly to the client used
+         to not to be processed by the server.  Now changed that and the
+         server processes all notify packets.  After relaying the packet
+         to the client the notify packet is processed in the server.
+
+       * The silc_server_free_client_data now checks whether there is
+         pending outgoing traffic for the client and purges the data to
+         the network before removing the client entry.
+
+Sun Mar 18 21:02:47 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added SILC_NOTIFY_TYPE_KILLED notify type.  It is sent when
+         an client is killed from the SILC Network.  Updated the protocol
+         specs accordingly.
+
+         Added new function silc_server_send_notify_killed to the
+         silcd/packet_send.[ch].
+
+       * Added function silc_server_packet_relay_notify to relay notify
+         packets that are destined directly to a client.  In this case
+         the server does not process the notify packets but merely relays
+         it to the client.  Affected file silcd/packet_send.[ch].
+
+         Added also silc_server_packet_process_relay_notify to check
+         whereto relay the notify.  Affected file is 
+         silcd/packet_receive.[ch].
+
+       * Implemented the KILL command to the server.
+
+       * Updated TODO.
+
+       * Added the backup schema desgined last fall to the protocol
+         specs for everyone to see.  The specification is in the
+         *-spec-xx.txt draft and the packet type definitions for the
+         backup routers is in *-pp-xx.txt draft.  Thusly, added also
+         new packet type SILC_PACKET_CELL_ROUTERS.
+
+       * A big security problem in the implementation discovered.  The
+         signoff of an client did not cause new channel key generation
+         which it of course should've done.  The channel keys must be
+         always re-generated when client leaves (or signoffs) the channel.
+         The silc_server_remove_from_channels funtion now handles
+         the channel key re-generation.
+
+       * Added `sender' argument to the silc_server_send_notify_on_channels
+         to not to send the client provided as argument.  Affected file
+         silcd/packet_send.[ch].
+
+Fri Mar 16 15:52:49 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Implemented OPER and SILCOPER commands into the server and
+         the client library.
+
+       * Added silc_auth_verify and silc_auth_verify_data to verify
+         the authentication directly from the authentication payload.
+         It supports verifying both passphrase and public key based
+         authentication.  Affected file lib/silccore/silcauth.[ch].
+
+       * Added `hash' field to the SilcIDListData structure.  It is the
+         hash negotiated in the SKE protocol.  Affected file is
+         silcd/idlist.[ch].
+
+       * Slight redesigning of the SilcAuthPayload handling routines.
+         Do not send SilcPKCS but SilcPublicKey as argument.
+
+       * Implemented the public key authentication support to the
+         serverconfig.  The public key is loaded from the provided path
+         and saved as authentication data to void * pointer.  Thus,
+         changed the unsigned char *auth_data to void *auth_data;
+
+       * Fixed SHUTDOWN command to send the reply before the server
+         is shutdown. :)  Affected file silcd/command.c.
+
+       * Fixed fatal bug in CONNECT command.  The hostname was invalid
+         memory and server crashed.  Affected file silcd/command.c.
+
+       * Fixed fatal bug in CLOSE command.  The server_entry became
+         invalid but was referenced later in the command.  Affected file
+         silcd/command.c.
+
 Thu Mar 15 12:46:58 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 
        * Fixed fatal bug in failure packet handling.  Server ignored
-         the failiure and thus crashed when it came.
+         the failure and thus crashed when it came.
+
+       * Updated TODO.
 
 Wed Mar 14 20:37:35 EET 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>