Wen May 12 21:35:22 1999  Niels Mller  <nisse@lysator.liu.se>

	* Configure tests for strerror and strsignal.

Tue May 11 20:22:05 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/sexp_test.c (main): Create the fd objects properly (old
	problem).

	* src/server_session.c (do_spawn_shell): Fixed typo.
	(do_send): Handle the case that session->err is NULL.

	* src/server_pty.c: Added a better warning message if opening
 	/dev/ptmx failes.

	* src/keyexchange.c (parse_kexinit): Use the improved
	parse_atom_list() function.

	* src/parse.c (parse_atoms): New function.
	(parse_atom_list): Read length field first, so that callers don't
	have to call parse_sub_buffer() manually.

	* src/client_pty.c (do_pty_continuation, make_pty_request): Moved
	the call of CFMAKERAW (Bazsi). 

	* src/channel.c (adjust_rec_window): Don't touch the
 	rec_window_size attribute here; that's done in
 	prepare_window_adjust().
	(do_channel_data, do_channel_extended_data): rec_window_size was
 	updated too many times, fixed. (Bazsi).

Mon May 10 23:20:54 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/server_session.c (make_pty): Added BASH_WORKAROUND (Bazsi).
	(server_session, do_spawn_shell): Allow the session->err field to
	be NULL. Probably some more functions need updating.

	* src/server_pty.c (pty_check_permissions): New function,
 	extracted from pty_grantpt_uid.
	(pty_allocate): Do some permissions check also on BSD (Bazsi).
	Also disabled the openpty() version.

	* src/crypto.h, src/Makefile.am.in: IDEA support (Bazsi).

	* src/idea.c: New file (Bazsi).

Sun May  9 20:17:27 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/keyexchange.c, src/keyexchange.h (kex_build_secret): New
 	function, implementing the changed session key generation in the
	transport-05 draft (pointed out by Joseph Galbraith).
	
	* src/server_keyexchange.c (do_handle_dh_init): Use
 	kex_build_secret().

	* src/client_keyexchange.c (do_handle_dh_reply): Use
 	kex_build_secret().

	* src/Makefile.am.in (EXTRA_DIST): Added compiler.scm to the dist.

Sun Apr 25 15:47:13 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/channel.c, src/channel.h, src/client.c, src/client.h,
 	src/client_pty.c, src/client_pty.c, src/command.h,
 	src/connection.c, src/keyexchange.c, src/lsh.c, src/lshd.c,
 	src/queue.c, src/resource.c, src/server.h, src/server_password.c,
 	src/server_pty.h, src/server_session.c, src/service.c,
 	src/service.h, src/session.c, src/tcpforward.c,
 	src/write_buffer.c, src/zlib.c: Removed old #if:ed out code.

	* src/server_session.c (do_close): Return a status code, rather
	than void.

	* src/lshd.c (main): Added pty support.

	* src/client_pty.c (make_pty_request): Bugfix: Select raw mode.

	* src/client.c (do_client_session_eof): Renamed the
	close_client_session function.
	(do_client_session_close): New function, to set the PENDING_CLOSED
	flag when the session is closed.
	(make_client_session): Install a close method.

	* src/channel.h (ssh_channel): Let the close method return a
	status value.
	* src/channel.c (channel_process_status): Moved processing of
	LSH_CHANNEL_PENDING_CLOSE after LSH_CHANNEL_FINISHED. This way, it
	is possible for the channels close-callback to return
	LSH_CHANNEL_PENDING_CLOSE. 

Tue Apr 20 00:00:58 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/resource.c (do_kill_all): Bugfix (use CAST_SUBTYPE rather
 	than CAST).

	* src/lsh.c (make_client_connect): Added calls die_on_null and
 	init_connection.

	* src/client.c (new_session): Initialize session->write from the
	connection. 

Mon Apr 19 16:23:22 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/channel.c (do_channel_success, do_channel_failure): Bugfix
 	(use CAST_SUBTYPE rather than CAST).

	* src/lsh.c: Adapted to the command language.

	* src/command.c (do_progn): Bug fix.

	* src/client_pty.c (make_pty_request): New function.

	* src/client.c (do_client_io): Renamed the do_io function, and
	turned it into the client_io command.
	(make_client_session): Removed the requests argument.
	(do_format_shell_request): New function.
	(request_shell): New command.
	#if:ed out a lot of old code. pty handling moved to client_pty.h. 

	* src/channel_commands.c (do_channel_request_command): Pass
	continuation pointer to the FORMAT_CHANNEL_REQUEST method.

	* src/invert-defs: Don't use echo "\n" (Bazsi).

Sun Apr 18 23:03:20 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/channel_commands.h (channel_request_command): Pass a pointer
 	to a pointer to the command's continuation as an argument. This
	replaces the want_reply argument, and it also makes it possible
	for the command to add a new continuation which is invoked when
	the peers response is received. 

Wed Apr 14 00:32:34 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/command.c (make_parallell_progn): New command.

	* src/channel_commands.h (channel_request_command): New class. 

	* src/channel_commands.c (do_channel_open_command): Bugfix: Use
	CAST rather than CAST_SUBTYPE for connection argument.

	* src/channel_commands.c (do_channel_request_command): New
 	function.

	* src/channel.c (init_channel): Init pending_requests queue.
	Deleted channel_success and channel_failure.
	(do_channel_success): Use pending_requests queue rather than
	channel_success and channel_failure.
	(do_channel_failure): Likewise.

	* src/channel.h (ssh_channel): New attribute pending_requests
	(a queue). Removed methods channel_success and channel_failure.

	* src/io.c (connect_callback): Fixed call to getsockopt.

	* src/io_commands.c (do_connect_continue): Check for fd < 0, and
	in this case, invoke the continuation with a NULL value.

	* src/io.c (connect_callback): Check socket error status, and
	invoke th FD_CALLBACK with -1 as argument if the connection
	failed.

	* src/resource.c, src/resource.h: Use the object_queue struct.
	Deleted struct resource_node, and associated allocation and gc
	functions.  

	* src/queue.c (object_queue_add_head): New function.
	(object_queue_add_tail): Likewise
	(object_queue_remove_head): Likewise
	(object_queue_remove_tail): Likewise

	* src/queue.h (object_queue): New struct. 

Tue Apr 13 21:24:08 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/server_pty.c (pty_grantpt_uid): Fixed pid/uid typo (Noted by
	Bazsi).

Mon Apr 12 22:20:01 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/server_session.c (do_alloc_pty): Pass uid on to
	pty_allocate(). 

	* src/server_pty.c (pty_grantpt_uid): New function to set up the
	permissions properly, when the current uid is different from the
	user that should own the pty.
	(pty_allocate): Added uid-argument, to take avantage of
	pty_grantpt_uid. 

Sun Apr 11 22:56:02 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/server.c, src/server.h, src/server_session.c,
	src/server_session.h: Moved session features (i.e. shell and pty
	handling) into a separate file.

	* src/password.h (unix_user): Moved definition to
	server_password.h. 

	* src/lshd.c (main): Added user authentication and connection
	service, now using the command language.

	* src/channel.h (make_connection_service): Removed START argument.
	Now returns a struct command *. 

	* src/channel.c (connection_service): Removed START attribute. 
	(do_connection_service): Use the command's continuation rather than
	the START attribute.

	* src/io.c (tcp_addr): Added this function again.
	(address_info2sockaddr_in): Use tcp_addr().

Wed Apr  7 21:30:35 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/channel.c, src/server.c: Started adapting the functions to
 	the command framework.

	* src/service.c, src/service.h: These files are almost obsolete
	now. #if:ed out most of them. 

	* src/userauth.h, src/server_userauth.c, src/server_password.c:
 	Reorganized user authentication. An authentication method takes
 	the data from a USERAUTH_REQUEST message, and returns some
 	userinfo-object if authentication was successful. The general
	(server-side) userauth-code invokes the right service with the
 	user-info as argument, and the result (typically a command taking
 	a connection as argument) is passed to the continuation of the
 	userauth command.

	* src/queue.h (FOR_QUEUE): Bugfix (Bazsi).

Tue Apr  6 21:17:15 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/compiler.scm: Added support for let and let*.
	(make-preprocess): New function.
	
Mon Apr  5 11:43:12 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/werror.c (werror_hex): Bugfix.

	* src/service.c: Moved server-specific functionality to server.c. 

	* src/server.c (make_service_request_handler): New function
	(replaces make_service_handler in service.c).
	(make_offer_service): New function (replaces the meta_service in
	service.c). 

	* src/lsh.c (make_client_connect): Invoke commands to perform user
 	authentication.

	* src/connection.c (handle_connection): Display packet type in
	debug messages. Uses packet_types.h.

	* src/command.h (COMMAND_RETURN, COMMAND_CALL, COMMAND_SIMPLE):
	Cast arguments to struct lsh_object *.

	* src/Makefile.am.in: Added packet_types.h and channel_commands.c.
	
	* src/client_userauth.c: Bent the user authentication mechanism
 	into a command.

	* src/client.c (request_service): Rewrote as a command. Also
	removed some other old code. 
	(make_request_service): Renamed function (was request_service()). 

Sun Apr  4 22:18:54 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/server.c (do_spawn_shell): Use the make_io_fd function.

	* src/lsh_writekey.c, src/sexp_test.c (main): Use the make_io_fd
 	function.

	* src/tcpforward.c (do_tcpip_connected): Use the make_io_fd
 	function.

	* src/lsh.c, src/lshd.c: Use the control language language.
 	Commented out a lot of features that are currently broken.

	* src/keyexchange.c (make_kexinit_handler): Removed finished
	argument. 

	* src/keyexchange.h (keyexchange_algorithm): Removed finished
	argument from the init method. 

	* src/connection_commands.c (connection_line_handler): Removed
	continuation attribute.
	(do_line): Don't invoke any continuation here; return LSH_OK and
	let the keyexchange-init handlers do their work.
	(make_connection_read_line): Removed continuation argument.

	* src/connection_commands.c (connection_command): Added randomness
 	attribute.
	(do_connection): Added call to connection_init_io.
	(make_handshake_command): Added randomness argument.

	* src/client_keyexchange.c (do_client): Removed finished
 	attribute.
	(do_handle_dh_reply): Pass connection to the
 	connection->established continuation (if non-NULL).

	* src/server_keyexchange.c (dh_server): Removed finished
	attribute.
	(do_handle_dh_init): Pass connection to the
	connection->established continuation (if non-NULL).

	* src/channel_commands.h (channel_open_command): Fixed declaration
	of the new_channel method. 

	* src/channel.c (do_channel_open_confirm, do_channel_open_failure,
 	init_channel): Use the channel_open_continuation attribute.

	* src/io_commands.c (do_listen, do_connect): Use new
 	address_info2sockaddr_in() function.
	(do_listen): If listen() failes, return LSH_COMMAND_FAILED, and
	never invoke the command's continuation.
	(make_simple_listen): New function.
	(io_log_peer_command): New command.

	* src/lsh.h (LSH_COMMAND_FAILED): New status code.

	* src/io.c (get_portno): New function.
	(tcp_addr): Commented out this function.
	(make_address_info_c): New function.
	(sockaddr_in2address_info): Renamed from sock
	(sockaddr2info): Fixed bug in format string.
	(address_info2sockaddr_in): New function.

	* src/format.c (format_decimal): New function (previously
	duplicated in several places).
	(ssh_format): New format %di to write decimal integers.
	(write_decimal_length): Use the format_decimal() function.

	* src/werror.c (werror_decimal): Use the format_decimal() function.

Fri Apr  2 17:00:13 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/make_class (process-expr): Fixed handling of the PARAMS
	attribute. Declare generated functions static.

	* src/io_commands.c (make_simple_connect): New function.

Tue Mar 30 21:48:08 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/read_line.c (do_read_line): Bug fix noticed by Bazsi.

Fri Mar 26 03:05:16 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/io_commands.c (listen_command_callback): Added BACKEND
	variable.  
	(do_connect): New function.

	* src/client_keyexchange.c (do_handle_dh_reply): Invoke the
 	connection's ESTABLISHED continuation if the key exchange is
 	successful.
	(dh_client_exchange, do_init_client_dh): Removed FINISHED
 	attribute.

	* src/command.c, src/command.h (command_die_on_null): New command.
 	Don't know how useful it is.

	* src/connection.c (make_ssh_connection): Take a continuation as
	argument. 

	* src/connection.h (ssh_connection): Added an ESTABLISHED
	continuation, which replaces the FINISHED field previously found
	in the keyexchange-related objects.

	* src/keyexchange.c (kexinit_handler): Removed the FINISHED
	attribute. 
	(initiate_keyexchange): Deleted some of the arguments. The kexinit
	is found inside the connection object, and so is any
	first_kex_packet. 

	* src/keyexchange.h: Changed the MAKE_KEXINIT method back. Added a
	first_kex_packet field to the kexinit object, which may be filled
	in by MAKE_KEXINIT.

Wed Mar 24 02:56:41 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/channel_commands.c, src/channel_commands.h: New files.

	* src/client.c (session_open_command): New class.

	* src/channel.h (ssh_channel): Replaced the open_confirm and
	open_failure methods with a command_continuation.

	* src/connection_commands.c: New file. The connection_command
	unifies some of the logic from in client.c and server.c.

	* src/io.h (address_info): New class.
	(fd_listen_callback): Use address_info rather than struct
 	sockaddr.

	* src/io.c (make_io_fd): New function.
	(io_read_write, io_read, io_write): Now takes a io_fd as argument,
 	rather than a numerical fd.

	* src/keyexchange.h (make_kexinit): New definition of the
 	MAKE_KEXINIT method. Should create and register a kexinit message,
	and return a string consisting of this message and any extra
	speculative message. Should not actually write anything.

Tue Mar 23 03:12:15 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/io_commands.c, src/io_commands.h: New files, for listen and
	connect commands.

Fri Mar 19 18:15:38 1999    <nisse@idonex.se>

	* src/make_class (process-expr): Generate code using more
	combinators. 

Fri Mar 19 01:03:50 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/combinators.c: New file. Implemented all of the I, K, S, B,
 	C S', B' and C' combinators.

	* src/command.c, src/command.h: Added collect_info_N and
	collect_state_N (n=1, 2, 3, 4) to handle builtin functions that
	need to collect some arguments before actually doing anything.

Wed Mar 17 00:07:07 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/compiler.scm (let-and): New macro.
	(match): Simple pattern matcher for optimizations.
	(optimize): New optimizer.
	(preprocess): Use the formal arguments in the right order.

	* src/algorithms.c: Enable CAST. Bug fixes.

Tue Mar 16 03:36:20 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/publickey_crypto.c (dh_process_server_msg,
 	dh_process_client_msg): Use GROUP_MEMBER to determine if dh-values
 	are valid. Currently, this method checks the size of the number,
 	but doesn't check that is indeed a member of the cyclic subgroup
 	used.

	* src/read_packet.c (do_read_packet): Handle the case where the
	first block contains an entire ssh packet (happens with twofish).

	* src/tcpforward.c (tcpforward_foo): Use COMMAND_UNIMPLEMENTED, so
	that the expression compiles.

	* src/make_class (output-expression): Bug fix.

	* src/io.c (do_read): Warn when called with a zero length.

	* src/command.c (command_unimplemented): New command (which aborts
	if called).

Mon Mar 15 00:56:18 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/digit_table.c (main): Fixed hex digits a-f.

	* configure.in: Disabled the AM_MAINTAINER_MODE macro.

Sun Mar 14 21:04:58 1999  Niels Mller  <nisse@lysator.liu.se>

	* README (ZLIB): Added canonical location of zlib (James Young). 

Fri Mar 12 17:03:47 1999  Niels Mller  <nisse@lysator.liu.se>

	* configure.in: Added AM_MAINTAINER_MODE (Ray). Added changequote
 	calls when testing for specific utmp fields (Ray).

Tue Mar  9 06:25:11 1999    <ray@zensunni>

	* doc/TODO: Fixed typo.

Sun Mar  7 20:32:52 1999    <ray@zensunni>

	* src/cast.c: New.
	* src/Makefile.am.in, src/crypto.c, src/crypto.h, src/algorithms.c:
	Adapted for CAST-128.

	* src/symmetric/include/cast.h, src/symmetric/cast.c: Added consts.
	Added cast_selftest().

	* src/symmetric/twofish.c (twofish_selftest): Fixed.
	
	* src/io.c, src/read_line.c, src/read_packet.c, src/read_scan.c: Added
	asserts to ensure read() is called with a length > 0.

	* doc/TODO: Removed the entry about CAST's patent status. RFC 2144
	doesn't mention patents, and the abstract suggests CAST-128 is
	unencumbered.

	* doc/TODO, src/userauth.h: Fixed typos.

Fri Mar  5 20:09:09 1999    <ray@zensunni>

	* src/symmetric/twofish.c: Buglet fix by Ruud.

	* make_am: Inserted space required for latest bash. (Noted by Ruud)

Fri Mar 12 02:00:53 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/tcpforward.c (tcpforward-foo): Added a first test expression
 	for the compiler.

	* src/make_class: Changed the magic tag. Now is "/* GABA:".
 	(process-expr): New function interfacing to compiler.scm.
	(process-input, process-class): Splitted the process-class
 	function into several functions.

	* src/command.c (gaba_apply, gaba_apply_S_1, gaba_apply_S_2): New
 	functions, to be called by automatically generated code.
	(command_K, command_K_1) : Implemented the K combinator.

Thu Mar 11 18:07:25 1999    <nisse@idonex.se>

	* src/bignum.c (bignum_next_prime): Fixed off-by-one overflow.

Wed Mar 10 17:26:59 1999    <nisse@idonex.se>

	* src/command.c (do_call_simple_command): COMMAND_CALL method for
	any command_simple instances.

Thu Mar 11 03:01:00 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/server_pty.c (tty_setctty): Fixed error message.

	* src/command.c: Made the builtin commands instances of
 	command_simple, which means that they can return results directly,
 	without any continuation function.

Wed Mar 10 17:26:59 1999    <nisse@idonex.se>

	* src/command.h (command_simple): New class. Like command, but can
	return a value immediately, rather than using a continuation
	function. 
	(STATIC_COMMAND_SIMPLE): New macro to define a static command.

Tue Mar  9 22:18:40 1999    <nisse@idonex.se>

	* src/command.c (make_apply): New function.
	Implemented the S and B combinators (no idea if they will turn out
	to be useful), and a listen function.

	* src/server.c (server_initiate, make_server_callback): Use new
 	fd_listen_callback type.

	* src/io.h (fd_listen_callback): New class.

	* src/io.c (tcp_addr): Moved this function from tcpforward.c.
	(listen_callback): Pass the peer address to the listen callback.

Mon Mar  8 19:22:30 1999    <nisse@idonex.se>

	* src/publickey_crypto.c (make_zn): New argument: order.

Mon Mar  8 00:29:17 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/command.c: New file.

	* src/io.c (write_callback): Use the write_buffer_consume()
	function. 

	* src/resource.c, src/resource.h, src/write_buffer.c,
	src/write_buffer.h: Use struct lsh_queue. 

	* src/write_buffer.h (write_buffer->length): New instance
 	variable.

	* src/write_buffer.c (write_buffer_consume): New function.

	* src/queue.c, src/queue.h: New files. Generic doubly linked list.

Sun Mar  7 15:21:43 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/werror.c (werror_decimal): Bug fix.

	* src/server.c (do_open_session): Adapted to the new CHANNEL_OPEN
 	convention.
	(make_server_connection_service): Renamed (was
 	make_server_session_Service).
	(server_connection_service): New instance variable, backend.
	Needed for tcp forwarding.

	* src/io.c (io_read_write): Changed return type to struct io_fd *
	(Bazsi). 

	* src/tty.h (CFMAKERAW): Set the VMIN and VTIME attributes.

	* src/tcpforward.c, src/tcpforward.h: New files (Bazsi). 

	* src/channel.h (channel_open_callback): New class, for
	opening new channels asyncronously.
	* (channel_open): Handler method now takes a channel_open_callback
	argument.

	* src/channel.c (channel_open_response): New class.
	(format_global_success): New function.
	(do_channel_open_response): New function. 
	(make_channel_open_response): New function.
	(do_channel_open): Moved most processing into do_channel_open
	response. 

Fri Mar  5 03:23:06 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/symmetric/twofish.c, src/symmetric/twofish.h
 	(twofish_selftest): Made non static.
	(twofish_setup): Removed memory allocation. Instead, a
 	TWOFISH_pointer is given as an argument.
	(twofish_encrypt, twofish_decrypt): Use correct pointer types. No
 	void * or casts.

	* src/symmetric/Makefile.am.in (noinst_PROGRAMS): Added
	twofish_test and generate_q.
	(Makefile.am): Updated the rule for this target.

	* src/twofish.c (twofish_instance): Include the context struct
	directly in the instance, without extra indirection.

	* src/crypto.c: Marked this file as obsolete.

	* src/algorithms.c (default_crypto_algorithms): Added
	ATOM_TWOFISH_CBC and ATOM_IDEA_CBC.

Wed Mar  3 13:26:02 1999    <ray@zensunni>

	* src/symmetric/twofish.c, src/symmetric/include/twofish.h: New.
	LGPL-ed Twofish implementation by Ruud de Rooij <ruud@debian.org>.
	* src/twofish.c: New. Based on src/blowfish.c .
	* src/atoms.in, src/Makefile.am.in, src/algorithms.c, src/crypto.c,
	src/crypto.h: Updated for Twofish.

Mon Mar  1 01:36:54 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/publickey_crypto.c (init_diffie_hellman_instance): Include
 	length fields when hashing.

	* src/publickey_crypto.c: Some support for broken ssh2 signatures
	(Bazsi).
 	(generic_dsa_sign): New function.
	(do_dsa_sign_kludge): New function.
	(make_dsa_signer_kludge): New function.

	* src/client_keyexchange.c (do_init_client_dh): Renamed the
	do_init_dh function.

	* src/keyexchange.h (keypair_info): New type. 

	* src/keyexchange.c (do_handle_kexinit): Added ssh2-dss kludge
	(Bazsi). 
	(make_keypair_info): New function.

	* src/lshd.c: Deleted old code. Use a keypair_info alist for the
 	host key(s).

	* src/server_keyexchange.h, src/server_keyexchange.c: Use a
	keypair_info alist.
	
	* src/format.c (ssh_format): Added 'u' modifier, for unsigned
	bignums. 

	* src/connection.h (connection): Replaced the client_version and
	server_version fields with an array. 

	* src/atoms.in: Added ssh-dss-kludge atom (used for supporting
 	buggy ssh2 versions).

	* configure.in: Test for syslog.h.
	New --with-ssh2-dsa-kludge option.

Sun Feb 28 19:29:36 1999    <ray@zensunni>

	* configure.in: Fixed struct utmp member tests.

	* misc/Makefile.am.in: Include ctags.mk.

	* src/symmetric/twofish.c, src/symmetric/include/twofish.h: New.
	Placeholders.
	* src/symmetric/Makefile.am.in: Updated for twofish.

	* src/atoms.in: With the updated draft, 256-bit TwoFish is now
	recommended.

Sun Feb 28 20:01:32 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/cvs_headers, src/used_headers: Fixes for compatibility with
	non-GNU sed. 

Sat Feb 27 04:43:25 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/werror.c, src/werror.h (set_error_ignore): New function.

	* src/string_buffer.c (string_buffer_clear): Bug fix.

	* src/server_pty.h (pty_info): Use string type for the tty_name
	field. 

	* src/server_pty.c (pty_allocate): Save the file name of te slave
	tty. Corrected the returned values.
	(tty_setctty): Ugly "fix" in the SysV-version of this function.
	Better error messages.

	* src/server.c (do_spawn_shell): Do child's pty handling before
 	closing fd:s. Pass struct pty_info to tty_setctty(). More debug.

	* AUTHORS, src/reaper.c: Fixed typos. (Ray)
	
	* configure.in, acconfig.h: Check for ut_addr_v6 in struct utmp; check
	for utmpx.h . Fixed openpty check. Check for syslog(). (Ray)

Mon Feb 22 22:49:09 1999  Niels Mller  <nisse@lysator.liu.se>

	* src/werror.c (werror_hex): Was completely broken. Fixed.

	* configure.in: Fixed uses of AC_TRY_COMPILE.

Thu Feb 18 21:48:54 1999    <ray@zensunni>

	* (many files): Updated FSF address.

	* AUTHORS: added getopt origin.
	
	* configure.in, acconfig.h: Check for ut_addr_v6 in struct utmp; check
	for utmpx.h . Fixed openpty check. Check for syslog(). Fixed utmp
	variations detection.

	* doc/DSA.5, doc/SHA.5, doc/SPKI.5, doc/lsh.1, doc/lsh_keygen.1,
	doc/lsh_writekey.1, doc/lshd.8, doc/secsh.5: New.

	* src/server.c: Include strings.h if available (for bzero()); utmp
	support; uptmx support.

	* AUTHORS, src/reaper.c: Fixed typos.
	
Thu Feb 18 03:35:45 1999    <nisse@idonex.se>

	* src/zlib.c: Reorganized. Now uses string_buffer for allocation.

	* src/xalloc.c (debug_malloc, debug_free): Allocate memory in
	units of long. Hopefully, this should solve the alpha alignment
	problems. 

	* src/werror.c: Initial syslog support.
	(write_syslog): New function (Ray).
	(set_error_syslog): New function.

	* src/tty.c (tty_encode_term_mode): New implementation, by
	Keresztg.

	* src/string_buffer.c, src/string_buffer.h: New files. Handling of
	strings whose lengths are not known in advance. Currently used
	only by zlib.c.

	* src/server_pty.c (pty_allocate): Added Ray's UNIX98-style pty
	allocation. 
	(tty_setctty): Moved from tty.c, and adapted to SysV/UNIX98.

	* src/memcmp.c: Copied implementation from GNU textutils.

	* src/abstract_crypto.c (memxor): Moved this function into a
	separate file.

	* make_am: Use a less efficient, but appearantly more rubust
	method to generate the .dist_headers files.

	* configure.in: Added tests for syslog, utmp, unix98/sysv ptys,
	and fixed zlib configuration.

Tue Feb 16 23:32:51 1999    <nisse@idonex.se>

	* src/tty.h, src/tty.c: Fallback macro for the cfmakeraw function.

	* src/lsh.c, src/lshd.c: Make it possible to disable pty support a
 	compile time.

	* src/zlib.c: Temporarily disable zlib support, as it is a
	dysfunctional state at when I'm building the 1999-02-16 snapshot.

	* src/channel.h, optionchannel.c, optionconnection.c,
 	optionclient.c: Moved the channel table pointer to the connection
 	object, and general cleanup
	(Bazsi).

	* configure.in: New option --without-pty to disable pty support. 

	* make_am, Makefile.am.in: Use BASH variable to start scripts.

	* misc/ctags.mk: New file.

Sat Feb 13 17:21:07 1999    <nisse@idonex.se>

	* configure.in: Added test for the cfmakeraw function. 

	* src/client.c (CFMAKERAW): Define this as a macro, if there is no
	cfmakeraw function. (Rafal Maszkowski <rzm@icm.edu.pl>)

	* configure.in: Check if libutil defines openpty.

	* src/server.c (do_spawn_shell): Use STDIN_FILENO when calling
	tty_setctty, not pty->slave. The latter fd is already closed.
	(Noted by Keresztg).

	* configure.in (SHUTDOWN_WORKS_WITH_UNIX_SOCKETS): Use AF_UNIX,
	not AF_LOCAL (reported by Heinz Knutzen <heinz.knutzen@landsh.de>)

Thu Feb 11 14:43:51 1999    <nisse@idonex.se>

	* src/channel.c (do_channel_request): Delay freeing of packet
	(reported by Ray Dassen). 

Sun Jan 31 04:25:30 1999    <nisse@puck>

	* src/werror.c (werror_vformat): New function, with different
 	format specifiers than standard printf. Many more specialized
 	public functions removed.

	* src/format.c (format_size_in_decimal): Renamed and exported the
	size_in_decimal() function.

	* src/charset.c: New function.
	(low_utf8_to_local): New function.
	(utf8_to_local): New argument STRICT.

Thu Jan 28 08:51:18 1999    <nisse@puck>

	* src/tty.c (tty_encode_term_mode): New function (dummy).
	(tty_decode_term_mode): New function (moved from server_pty.c).

	* src/server.c (do_spawn_shell): pty support. Support for the
	argv0 = "-*sh" convention.
	(make_pty_handler): New function.

	* src/parse.c (parse_uint8): Use unsigned for the result.

	* src/lshd.c (main): Integrated sshd1 and pty support.

	* src/lsh.h (LSH_CHANNEL_CLOSE): New status value.

	* src/lsh.c (main): pty support.

	* src/hmac.c (make_hmac_instance): Bug fix (Joseph Galbraith
 	<galb@rt66.com>)

	* src/encrypt.c (do_encrypt): Update sequence number even if no
	mac is in use. (Reported by Joseph Galbraith <galb@rt66.com>).

	* src/client.c (make_shell_request): New function.
	(make_pty_request): New function.
	(do_open_confirm): Handle the new linked list of channel requests.
	(request_info): New class.

	* src/channel.c (channel_process_status): Handle
 	LSH_CHANNEL_CLOSE.
	(do_channel_success, do_channel_failure): Ignore messages that
 	there is no handler for
	(most likely, becase we have decided to give up and close the
 	channel).

	* src/Makefile.am.in: Removed most program_SOURCES definitions.

	* configure.in: Commented out the sshd1 related tests.
	
	* configure.in: Check for openpty(). Test for BSD style pty names.

1999-01-19  Gordon Matzigkeit  <gord@trick.fig.org>

	* server.c (do_spawn_shell): Make sure session->user->shell is not
	null before we dereference it.
	Set argv[0] to be the shell name wth a prepended hyphen.

1999-01-19  Gordon Matzigkeit  <gord@trick.fig.org>

	* src/Makefile.am: Don't clobber files unless the new one was
	correctly regenerated.
	
Tue Jan 26 06:11:47 1999    <nisse@puck>

	* client_pty.c client_pty.h server_pty.c server_pty.h tty.c tty.h:
	Added new files.

1999-01-21  Gordon Matzigkeit  <gord@trick.fig.org>

	* src/server.h: Always include ssh1_fallback.h, and fix typo.

	* src/server.c (server_initiate): If we need to delay the key
	exchange, initialize a kexinit here and save it in
	CONNECTION->KEXINITS[CONNECTION_SERVER] until DO_LINE has a chance
	to use it.

	* src/connection.c (make_ssh_connection): Use macros rather than
	magic numbers to index KEXINITS and LITERAL_KEXINITS.

	* src/server.c (do_line): Fix transposed arguments and missing
	comma in SSH1_FALLBACK call.

	* acconfig.h: Remove references to SSHD1.

	* configure.in: Get rid of all the checks for SSHD1.  The user
	should supply it at runtime.

	* src/lshd.c (main): Implement the `--ssh1-fallback' flag to allow
	people to specify an sshd1 at runtime.

	* src/version.h (SSH1_SERVER_PROTOCOL_VERSION): Only use version
	1.99 if we were told to fallback to ssh1.

	* src/ssh1_fallback.h: SSHD1 does not need the port number because
	we invoke it as if we were inetd.
	src/ssh1_fallback.c: Likewise.
	
Tue Jan 19 16:12:16 1999    <nisse@puck>

	* src/read_line.h: Changed prototype for line handlers.
	* src/read_line.c (do_read_line): Changed prototype for line handlers.
	* src/client.c (do_line): Changed prototype for line handlers.

	* src/server.c (server_initiate): Pass fd and fallback object to
	make_server_read_line.
	(server_initiate): If ssh1 fallback is enabled,delay
	initiate_keyexchange until after that the clients version string
	has been received.
	(do_line): Do the delayed initiate_keyexchange now.
	(do_line): Invoke the fallback method.

	* src/ssh1_fallback.h, src/ssh1_fallback.c: New files.

Thu Jan 14 13:48:04 1999    <ray@zensunni>

	* doc/lsh.1, doc/lsh_keygen.1, doc/lsh_writekey.1 doc/DSA.5, doc/SHA.5,
	doc/secsh.5, doc/lshd.8: new.

Thu Jan 14 09:09:06 1999    <ray@zensunni>

	* lsh_keygen.c (usage, main): The algorithm employed is called DSA, not
	DSS. DSS is the name of the standard that describes DSA.

Sat Jan  9 16:12:16 1999    <ray@zensunni>

	* server.c (do_line) Rearranged SSH1 fallback skeleton code.

	* io.c (read_callback), reaper.c: Fixed typos.

	* lib/Makefile.am.in, include/Makefile.am.in: added rule for making
	.dist_headers (via the toplevel Makefile).

Fri Jan  8 22:26:44 1999    <ray@zensunni>

	* Makefile.am.in (depend): Run "make depend" in lib too.
	  "make dist" now works out of the box.
	
	* server.c (do_line): Started SSH1 fallback code.

Thu Jan  7 20:16:10 1999    <ray@zensunni>

	* Makefile.am.in: remove .dist_classes and the various .dist_headers
	and Makefile.am's as part of maintainer-clean.
	Added rule to remake the various Makefile.am's from the toplevel dir. 

	* Makefile.am.in, lib/Makefile.am.in, include/Makefile.am.in (ctags):
	Improved the ctags generation.

Wed Jan  6 22:03:16 1999    <ray@zensunni>

	* Makefile.am.in: Added rules to generate .dist_classes and the various
	.dist_headers . Added dist-hook target which depends on these to get
	"make dist" closer to being sane.

	* make_am: Don't output the double backslash for continuation when
	./cvs_headers or ./used_headers output is empty, so no broken
	Makefile.am's are generated (due to the definition of cvs_headers
	and/or dist_x_files assimilating the text following them/it).

Tue Jan  5 19:12:36 1999    <ray@zensunni>

	* Makefile.am.in: New try at building dependency files.

Tue Jan  5 18:26:01 1999    <ray@zensunni>

	* NEWS, connection.c, keyexchange.c, zlib.c: Fixed typos.

Tue Jan 19 03:20:29 1999    <nisse@puck>

	* make_am: Recurse to find all subdirectories *before* invoking
	the used_headers script. 

Thu Jan 14 04:36:41 1999    <nisse@puck>

	* dss_keygen.c (dss_nist_gen): Fixed off-by-one bug, discovered by
	"Joseph Galbraith" <galb@rt66.com>.

	* configure.in: Check for poll.h, sys/poll.h and crypt.h.

Mon Jan 11 15:35:02 1999    <nisse@puck>

	* Makefile.am.in (EXTRA_DIST): Add jpoll.c, jpoll.h, getopt.h,
	getopt.c and getopt1.c to the distribution.

	* io.c (get_inaddr): Check HAVE_INET_ATON.

Sun Jan 10 21:56:37 1999    <nisse@puck>

	* lshd.c (usage): Improved message.
	(read_host_key): New function.
	(main): Read host key from a file.

	* sexp.c (sexp_n, sexp_un): Renamed and fixed this functiom
	(doesn't use ssh_format anymore).
	(sexp_sn): Implemented.
	(sexp_assz): New function.
	(sexp_get_un): New function.

	* io.c (blocking_read): New function.

Fri Jan  8 09:44:12 1999    <nisse@puck>

	* sexp_streamed_parser.c (base64_decode): Fixed test for leftover
	bits. 

	* configure.in (CPPFLAGS): Add -I$srcdir (needed for lsh_types.h
 	to be found, when compiling in subdirectories, with VPATH).

	* sexp.c (sexp_contents): New function.
	(sexp_display): New function.
	(do_vector_get): Use CAST_SUBTYPE.
	(sexp_eqz): New function.
	(sexp_check_type): New function.

	* read_scan.c (do_read_scan): Check if the current scanner is NULL
 	_after_ scanning each character.

	* bignum.h: Fix tests for gmp2/gmp.h (patches from Kalle Olavi
 	Niemitalo <tosi@ees2.oulu.fi>).

Thu Jan  7 16:25:50 1999    <nisse@puck>

	* sexp_streamed_parser.c: Added base 64 decoder.

	* sexp.c (encode_base64): Bug fix (don't use several ++ in an
 	expression without sequence points).

	* read_scan.h (TOKEN_NONE): New constant (used by the base64
 	decoder).

Tue Jan  5 05:54:34 1999    <nisse@puck>

	* keyexchange.c (kex_make_key): Fixed key expansion.

	* des.c (make_des_instance): Fix _odd_ parity.

	* cbc.c (do_cbc_encrypt): Bug fix.
	(do_cbc_decrypt): Handle the case src == dst correctly.

	* cascade.c (do_make_cascade): Make sure keys are applied in the
	right (i.e. reversed) order when decrypting.

	* Makefile.am.in (depend): Disabled the rule to explicitly build
 	dependency files.

Sun Jan  3 16:54:29 1999    <ray@zensunni>

	* digit_table.c: Fixed declaration of main.

	* Makefile.am.in: remove .x files as part of maintainer-clean.

	* Makefile.am.in, lib/Makefile.am.in, include/Makefile.am.in: added
	support for ctags.

	* configure.in: Remove superfluous spacing in compiler warnings.

	* version.h, client.c (client_initiate), server.c (server_initiate):
	Split PROTOCOL_VERSION in CLIENT_PROTOCOL_VERSION and
	SERVER_PROTOCOL_VERSION, so the client won't report version 1.99 .

	* configure.in: Look for SSH1 daemon as plain `sshd' too. Test that it
	is usable.

Sat Jan  2 18:25:16 1999    <ray@zensunni>

	* TODO: Added logging; Noted we can't currently use Rivest's sexp code.

	* resource.h, lsh_types.h: fixed typo.

	* Makefile.am.in, lib/Makefile.am.in: Added pattern rule for
	dependencies; added phony target `depend' to force dependencies to be
	remade; remove dependency files (.P) as part of maintainer-clean.

Fri Jan  1 18:08:03 1999    <ray@zensunni>

	* acconfig.h, configure.in, server.c, version.h: Added skeleton for
	SSH1 fallback support.

	* TASKLIST: Added SSH1 fallback support.

	* configure.in: Rewrote the comment about _GNU_SOURCE .

	* AUTHORS, HACKING, NOTES, README, TODO: spelling, grammar fixes.

	* TASKLIST: We have zlib support now.

Mon Jan  4 11:25:43 1999    <nisse@puck>

	* werror.c: Avoid using stdio functions.

	* keyexchange.c (make_test_kexinit): Commented out this function.

	* io.c (write_raw): New function.
	(write_raw_with_poll): -"-

	* alist.c (alist_addv): New function.
	(alist_add): -"-

Fri Jan  1 04:20:10 1999    <nisse@puck>

	* make_char_classes (make-char-classes): Use #ifdef to separate
	the table from the #defines.

	* lsh_types.h (LSH_PARSED_OBJECT): New status code.

	* io.c: Include lsh headers *before* system headers.
	Use jpoll.h, not poll.h.

	* io.c: (get_inaddr): Use inet_aton. How portable is that?

	* poll.h, poll.c, pollemu.h, pollemu.c: Use the names jpoll (that
 	is the names used originally by Sean Reifschneider
 	<jafo@tummy.com>).

Thu Dec 31 15:29:59 1998    <ray@penguin.wi.leidenuniv.nl>

	* PORTS: new file.

	* io.c: #include "config.h" so the #ifdef HAVE_POLL works.

	* poll.h, pollemu.h: Renamed poll.h to pollemu.h; thus it will not be
	found instead of a system poll.h whith -I. or -I$(srcdir) .
	* pollemu.c, pollemu.h: Renamed too.
	* io.c, pollemu.c: Changed #include accordingly.
	* configure.in: Changed accordingly.

	* configure.in: check for `gethostbyname' instead of `hostbyname'.

	* io.c: define INADDR_NONE if the system doesn't provide it (e.g.
	Solaris).

	* io.c: #include <netinet/in.h> for struct in_addr.

Wed Dec 30 17:38:03 1998    <ray@penguin.wi.leidenuniv.nl>

        * io.c (get_inaddr): use symbolic constant to check inet_addr
        result; fixes name resolving on Linux/Alpha.

Thu Dec 31 00:06:43 1998    <nisse@puck>

	* server.c (do_open_session): Mark arguments as UNUSED.

	* read_packet.c (do_read_packet): Signedness fixes.

	* publickey_crypto.c (make_dss_verifier): Mark closure algorithm
	as UNUSED.

	* packet_ignore.c (do_ignore): Mark arguments as UNUSED.

	* make_class (do-struct-free-function, do-struct-mark-function):
	Avoid warnings about unused parameters when the generated
	functions are empty functions.

	* keyexchange.c (kex_make_key): Signedness fix.

	* io.c (get_inaddr): Use the protocol argument.

	* disconnect.c (do_disconnect): Mark arguments as UNUSED.

	* des.c (make_des_instance): Mark arguments as UNUSED.

	* debug.c (do_rec_debug): Mark arguments as UNUSED.

	* connection.c (do_fail): Marked connection argument UNUSED.

	* configure.in (CPPFLAGS): Add more warning flags. But *not*
	-Wcast-align.

	* client_userauth.c (do_userauth_banner): Marked connection
	argument UNUSED.

	* client_password.c (read_password): Marked max_length argument
	UNUSED.

	* client.c (client_close_die): Marked closure argument UNUSED.

	* channel.c (do_window_adjust): Marked connection argument UNUSED.
	(do_channel_data): -"-
	(do_channel_extended_data): -"-
	(do_channel_eof): -"-
	(do_channel_close): -"-
	(do_channel_open_confirm): -"-
	(do_channel_open_failure): -"-
	(do_channel_success): -"-
	(do_channel_failure): -"-

	* arcfour.c (make_arcfour_instance): Mark mode argument UNUSED.

	* io.c (get_inaddr): use symbolic constant to check inet_addr
 	result; fixes name resolving on Linux/Alpha.

Wed Dec 30 11:57:28 1998    <ray@zensunni>

	* atoms.in: added algorithms names used by SSH 2.0.11 (commented
 	out).

	* configure.in: Enable a few more warnings.

	* lib/desTest.c (method, encode, decode): ANSIfied function
	declarations.

	* include/des.h, desCode.h, desKerb.c, desQuick.c, desTest.c,
 	desUtil.c, desdata.c, desinfo.h: The DES code's copyright notice
 	is distributed in descore.README rather than plain README.

	* abstract_crypto.c (gcd): Avoid unsigned underflow.

	* sexp.c, sexp.h (sexp_nullp, sexp_c, sexp_a, sexp_z, sexp_n,
 	sexp_sn, sexp_format, encode_base64): Added const.

	* TODO: removed obsolete entries; made a separate section for
 	freeness issues, and noted scsh's non-freeness.

	* TASKLIST, TODO: Fixed typos.

Wed Dec 30 01:14:28 1998    <nisse@puck>

	* lsh_types.h (LSH_SYNTAX): New error code.

	* lib/desTest.c (now): Disable use of rusage.

	* sexp.c: Started on parser. Not at all working yet.
	* sexp.h (sexp_iterator): Added iterator abstraction.

	* lsh_types.h (MAX): Bug fix (by ceder).

Mon Dec 28 14:14:57 1998    <nisse@puck>

	* keyexchange.c (kex_make_key): Expand keys, when the required key
	length is longer than tha hash output. (Bazsi).

Sun Dec 27 06:37:40 1998    <nisse@puck>

	* compress.c (packet_compressor): Removed the mode variable.

	* server.c (do_line): Compression support.

	* make_class: New type special-struct.

	* lsh.c (main): Zlib support.
	* lshd.c (main): Zlib support.

	* keyexchange.c (kex_make_deflate): New function.
	(kex_make_inflate): New function.
	(do_handle_newkeys): Compression support.
	(make_newkeys_handler): -"-
	(do_install): -"-

	* compress.h, compress.c, abstract_compress.c,
	abstract_compress.h, zlib.h, zlib.c: New files (by Bazsi).
	
	* connection.c (connection_init_io): Compression support.
	* client.c (do_line): Compression support.

	* client.c (do_exit_signal): Send CHANNEL_EOF.

	* configure.in: Fixed the configure test for shutdown. Check for
	zlib.

Sat Dec 26 02:37:18 1998    <nisse@puck>

	* keyexchange.c (do_install): Bugfix: Look at closure->is_server
	when generating MAC-keys (noted by Bazsi).

	* lsh_keygen.c (main): Added getopt support. New options for
	algorithm and output style.

Wed Dec 23 23:06:45 1998    <nisse@puck>

	* format.c (ssh_vformat_length): Added 'd' modifier, for
	sexp-style length prefixes.
	(ssh_vformat_write): -"-

Sun Dec 20 20:11:02 1998    <nisse@puck>

	* arcfour.c, blowfish.c, cascade.c, cbc.c, des.c, hmac.c, md5.c,
	sha.c: New files, extracted from crypto.c and abstract_crypto.c.
	
	* server.c (do_line): Accept client version 1.99, if
	DATAFELLOWS_SSH2_GREETING_WORKAROUND is defined.

	* randomness.c (make_poor_random): Allow NULL init string. Use pid
	for seeding.
	(make_device_random): New function.
	(make_reasonably_random): New function.

	* bignum.c (bignum_write): New function.
	(bignum_random_size): New function.
	(bignum_small_factor): New function.
	(bignum_next_prime): New function.

	* Makefile.am.in (noinst_LIBRARIES): Collect most object files
	into liblsh.a.

Fri Dec 18 01:53:22 1998    <nisse@puck>

	* server.c (do_eof): Consider closing (if CHANNEL_SENT_EOF and
	CHANNEL_CLOSE_AT_EOF are both set).

	* keyexchange.c (make_test_kexinit): Added hmac-md5 to the list of
	acepted mac algorithms.

	* io.h (CLOSE_EOF): Changed the meaning of this constant. Now used
	also for EOF on writing.
	* io.c (prepare_write): Use the close_reason CLOSE_EOF when a
 	closed write_buffer has been flushed successfully.

	* io.c (write_callback): Report EPIPE and other write failures
	differently.
	

	* crypto.c: Added md5 support by Balazs Scheidler.

	* client.c (do_exit_status): Bugfix: Changed && to &.

	* channel.c (channel_close_callback): Don't close channel when a
	connected file is closed when we expect it.

	* resource.c (do_free_resources): *Never* call lsh_object_free,
	except from the gc_sweep function!

Thu Dec 17 16:27:22 1998    <nisse@puck>

	* server.c (make_process_resource): New function.
	(server_die): Kill resources associated with the connection.
	(do_close): New callback function till kill the process if the
	channel is closed unexpectedly.

	server.c (do_exit_shell): Don't close the process's stdin, or the
 	channel, until the client asks for it.

	* server.c (make_server_close_handler): Take connection as
	argument.

Wed Dec 16 01:33:25 1998    <nisse@puck>

	* resource.h, resource.c: New files.
	
	* channel.h (CHANNEL_CLOSE_AT_EOF): This flag now means that
	the channel should be closed when EOF have been both sent and
	received.
	* channel.c (channel_eof): New meaning of CHANNEL_CLOSE_AT_EOF
	flag.

	* client.c (do_exit_status): Send eof, if we haven't done that
	already.

	* channel.c (do_channel_eof): Don't initiate close automatically
	when eof has been both sent and received.

	* list.c (make_int_listv): New function
	(make_object_listv): New function

	* keyexchange.c (do_install): Unified key installation.

	* client_keyexchange.c (do_handle_dh_reply): Better handling of
	weak keys (i.e. INSTALL_KEYS() returning NULL).
	* server_keyexchange.c (do_handle_dh_init): -"-

Tue Dec 15 00:01:33 1998    <nisse@puck>

	* xalloc.c (lsh_list_alloc): Avoid unsigned under flow when length
	is zero.

Mon Dec 14 21:58:27 1998    <nisse@puck>

	* parse.c (parse_atom_list): New limit argument; longer lists will
	return NULL.

Sat Dec 12 11:11:23 1998    <ray@zensunni>

	* configure.in: Clarified comment. Added several warnings.

	* keyexchange.c (select_algorithm): Had a terminiation condition
 	"i < LIST_LENGTH(client_list) >= 0" in a for loop, which is
 	probably nonsensical. Removed >= 0 part.

	* lsh_types.h: Introduced UNUSED annotation. Enable GNU libc
	extensions. Note: lsh_types.h must be included before any system header
	for this to work properly.

	* Makefile.am.in: Make gperf produce ANSI C output, and postprocess it
	to fully initialise wordlist.

	* lshd.c, lsh.c: Added a short usage string.

	* include/crypto_types.h: Improved error messages.

	* process_atoms: removed `.sh' from generator name in output.

	* include/idea.h, lib/idea.c: Added note about IDEA being patent
	encumbered.

	* channel.c, keyexchange.c, lib/md5.c, lib/sha.c, pad.c, parse.c,
	randomness.c, write_buffer.c: #include <string.h> for memcpy().

	* bignum.c: #include <stdlib.h> for alloca().

	* server_password.c: #include <crypt.h>

	* io.c, reaper.c: Removed obsolete use of sa_restorer field of struct
	sigaction. (This broke compilation on Linux/Alpha with glibc 2.0.high).
	Initialised struct sigaction in a more portable fashion.

	* bignum.c, charset.c, client_userauth.c, format.c, format.h, io.c,
	list.c: Signedness/type fixes.
	
	* channel.c, client.c, client.h, debug.c, debug.h, disconnect.c,
	disconnect.h, format.c, format.h, keyexchange.c, keyexchange.h,
	process_atoms, server.c, server.h, werror.c, werror.h: Constness
	improvements.

	* client_userauth.c, format.c: Added internal prototypes.
	
	* crypto.c: Added UNUSED annotations.

	* lib/util.c, lib/util.h, include/types.h: New. Bridge from GPG style
	to lsh style, for blowfish.

	* include/blowfish.h, lib/blowfish.c: Added blowfish code from GPG.

	* crypto.c, crypto.c.x, crypto.h, lib/Makefile.am.in, lshd.c, lsh.c:
	Added blowfish support.

	* lib/Makefile.am.in: added dependency of desUtil.o on the generated
	DES header files.

	* TODO: Additions.

	* Various spelling fixes.

Tue Dec  8 10:29:50 1998    <nisse@puck>

	* server_password.c (lookup_user): Integrated support for shadow
 	passwords, by Keresztg <kg230@hszk.bme.hu>.

	* server.c (do_exit_shell): Close channel, if we have already sent
	EOF.

	* xalloc.c (lsh_object_clone): New function.

	* server_keyexchange.c (do_init_dh): Copy the server key (as
	strings can't be shared).

	* crypto.c (do_sha_copy, ): Use the CLONE macro instead of memcpy to
	copy instances.
	(do_hmac_copy): -"-

Fri Dec  4 02:30:28 1998    <nisse@puck>

	* (practically every file): Adapted to new gc and object system.

	* xalloc.c (lsh_object_check_subtype): Allow NULL pointers. They
	are occasionally permissible (for instance, the NULL crypto
	algorithm), and when they aren't the error will be detected early
	anyway.
	(lsh_object_check): -"-

	* keyexchange.c (do_handle_kexinit): Use an object_list for
 	passing around the selected algorithms. The void ** that was used
 	earlier was unfriendly to the gc.

Sun Nov 22 00:57:16 1998    <nisse@puck>

	* lsh.c (main): Bug fix (pass *address* of crypto_rc4_algorithm).
 	Thanks to Keresztg <kg230@hszk.bme.hu>.

	* lshd.c (main): -"-

	* lsh_types.h: Moved definitions of UINT* to
	include/crypto_types.h.

	* io.c: Use Sean Reifschneider's poll-by-select emulation if
	poll() is unavailable.

