-
Niels Möller authored
Rev: ChangeLog:1.134 Rev: ChangeLog.1:1.1
Niels Möller authoredRev: ChangeLog:1.134 Rev: ChangeLog.1:1.1
To find the state of this project's repository at the time of any of these versions, check out the tags.
ChangeLog.1 99.29 KiB
1999-12-20 Niels Mller <nisse@cuckoo.localdomain>
* src/scm/compiler.scm (split-list-at): New utility function.
Fixed spelling of make-application.
(do-let): Invoke the preprocessor on the value list.
(make-flat-application): Accept a list of arguments.
(flatten-application): Handle applications with more than one
argument.
(reduce-expr): New function to try to reduce expressions, mostly
for debugging.
* src/spki_commands.c (RETURN_USERKEYS): New macro.
(spki_read_acl, spki_read_hostkeys): Use prog1 for proper
evaluation order.
(make_spki_read_userkeys): New function.
* src/spki.c (do_spki_tag_list_match): Bug fix.
(spki_sexp_to_tag_list): Bug fix.
(spki_make_verifier): Take an sexp rather than an sexp_iterator as
argument.
(do_spki_lookup): Use the right syntax for public-key-expressions.
* src/sexp_streamed_parser.c (do_parse_base64): Less trace info.
(do_parse_literal_data): -"-
* src/sexp_parser.c (sexp_parse_list_canonical): Bug fix: Advance
buffer pointer after closing parenthesis.
(sexp_parse_advanced, sexp_parse_canonical): Don't advance buffer
pointer in the default case.
* src/sexp.c (sexp2string): Bug fix.
* src/lsh.c (do_options2identities): Bug fixes.
1999-12-14 Niels Mller <nisse@cuckoo.localdomain>
* src/lshd.c: General cleanup.
* src/lsh.c: General cleanup.
* src/client.h (REQUEST_SHELL): New macro.
(CLIENT_START_IO): New macro.
1999-12-12 Niels Mller <nisse@cuckoo.localdomain>
* src/spki.h: Removed old code.
* src/sexp.h: Removed old code.
* src/server_session.c: Removed old code.
* src/server_keyexchange.c: Removed old code.
* src/resource.h: Removed old code.
* src/publickey_crypto.h: Removed old code.
* src/lsh.h: Removed old code.
* src/lsh.c: Removed old code.
* src/keyexchange.h: Removed old code.
* src/keyexchange.c: Removed old code.
* src/io_commands.c: Removed old code.
* src/io.c: Removed old code.
* src/format.h: Removed old code.
* src/exception.c: Removed old code.
* src/dsa.c: Removed old code.
* src/digit_table.c: Removed old code.
* src/daemon.h: Removed old code.
* src/daemon.c: Removed old code.
* src/connection_commands.c: Removed old code.
* src/command.c: Removed old code.
* src/channels.c: Removed old code.
* src/combinators.c: Removed old code.
* src/client_userauth.c: Removed old code.
* src/client_keyexchange.c (do_init_client_dh): Removed old code.
* src/client.c: Removed old code.
* src/channel.c: Removed old code.
* src/alist.c: Removed old code.
* configure.in (AC_OUTPUT): Generate contrib/Makefile and
contrib/lsh.spec.
* Makefile.am.in (SUBDIRS): Added contrbi directory.
* contrib/Makefile.am (EXTRA_DIST): Added files.
* Added rpm spec file and redhat init script from Thayne Harbaugh
<thayne@northsky.com>
* configure.in: Bumped version to 0.1.19.
1999-12-09 Niels Mller <nisse@cuckoo.localdomain>
* src/testsuite/macros.m4: Various bug fixes.
* src/testsuite/des-test.m4: Fixed tests.
* src/testsuite/Makefile.am (EXTRA_DIST): Added .m4 files.
* src/Makefile.am.in (SUBDIRS): Build testsuite subdir last.
* make_am (SUBDIRS): Don't recurse on . in SUBDIRS.
* configure.in (M4): Check for m4, and m4 handling eight-bit quote
characters.
1999-12-07 Niels Mller <nisse@cuckoo.localdomain>
* configure.in: Generate src/testsuite/Makefile.
Bumped version to 0.1.18.
* src/Makefile.am.in (SUBDIRS): Added testsuite.
(liblsh_a_SOURCES): Added spki_commands.c.
(liblsh_a_LIBADD): Add @LIBOBJS@ here.
(LDADD): Removed @LIBOBJS@.
* src/client_keyexchange.c (do_init_client_dh): Use EXTRA argument
as a hostkey lookup_verifier. Deleted the association
algorithm->lookup_verifier.
(make_dh_client): Deleted VERIFIERS argument.
* src/spki_commands.h: Added extern keyword to declarations of
commands.
* src/spki_commands.c: Use three arguments with for_sexp. Better
tracing.
* src/spki.h (spki_context): New method add_tuple.
* src/spki.c (spki_private2public): New command, that replaces the
private2public command.
(parse_private_key): Use continuations and exceptions.
(do_spki_parse_key): Parse c and e on to parse_private_key.
(spki_parse_private_key_command): New command.
(spki_add_acl): New function. Replaces spki_read_acls.
(do_spki_add_tuple): New function.
* src/sexp_commands.c (for_sexp_command): New command.
Better trace output.
* src/server_keyexchange.c (do_init_server_dh): Use the EXTRA
argument as an alist algorithm->hostkey.
(make_dh_server): Deleted the KEYS argument.
* src/lshd.c: Adapted to new functions for reading keys and acls.
* src/lsh_proxy.c: Some (possible broken) changes to get it to
compile.
* src/lsh.c: Various bugfixes. Seems to work again now.
* src/keyexchange.c (do_handle_kexinit): Disconnect if there is no
common host key algorithm. Pass on "extra" to KEYEXCHANGE_INIT().
* src/keyexchange.h: Added argument "extra" to init-method.
(make_kexinit_handler): Added "extra" argument.
* src/io_commands.h (LOG_PEER): New macro.
* src/exception.h (EXC_ALL): New macro.
* src/dsa.c (do_dsa_public_key): New function.
* src/connection_commands.c (do_handshake): Pass "extra" argument
to make_kexinit_handler.
(handshake_info): New class.
(handshake_command): New static command.
* src/command.c (do_catch_apply): Bugfix for the ignore_value
feature.
(do_catch_simple): Initialize the ignore_value flag properly.
(do_trace_continuation): Better tracing.
* src/scm/gaba.scm (process-class): Fixed output of meta classes;
mode #define to the declaration part of the output file.
* src/lsh_writekey.c: Adapted to new functions for reading and
converting keys.
* src/lsh.c: Adapted to new functions for reading keys and acls.
Not working yet.
* src/io_commands.c: Use COMMAND_SIMPLE where possible.
* src/io.c (io_read_file): New function.
* src/digits.c (simple_decode_hex): New function.
* src/command.h (COMMAND_SIMPLE): New macro (and renamed the old
one to COMMAND_SIMPLE_CALL).
* src/command.c (do_catch_apply): New ignore_Value option.
Use COMMAND_SIMPLE where possible.
* src/combinators.c: Use COMMAND_SIMPLE where possible.
* src/channel.c (connection_service_command): Use COMMAND_SIMPLE.
* src/abstract_crypto.c (crypt_string): New function.
* src/spki_commands.c, src/spki_commands.h: New files.
1999-11-29 Niels Mller <nisse@cuckoo.localdomain>
* src/client_userauth.h (format_userauth_password,
make_client_userauth, make_client_password_auth,
make_client_publickey_auth): Moved from userauth.h.
* src/userauth.h: Moved stuff to server_userauth.h.
* src/userauth.c (format_userauth_failure,
format_userauth_success): Moved to server_userauth.c.
* src/server_session.c (server_connection_service): Removed
backend attribute.
(make_server_connection_service): Removed backend argument.
* src/server_password.c (do_authenticate): Added service
argument.
* src/server_publickey.c (do_authenticate): Added service
argument.
* src/connection.h (ssh_connection): Added chain attribute, needed
for proxying.
* src/lshd.c (main): Don't pass backend to
make_server_connection_service.
* src/lsh.c: #include client_userauth.h
* src/server_userauth.c (make_userauth_handler): New function.
(format_userauth_failure): Moved here.
(format_userauth_success): Moved here.
(do_userauth): Use make_userauth_handler().
(userauth_service): Moved to header file.
* src/server_userauth.h (userauth_service): Moved from
server_userauth.c.
(userauth): Moved from userauth.h.
* src/client_userauth.c (format_userauth_password): Made non-static.
* src/proxy.c, src/proxy.h, src/proxy_session.c,
src/proxy_session.h, src/proxy_userauth.h, src/proxy_userauth.c:
New files (Bazsi)
* src/lsh_proxy.c: New program (Bazsi).
* src/Makefile.am.in (sbin_PROGRAMS): Added lsh_proxy.
(liblsh_a_SOURCES): Added proxy.c proxy_session.c
and proxy_userauth.c.
* configure.in: Bumped version to 0.1.17.
* AUTHORS: Added Bazsi to the list of authors.
* src/sexp.c (sexp_assq): Bug fix.
* src/lshd.c (main): Changed invocation of read_spki_key_file.
* src/lsh.c (do_client_lookup): Better error messages. Write
hostname properly in the ACL file.
(main_argp_parser): Added options --strict, --sloppy and
--capture-to.
1999-11-28 Niels Mller <nisse@cuckoo.localdomain>
* src/dsa.c (make_dsa_signer): #if:ed out some debug output.
* src/server_authorization.c (do_key_lookup): Some
simplifications. Use make_ssh_dss_verifier().
* src/lshd.c (main): Don't pass any signature algorithm to
make_authorization_db().
* src/lsh.c (client_host_db): Use SPKI ACL:s for authentication.
* src/io.h: Removed forward declaration of lsh_fd.
* src/dsa.c (do_dsa_sign_spki): New function.
(do_dsa_verify_spki): New function.
(make_dsa_signer): Use s-expressions for keys.
(make_dsa_verifier): Use s-expressions for keys.
(make_ssh_dss_verifier): New function.
(ssh_dss_public_key): New function.
* src/connection.h: Removed forward declaration of ssh_connection;
it's now in the lsh.h.
* src/bignum.c, src/bignum.h: Fewer includes in the header file.
* src/atoms.in: Added r and s (for spki-style dsa signatures).
* src/atoms.c: Use const tables.
* src/abstract_crypto.h (signer, verifier, signature_algorithm):
Use s-expressions for keys and signatures.
* src/abstract_crypto.c (hash_string): New function.
* src/publickey_crypto.h: Include fewer files.
1999-11-25 Niels Mller <nisse@cuckoo.localdomain>
* src/spki.h (spki_context): Added verifier argument to
the lookup-method.
* src/spki.c (make_ssh_hostkey_tag): New function.
(dsa_to_spki_public_key): New function.
(do_spki_hash): Simplified.
(parse_dsa_private_key): #ifdef'd out.
(parse_private_key): Use an algorithm alist.
(read_spki_key_file): Take algorithm alist as argument.
(make_spki_subject): New function.
(subject_match_hash): New function.
(spki_state): New class.
(spki_subject_by_hash): New function.
(spki_make_verifier): New function.
(do_spki_lookup): New function.
(do_spki_authorize): New function.
(make_spki_context): New function.
* src/lsh.h: Forward declare various structs.
* src/Makefile.am.in (atoms_gperf.c): Changed the flags to gperf,
to avoid collision between "name" and "none". Allso added -C, to
make the tables const.
1999-11-24 Niels Mller <nisse@cuckoo.localdomain>
* src/sexp.c (sexp_assq): Check length.
* src/spki.h (make_spki_subject, make_spki_context): New
functions.
* src/atoms.in: Added signature and name.
1999-11-22 Niels Mller <nisse@cuckoo.localdomain>
* src/spki.h (spki_subject): New class.
(spki_context): New class.
* src/spki.c (make_spki_5_tuple): New function.
(spki_acl_entry_to_5_tuple): New function.
(spki_read_acls): New function.
* src/sexp_parser.c (sexp_parse_list_canonical): Use
queue_to_list_and_kill().
* src/sexp.c (sexp_atom_eq): Bug fix.
* src/queue.c (queue_to_list_and_kill): New function.
* src/atoms.in: Added version, entry and propagate.
1999-11-21 Niels Mller <nisse@cuckoo.localdomain>
* src/spki.c (spki_sexp_to_tag): New function.
Added classes for representing authorizations or (tag ...)
expressions, for certificates and acl:s.
* src/spki.h (spki_tag): New class.
* src/sexp.c (sexp_atom_eq): New function.
* src/process_atoms: Handle atoms with "*" in. Quote better, and
output C symbols with sed 's/*/STAR/'.
* src/format.c (lsh_string_prefixp): New function.
* src/atoms.in: Added symbols for ACL:s and certificates.
1999-11-18 Niels Mller <nisse@cuckoo.localdomain>
* configure.in (SCHEME_PROGRAM): Use AC_PATH_PROGS, not
AC_PATH_PROG. Reported by Kalle Olavi Niemitalo.
* src/xalloc.c (number_of_strings): Global variable to keep track
of the number of allocated strings.
* src/blocking_write.c (do_blocking_write): Handle exceptions
differently.
1999-11-16 Niels Mller <nisse@cuckoo.localdomain>
* Changed "Balazs" to "Balzs" in many files.
* src/spki.h (spki_5_tuple): New class. Not used for anything yet.
* src/spki.c (spki_check_type): Use sexp_check_type().
(dsa_private2public): Use sexp_assq().
(parse_dsa_private_key): Use make_dsa_spki_signer().
* src/sexp_streamed_parser.c (do_skip_comment): New function.
(make_parse_comment): New function.
(make_parse_advanced_sexp: New function. Implements only some
features of the advanced syntax.
* src/sexp.c (sexp_check_type): New function.
(do_cons_assoc): New function.
(do_cons_left): New function.
(do_vector_assoc): New function.
(do_vector_left): New function.
(make_iter_vector): Return SEXP_NIL for empty vectors.
(sexp_eq): New function.
(sexp_assq): New function.
* src/sexp.h (sexp_iterator): Added methods left and assoc.
* src/lsh.c (do_sloppy_lookup): Works now (but doesn't save any
keys).
(main): Call lsh_open_tty.
* src/lookup_verifier.h (lookup_verifier): Added method-argument.
* src/server_authorization.c (do_key_lookup): Added method
argument.
* src/server_publickey.c (do_authenticate): Pass algorithm to
lookup function.
* src/io.c (write_raw_with_poll): Return an exception on error.
(write_raw): -"-
* src/format.c (lsh_string_eq, lsh_string_eq_l): Replaces
lsh_string_cmp() and lsh_string_cmp_l().
* src/Makefile.am.in (liblsh_a_SOURCES): Added interact.c
* src/interact.h: New file.
* src/interact.c: New file.
1999-11-10 Niels Mller <nisse@cuckoo.localdomain>
* src/dsa.c (spki_init_dsa_public): New function.
(make_dsa_spki_verifier): New function.
(make_dsa_spki_signer): New function.
* src/atoms.in: Added "x".
1999-11-09 Niels Mller <nisse@cuckoo.localdomain>
* src/dsa.c: Removed dsa_classic functions.
1999-11-08 Niels Mller <nisse@cuckoo.localdomain>
* src/lsh.c (sloppy_host_db): Renamed from fake_host_db.
* src/Makefile.am.in (liblsh_a_SOURCES): Added sexp_parser again.
* src/sexp_parser.c: Cleaned up, updated, and stripped down to
handle canonical syntax only.
* src/sexp_parser.h: Obsolete now.
* src/sexp.h: Removed sexp_handler.
(sexp_parse_canonical, string_to_sexp): Added prototypes for
non-streamed parser.
1999-11-07 Niels Mller <nisse@cuckoo.localdomain>
* src/exception.h (EXCEPTION_RAISE): Better tracing.
* src/atoms.in: Added "md5" and "hash".
* src/algorithms.c (lookup_hash): New function.
* src/Makefile.am.in (bin_PROGRAMS): Install sexp_conv.
(bin_SCRIPTS): Added lsh-authorize.
* src/spki.c (make_spki_hash): New function.
* src/sha.c (sha1_algorithm): Renamed from sha_algorithm.
* src/sexp_streamed_parser.c (do_parse_transport_sexp): Ignore
white space.
* src/sexp_conv.c (main_options): Added options --spki-hash,
--raw-hash, --hash and --once. Used by the lsh-authorize script.
* src/sexp_commands.c: Renamed print_sexp to sexp_print.
(sexp_print_raw_hash): New command.
* src/lsh-authorize: New script.
* src/lsh.c: New option --no-publickey to disable publickey user
authentication.
* configure.in: Bumped version to 0.1.15.
* src/lsh.c (do_lsh_default_handler): Report i/o exceptions, but
don't pass them on.
* src/lshd.c (main): Use sha1 for authorized keys.
* src/server_userauth.h (user_db): New class (not used for
anything yet).
* src/server_userauth.c (do_userauth_continuation): Ignore all
userauth messages, when we have sent USERAUTH_SUCCESS.
* src/publickey_crypto.h (keypair): Use int, not UINT32, for key
type.
* src/lsh.c: Publickey related bugfixes.
* src/client_userauth.c (format_userauth_publickey_query): New
function. (Bazsi)
(format_userauth_publickey): New function. (Bazsi)
Incorporated Bazsi's patch, with some reorganization.
* src/ssh.h (SSH_FIRST_USERAUTH_GENERIC): New constant.
(SSH_FIRST_USERAUTH_SPECIFIC): -"-
(SSH_FIRST_CONNECTION_GENERIC): -"-
(SSH_FIRST_CONNECTION_CHANNELS): -"-
(SSH_FIRST_RESERVED): -"-
(SSH_FIRST_LOCAL): -"-
* src/version.h (SOFTWARE_SERVER_VERSION,
SOFTWARE_CLIENT_VERSION): Use correct version numbers.
1999-11-06 Niels Mller <nisse@cuckoo.localdomain>
* src/lsh.c (main_argp_parser): Move reading of ~/.lsh/identity
here, and check for getenv("HOME") being NULL.
1999-11-03 Balzs Scheidler <bazsi@balabit.hu>
* src/atoms.in: removed ssh-dss-kludge atom,
* src/spki.c: spki_parse_key command added, read_spki_key_file() added
* src/client.c: fixed flow control bug, ssh2 uses an initial
window size != 0, and this caused problems in lsh client
* src/client_userauth.c: reorganized, publickey auth added
* src/connection_commands.c: changed a bug in buggy ssh peer detection
* src/daemon.c: fixed a memory leak
* src/lsh.c: added argument parsing for -i (identity)
* src/lshd.c: lshd uses the new read_spki_key_file() function to read
the hostkey
* src/publickey_crypto.h: type field added to keypair
* src/dsa.c: removed dsa_algorithm_kludge
* src/server_authorization.c: fixed a few bugs
* src/server_publickey.c: fixed a few bugs
1999-11-03 Niels Mller <nisse@cuckoo.localdomain>
* doc/NOTES: Added some thought about the client side of user
authentication.
* src/lshd.c (do_read_key): Moved key reading to spki.c. (Bazsi)
* src/spki.c (parse_dsa_private_key): Moved from lshd.c. (Bazsi)
(parse_private_key): New function (Bazsi).
(do_spki_parse_key): New function (Bazsi).
(make_spki_parse_key): New function (Bazsi).
(read_spki_key_file): New function (Bazsi).
* src/server_publickey.c (do_authenticate): Changed the handling
of PEER_SSH_DSS_KLUDGE. (Bazsi)
* src/server_keyexchange.c (do_init_server_dh): Handle
PEER_SSH_DSS_KLUDGE. (Bazsi)
* src/publickey_crypto.c (make_keypair): Added type argument. (Bazsi)
* src/publickey_crypto.h (keypair): Added type attribute. (Bazsi)
* src/lsh.c (main_options): Added identity argument. (Bazsi)
* src/keyexchange.c (do_handle_kexinit): Don't use
ATOM_SSH_DSS_KLUDGE. (Bazsi)
* src/exception.h (EXC_IO_OPEN_READ): New exception type. (Bazsi)
* src/connection_commands.c (do_line): Fixed detection of ssh2.
* src/client_keyexchange.c (dh_client): Added hostkey_algorithm
attribute. (Bazsi)
(do_handle_dh_reply): Handle the dss kludge here. (Bazsi)
(do_init_client_dh): Don't use ATOM_SSH_DSS_KLUDGE. (Bazsi)
* src/atoms.in: Removed ssh-dss-kludge. (Bazsi)
* src/lshd.c (main): Deal with pid files after forking and
daemonization, to get the right pid.
1999-10-25 Niels Mller <nisse@cuckoo.localdomain>
* src/werror.c (set_error_syslog): Call openlog(). Added id
argument.
* src/lshd.c (main): Daemonization support and options.
* src/Makefile.am.in (liblsh_a_SOURCES): Added daemon.c.
(EXTRA_DIST): Removed mempcpy.h and strndup.h.
* configure.in: Bumped version to 0.1.14.
1999-10-24 Niels Mller <nisse@cuckoo.localdomain>
* src/werror.c (werror_vformat): Added %a format specifier.
* src/tcpforward.c (do_channel_open_direct_tcpip): Use a better
exception handler.
(do_channel_open_forwarded_tcpip): -"-
* src/server_keyexchange.c (do_handle_dh_init): Use trace()
instead of verbose():
* src/read_line.c (make_read_line): Added assert().
* src/lshd.c (main): Handle i/o exceptions.
* src/io_commands.c (listen_command_callback): Added exception
handler.
(do_listen_continue): Use the proper exception handler.
(make_listen_command_callback): Take an exception handler as
argument.
* src/io.c (io_iter): Moved assert.
(do_buffered_read): Treat unexpected EPIPE as an ordinary I/O
error.
(io_listen): Take an exception handler as argument.
* src/format.c (ssh_vformat_write): Bug fix.
* src/exception.c (do_report_exception_handler): Add newline at
end of messages.
(exception_raise): Fixed format string.
* src/connection_commands.c (do_connection): Pass the right
exceptionhandler to the make_ssh_connection constructor, instead
of passing it to connection_init_io later on. This way,
make_connection_read_line picks up the right exception handler.
* src/connection.c (make_ssh_connection): Take an exception
handler argument.
(connection_init_io): Don't install any exception handler here;
moved to make_ssh_connection instead.
* src/client_keyexchange.c (do_handle_dh_reply): Use trace() instead
of verbose():
* src/channel_commands.c (do_install_global_request_handler):
Friendlier trace messages.
(do_install_channel_open_handler): -"-
(do_install_fix_global_request_handler): -"-
(do_install_fix_channel_open_handler): -"-
1999-10-19 Niels Mller <nisse@cuckoo.localdomain>
* src/mempcpy.c, src/mempcpy.h, src/strndup.c, src/strndup.h:
Removed (definitions incorporated where needed in the files in
src/argp/)
* src/server_authorization.c (do_key_lookup): Some cleanup
(Bazsi). Uses new instance variable index_name to construct the
file name.
(make_authorization_db): Added argument index_name (Bazsi).
* src/server_publickey.c (do_authenticate): Fixed type (Bazsi).
(do_authenticate): Include session id length field in the
signature data.
* src/lshd.c (main): Pass "keys_md5" to make_authorization_db().
(Bazsi).
* src/format.c (format_hex_string): New function (Bazsi).
(ssh_vformat_length): Added hex 'x' modifier. (Bazsi).
(ssh_vformat_write): -"-
1999-10-18 Niels Mller <nisse@cuckoo.localdomain>
* configure.in (AC_CHECK_MEMBER): New macro.
(AC_CHECK_VAR): New macro.
Check for program_invocation_name and
program_invocation_short_name.
Check for thread-safe i/o functions.
* src/argp/argp.h: Don't include argp-comp.h. lsh-specific
handling of getopt.h and PRINTF_STYLE.
* src/argp/argp-help.c (strndup): Defined, if needed.
(mempcpy): -"-
* src/argp/argp-fmtstream.h: Removed inclusion of argp-comp.h.
Include argp.h. Use PRINTF_STYLE for prototypes.
* src/argp/Makefile.am (libargp_a_SOURCES): Added arp-pin.c.
* acconfig.h: Added HAVE_PROGRAM_INVOCATION_NAME and
HAVE_PROGRAM_INVOCATION_SHORT_NAME.
* Makefile.am.in (MAKEFILESAM): Removed src/argp/Makefile.am.
Thu Oct 14 20:35:43 1999 Niels Mller <nisse@lysator.liu.se>
* src/argp/argp-fmtstream.h: #include argp-comp.h.
* configure.in: Check for fwrite_unlocked and fputs_unlocked.
Wed Oct 13 22:40:49 1999 Niels Mller <nisse@lysator.liu.se>
* src/argp/argp-comp.h: Added ugly hack for fwrite_unlocked and
fputs_unlocked.
1999-10-13 Niels Mller <nisse@cuckoo.localdomain>
* src/scm/Makefile.am.in (EXTRA_DIST): Added Makefile.am.in.
* src/argp/argp.h: Use PRINTF_STYLE() instead of explicit
__attribute__:s in declarations.
* src/argp/argp-parse.c (parser_init): Added cast to void * to
STORAGE macro.
(__argp_usage, __option_is_short, __option_is_end ): Replicated
definitons from argp.h.
* src/argp/argp-help.c (argp_doc): Use strndup() instead of
__strndup(). I couldn't get preprocessor hackery to work.
* src/Makefile.am.in (EXTRA_DIST): Added mempcpy.h and strndup.h.
* configure.in (gmp_header_found): Check for mempcpy and strndup.
Wed Oct 13 17:59:24 1999 Niels Mller <nisse@lysator.liu.se>
* src/argp/argp.h: #include argp-comp.h.
* src/argp/argp-parse.c (parser_init): Don't rely on GNU C's
arithmetic on void *.
* configure.in: Fix tests for --with-system-argp.
Tue Oct 12 18:08:39 1999 Niels Mller <nisse@lysator.liu.se>
* src/argp/argp-help.c (fill_in_uparams): Use unsigned char.
(canon_doc_option): Cast to unsigned char before passing
characters to ctype macros.
(hol_entry_cmp): Use unsigned char.
1999-10-11 Niels Mller <nisse@cuckoo.localdomain>
* src/argp/Makefile.am.in (libargp_a_SOURCES): Fixed typo (forgot
the .c suffix).
* src/sexp_conv.c (main): Pass HANDLER_CONTEXT.
* src/sexp_commands.c (make_read_sexp_exception_handler): Added
context argument.
(do_read_sexp): Pass HANDLER_CONTEXT.
* src/sexp.c (lookup_sexp_format): Use strcmp rather than
strcasecmp.
(sexp_input_argp, sexp_output_argp): Split sexp_argp into two
parsers.
* src/server_userauth.c (make_exc_userauth_handler): Added context
argument.
(do_userauth): Pass HANDLER_CONTEXT.
* src/server_session.c (do_spawn_shell): Pass HANDLER_CONTEXT.
* src/io.c (io_iter): Poll only on active fd:s.
(init_file): Pass HANDLER_CONTEXT.
(make_exc_finish_read_handler): Added context argument.
* src/exception.h (exception_handler): Added context attribute.
(HANDLER_CONTEXT): New macro.
* src/exception.c (make_exception_handler): Added context argument.
(make_report_exception_handler): -"-
(exception_raise): New function.
* src/connection_commands.c (do_connection): Pass HANDLER_CONTEXT.
* src/connection.c (make_exc_protocol_handler): Added context argument.
(connection_init_io): Pass HANDLER_CONTEXT.
* src/command.h: Use DEBUG_TRACE.
* src/command.c (make_trace): Define only if DEBUG_TRACE is
defined.
(make_catch_handler): Added context argument.
(do_catch_apply): Pass HANDLER_CONTEXT.
* src/client.c (do_client_io): Pass HANDLER_CONTEXT.
* src/channel.c (make_exc_finish_channel_handler): New context
argument.
(make_channel_io_exception_handler): -"-
(register_channel): Pass HANDLER_CONTEXT.
* configure.in: Bumbed version number to 0.1.13.
* src/sexp_conv.c (main): Make both input and output formats
configurable.
* src/lsh.c: Added argp support.
* src/lshd.c: -"-
* src/lsh_keygen.c: -"-
* src/algorithms.c (algorithms_argp): Added argp parser.
(init_algorithms_options): New function.
* configure.in: Added with-debug-trace option.
1999-10-10 Niels Mller <nisse@cuckoo.localdomain>
* src/lsh.c: Use argp instead of getopt.
1999-10-07 Niels Mller <nisse@cuckoo.localdomain>
* src/lsh_types.h: Use HAVE_GCC_ATTRIBUTE.
(FUNCTION_NAME): New define.
* src/client.c (do_exit_status): Removed test of CHANNEL_SENT_EOF flag.
(do_exit_signal): -"-
* src/channel.c (do_channel_eof): Removed test of
CHANNEL_SENT_CLOSE flag.
(do_channel_write): Removed test of CHANNEL_SENT_EOF flag.
(do_channel_write_extended): -"-
* src/Makefile.am.in: Added correct path to compiler.scm.
(SUBDIRS): Added argp sub directory.
* configure.in: Added --with-system-argp.
* acconfig.h: Renamed HAVE_ATTRIBUTE to HAVE_GCC_ATTRIBUTE. Added
HAVE_GCC_FUNCTION.
1999-10-04 Niels Mller <nisse@cuckoo.localdomain>
* src/sexp_conv.c (main): Added argp support.
* src/sexp.c (sexp_argp): -"-
* src/werror.c (werror_argp): -"-
1999-10-02 Niels Mller <nisse@cuckoo.localdomain>
* src/Makefile.am.in (EXTRA_DIST): Removed make_class,
make_char_classes and compiler.scm (which now live in the scm
subdirectory).
* src/tcpforward_commands.c (new_tcpip_channel): Register the fd
on the channel's resources list.
* configure.in: Bumped version to 0.1.12.
* src/tcpforward.c (tcpip_channel_start_io): Use
make_channel_read_close_callback rather than
make_channel_close_callback. I haven't looked into exception
handling for i/o errors yet.
* src/server_session.c (do_alloc_pty): Put the pty on the
channel's resources list rather than the connection's.
* src/client.c (do_send_first): Removed this function.
(do_client_io): Fixed setup of fd:s, and their close-callbacks and
exception handlers. Also register the fd:s on the channel's
resources list.
* src/server_session.c (do_spawn_shell): Fixed close-callbacks and
exception handlers for stdio. Also registers the fd:s on the
channel's rather than the connection's resources list.
* src/read_data.c: Removed all EOF-handling. Perhaps the rest of
the code should be moved to channel.c?
* src/channel.c (do_exc_finish_channel_handler): Kill the channel's
resources when it is closed.
(register_channel): Register the channel's resources list as an
item on the connection's.
(init_channel): Initialize resources list.
(make_channel_read_close_callback): Renamed from
make_channel_close_callback, for the same reason.
(channel_io_exception_handler): Exception handler to close the
channel on i/o errors. Primarily useful for fd:s the channel
writes to.
(make_channel_io_exception_handler): New function.
* src/channel.c (channel_read_close_callback): Renamed from
channel_close_callback. The previous behaviour, which used the
callback for fd:s the channel writes to, was completely bogus.
* src/channel.c (channel_close): Do nothing if we have already
sent CHANNEL_CLOSE.
(channel_eof): Do nothing if we have already sent CHANNEL_EOF, or
either sent or received CHANNEL_CLOSE.
* src/channel.h (ssh_channel): Added a resources attribute.
* src/scm/gaba.scm: Renamed the struct-special type to
indirect-special, as it is useful for non-structs.
* src/debug.c (send_debug_message): New function, to
unconditionally send a DEBUG message.
(send_debug, send_verbose): Change argument type from struct
ssh_connection to struct abstract_write.
* src/resource.h: Made resource_list inherit
resource. This means that KILL_RESOURCE_LIST is now more or less
an alias for KILL_RESOURCE. Also made the resource-list behave a
little like a weak list.
* src/resource.c: Dead resources are unlinked from the list
automatically while garbage collecting. This means that references
from a resource list won't keep a dead resource from being garbage
collected.
1999-09-30 Niels Mller <nisse@cuckoo.localdomain>
* configure.in: If no SCHEME_PROGRAM is found, use false.
1999-09-27 Niels Mller <nisse@cuckoo.localdomain>
* src/Makefile.am.in (SUBDIRS): Added scm subdirectory.
(SCHEME): Added -l flag to load compatibility code for the right
scheme implementation. Changed rules to use gaba.scm and
make-char-classes.scm which have moved to the scm subdir.
* configure.in: Bumped version to 0.1.11. Added --with-scheme
option to select scheme implementation. Generate src/scm/Makefile.
Wed Sep 22 00:30:47 1999 Niels Mller <nisse@lysator.liu.se>
* src/channel.c (channel_close_callback): Check the
CHANNEL_SENT_CLOSE flag before calling channel_close().
* configure.in: Bumped version to 0.1.10.
* src/server_publickey.c (do_authenticate): Initialize
signature_start.
* src/server.c (format_service_accept_kludge): Made function static.
* src/spki.c (keyblob2spki): Reorganized a little, and initialize
and free the dsa_public struct properly.
* src/lshd.c (do_read_key): Replaced keypair_info with keypair.
* src/server_keyexchange.c (do_init_server_dh): -"-
* src/lsh.c (main): Added trailing zeros in the getopt
initializer.
*src/sexp_conv.c (main): -"-
* src/dsa.c (init_dsa_public): New function.
(make_dsa_signer): Use init_dsa_public.
* src/exception.c: Use STATIC_EXCEPTION_HANDLER and
STATIC_EXCEPTION.
Tue Sep 21 22:41:47 1999 Niels Mller <nisse@lysator.liu.se>
* src/keyexchange.h: removed keypair_info class.
* src/keyexchange.c: removed make_keypair_info function..
* src/publickey_crypto.h: renamed keypair_info to keypair, and
moved here.
* src/publickey_crypto.c: renamed make_keypair_info
renamed to make_keypair, and moved here.
* src/sexp_streamed_parser.c (make_parse_transport_sexp): Fixed
error message.
1999-09-21 Niels Mller <nisse@cuckoo.localdomain>
* src/read_data.c: Removed the EXC_IO_EOF handler.
1999-09-19 Niels Mller <nisse@cuckoo.localdomain>
* src/tcpforward_commands.c (forward_remote_port): Added a call to
prog1, to get things evaluated at the right time.
* src/server_session.c (do_spawn_shell): Simplified handling of
exceptions. In particular, removed all handling of EXC_IO_EOF.
* src/make_class (string-upcase): New function.
(make-output): Associate any otherwise undefined global with a C
symbol with the same name, but in uppercase.
* src/lsh_writekey.c (read_sexp): Use transport syntax.
* src/io.h (callback, callout): New classes.
* src/io.c (do_buffered_read): Close fd on EOF.
(do_consuming_read): On EOF, pass NULL to the consumer, and close
fd.
* src/exception.h (EXC_IO_EOF): Commented out this constant.
* src/channel.c (do_channel_write): Handle EOF here.
(do_channel_write_extended): -"-
* src/sexp_streamed_parser.c (do_parse_base64): Bugfix: Increase
done at the start of the loop.
1999-09-09 Balzs Scheidler <bazsi@balabit.hu>
* src/lsh.c, src/lshd.c, src/sexp_conv.c: added some uninitialized
fields to structure inits to avoid warning
* src/command.c: fixed typo, make_once_continution ->
make_once_continuation
* src/server_password.h: removed, contents moved to server_userauth.h
* src/server_publickey.h: removed, contents moved to server_userauth.h
* src/server_userauth.h: merged with former server_password.h &
server_publickey.h
* src/server_userauth.c: unix account handling funtions moved
here, userauth_handler class.
1999-09-07 Niels Mller <nisse@cuckoo.localdomain>
* abstract_io.h channel.c channel.h channel_commands.c client.c
command.c gc.c gc.h io.c lsh.c lsh.h lsh_writekey.c lshd.c
read_data.c read_packet.c server_password.c service.h sexp_conv.c
sexp_parser.c sexp_streamed_parser.c tcpforward_commands.c
tcpforward_commands.h werror.c: Cleaned up and deleted old dead
code.
* src/Makefile.am.in (liblsh_a_SOURCES): Removed sexp_parser.c
* configure.in: Bumbed version to 0.1.9.
* src/server_session.c (do_spawn_shell): Use better exception
handlers.
* src/read_data.c (do_exc_read_eof_channel_handler): Bugfix: Don't
call channel_close() twice.
* src/io_commands.c (do_listen): Raise a better exception.
* src/io.h (close_callback): Changed return type to void.
* src/exception.h (EXC_IO_LISTEN): New constant.
* src/exception.c (make_report_exception_handler): New function.
* src/connection.c (packet_types): Made this table public.
* src/channel_commands.c (do_channel_open_command): Raise a more
sensible exception.
* src/channel.c (register_channel): Take a connections as
argument, in order to install the right exception handler.
(prepare_channel_open): -"-
* src/debug.c (do_debug): Display packet type. Don't display
USERAUTH_REQUEST messages.
* src/channel.h (ssh_channel): Added a connection argument to
CHANNEL_SEND.
* src/client.c (do_send_first): New function, to add stdin to the
connection's resources.
* src/userauth.h (authenticate): Added connection argument.
* src/userauth.c (format_userauth_failure): Moved here (from
server_userauth.c).
(format_userauth_success): -"-
(make_userauth_special_exception): New function.
* src/spki.c: Assorted bug fixes.
* src/sexp_streamed_parser.c (make_parse_transport_sexp): New
function.
(make_parse_base64): New function.
* src/sexp_conv.c (main): Simplified exception handling.
* src/sexp_commands.c: Commands to read and write s-expressions.
* src/sexp.c (sexp2string): New function.
(sexp2atom): New function.
* src/server_userauth.c (do_exc_userauth_handler): Added handler
for EXC_USERAUTH_SPECIAL.
* src/server_password.c (do_authenticate): Added connection
argument.
* src/server_keyexchange.c (do_handle_dh_init): Make sending of
debug messages conditional on the peer-flags.
* src/read_scan.h: Flagged as obsolete.
* src/lsh_writekey.c (do_write_key): Deleted function. Use the
appropriate commands instead.
(main): Adapted to new sexp parser.
* src/keyexchange.c (invoke_ssh2_dsa_kludge_p): Removed this
function.
(do_handle_kexinit): Use the connection's peer_flags rather than
an explicit check of the version string.
* src/io_commands.c (do_io_write_file, do_io_read_fd): New
commands to read and write files.
(make_io_write_file_info): New function.
* src/io.c (do_buffered_read): Attempt to recover if the handler
disappears.
(do_exc_io_handler): New exception handler.
(init_file): Install exception handler to close the file on i/o
errors.
(io_write_file): New function.
* src/exception.c (make_exception_handler): New function.
* src/dsa.c (do_dsa_sign_kludge): Fixed ssh2 compatibility hack.
(do_dsa_verify_kludge): -"-
* src/digits.h (BASE64_PARTIAL): New constant.
* src/digits.c (base64_init): Moved function to this file.
(base64_decode): -"-
* src/connection.h (ssh_connection): Added peer_flags field.
* src/compiler.scm: Added comments describing the combinators
used.
* src/command.h (PROG1): New global command.
* src/client_keyexchange.c: instead of a simple verifier, an alist
of verifiers is passed to make_dh_client(). Removed sending "Key
exchange successful!" debug message, because it bugs ssh2. (Bazsi)
1999-09-06 Niels Mller <nisse@cuckoo.localdomain>
* src/atoms.c: Bugfix: Include <string.h> rather than <strings.h>.
* src/Makefile.am.in (liblsh_a_SOURCES): Added lookup_verifier.c,
server_authorization.c, server_publickey.c and spki.c. Removed
read_scan.c.
* src/lshd.c (main): Create an authorization_db class (Bazsi).
1999-07-23 Balzs Scheidler <bazsi@balabit.hu>
* configure.in: merged different DATAFELLOWS workaround defines to
a simple DATAFELLOWS_WORKAROUNDS, this affects a few files, for a
list grep for DATAFELLOWS_WORKAROUNDS *.{c,h}
* src/connection.h: peer_flags added to ssh_connection, workarounds
and peer features have a flag here, which is then checked at
appropriate places.
* src/connection_commands.c (do_line): peer_flags is set according
to the peer version,
(split_version_string): new function
* src/dsa.c (parse_dsa_public): made public, moved public key
mpz_t initialization here. [No, I didn't move the initialization.
/nisse]
* src/server_authorization.c: new file, some public key checking
is done
1999-07-22 Balzs Scheidler <bazsi@balabit.hu>
* src/lookup_verifier.{c,h}: new files. moved lookup_verifier
class from client_keyexchange.h to separate files. It is also used
by publickey authentication. Added an additional parameter to
LOOKUP_VERIFIER: keyholder, which determines which host, or which
user's keys should be checked.
* src/dsa.c: do_dsa_verify_kludge() cleaned up
1999-07-11 Balzs Scheidler <bazsi@balabit.hu>
* src/client.c: added DataFellows workaround for
SSH_MSG_SERVICE_ACCEPT, compiled in conditionally if
DATAFELLOWS_SSH2_SERVICE_ACCEPT_KLUDGE is defined.
* src/server.c: -"-
* configure.in: changed --with-ssh-dss-kludge option to
--with-datafellows-workarounds
* src/dsa.c: ssh2 dsa kludge fixes, added dsa_kludge_algorithm
(only creates verifiers!)
* src/lsh.c: added support for alist maps of lookup verifiers
* src/debug.c: fixed a bug in packet_debug class
* src/connection.c: added debug messages for sent packets
* src/server_keyexchange.c: removed "Key exchange successful!"
[actually, made conditional. /nisse]
1999-09-05 Niels Mller <nisse@cuckoo.localdomain>
* src/exception.h: Added SPKI-related exceptions.
* src/atoms.in: Added spki-related names.
* src/sexp_streamed_parser.c: Rewrote parser to use continuations
and exceptions. For now, support for any encoding but
SEXP_CANONICAL is dropped.
* src/read_packet.c (do_read_packet): Handle available == 0 (EOF).
* src/read_line.c (do_read_line): Handle available == 0 (EOF).
* src/exception.h (EXC_SEXP, EXC_SEXP_SYNTAX, EXC_SEXP_EOF): New
constants.
* src/command.c: First attempt at a catch-command.
* src/io.c (io_iter): Check for POLLNVAL.
(do_buffered_read): Pass EOF to the read handler, rather than
raising an exception.
* src/Makefile.am.in: Added sexp_conv, sexp_commands.c.
* sexp_commands.c, sexp_commands.h, sexp_conv.c, sexp_conv.h: New
files.
1999-09-04 Niels Mller <nisse@cuckoo.localdomain>
* src/lsh.c (do_lsh_default_handler): Improved handling of I/O
exceptions.
* src/io_commands.c (do_connect): Improved exception handling.
* src/io.c (io_connect): Added an exception_handler argument.
1999-08-30 Niels Mller <nisse@cuckoo.localdomain>
* Lots of files: Removed the exception argument from the
A_WRITE-method.
* src/exception.h (PROTOCOL_ERROR): New macro.
1999-08-29 Niels Mller <nisse@cuckoo.localdomain>
* src/read_packet.c (do_read_packet): The MAC memcmp test was
inverted. A real old bug.
* src/io.c (do_consuming_read): Use CAST_SUBTYPE.
(do_buffered_read): Stop processing if fd->read is NULL. For
example, if an exception handler tried to close the file.
* src/exception.c (do_default_handler): Fixed format string.
* src/channel.c (alloc_channel): Update in_use table properly. .
* configure.in: Bumped version to 0.1.8.
1999-08-28 Niels Mller <nisse@cuckoo.localdomain>
* src/Makefile.am.in (liblsh_a_SOURCES): Added esception.c.
1999-07-04 Niels Mller <nisse@cuckoo.localdomain>
* src/command.c, src/command.h, src/lsh.c, src/lshd.c: Don't allow
a NULL continuation. Instead, use discard_continuation to ignore
the value.
1999-07-01 Niels Mller <nisse@cuckoo.localdomain>
* src/tcpforward_commands.c (new_tcpip_channel): Don't initialize
rec_window_size and rec_max_packet hare; let make_tcpip_channel
handle that.
(forward_remote_port): Noted that this doesn't work; connect gets
called too early.
* src/tcpforward.c (make_tcpip_channel): Initialize
rec_window_size and rec_max_packet.
* src/channel.c (prepare_channel_open): Added debug output.
* configure.in: Bumped version to 0.1.3
* NEWS: Wrote an entry for 0.1.3
1999-06-30 Niels Mller <nisse@cuckoo.localdomain>
* src/tcpforward_commands.c (new_tcpip_channel): Initialize
max_window and rec_window_size.
(remote_port_install_continuation): Added a port variable.
Various bug fixes.
* src/tcpforward.c (make_tcpip_channel): Set the max_window
attribute.
(do_tcpip_channel_die): New function.
(do_open_forwarded_tcpip_continuation): Initialize channel->write,
and call tcpip_channel_start_io, if the connection was successful.
* src/sexp_parser.c, src/sexp_streamed_parser.c: Use digits.h
rather than duplicating code.
* src/lsh.c (main): Fixed -N flag.
* src/io_commands.c (connect_with_port): Fixed name. Was
connect_with_connection.
* src/Makefile.am.in (liblsh_a_SOURCES): Added digits.c.
* src/digit_table.c (main): Remove #defines and static
declarations from output.
* src/command.h (COMMAND_RETURN): Evaluate the return value even
if the continuation is NULL.
* src/command.c (discard_continuation): New continuation.
* src/channel_commands.c (do_install_global_request_handler):
fixed format string to trace() call.
(do_install_channel_open_handler): -"-
(do_install_fix_global_request_handler): -"-
(do_install_fix_channel_open_handler): -"-
* src/digits.h: New file.
* src/digits.c: New file.
* src/channel.c (channel_start_receive): New function, to replace
the LSH_CHANNEL_READY_REC flag.
(do_channel_open_failure): Clear the open_continuation attribute.
(do_channel_open_confirm): -"-
(channel_close_callback): Handle the case reason == 0.
1999-06-28 Niels Mller <nisse@cuckoo.localdomain>
* src/tcpforward.h: Bugfix: Declare channel_open_forwarded_tcpip
extern.
* src/channel.c (do_global_request_success): New function.
(do_global_request_failure): New function.
(do_connection_service): Install handlers for
SSH_MSG_REQUEST_SUCCESS and SSH_MSG_REQUEST_FAILURE.
* src/lsh.c (main): Install a handler for forwarded-tcpip
requests.
* src/command.c (trace_command): New command.
1999-06-23 Niels Mller <nisse@cuckoo.localdomain>
* src/tcpforward_commands.c (forward_local_port): Use
CAST_SUBTYPE() rather than CAST().
* src/lsh.c (main): Added -R option.
* src/io_commands.c (collect_listen): The _first_ argument is the
callback function.
* channel_commands.c, combinators.c, connection_commands.c,
io_commands.c, tcpforward.c, tcpforward_commands.c: In collect_*
functions, don't assert that info == NULL. It's info->next that
should be NULL.
* src/channel_commands.h (STATIC_INSTALL_GLOBAL_HANDLER): Bug fix,
use STATIC_COLLECT_2_FINAL.
(STATIC_INSTALL_OPEN_HANDLER): -"-
* doc/TODO: Updated the section on the control language.
* src/lshd.c (lshd_connection_service): Call connection_service to
initialize the connection, before logging in.
* src/lsh.c (make_client_connect): Take advantage of
connection_service being a constant.
* src/make_class (process-expr): Generate a call to trace().
1999-06-22 Niels Mller <nisse@cuckoo.localdomain>
* src/command.h: Never pass a NULL as the first argument of a
collect_* function.
Mon Jun 21 19:11:57 1999 Niels Mller <nisse@lysator.liu.se>
* src/server_session.c (make_server_connection_service):
Reorganized the commands to initialize a connection.
* src/lshd.c: Use the "hook"-mechanism to install handlers on the
connection.
* src/lsh.c (main): Don't use the old function
make_connection_service.
* src/io_commands.c (connect_port): Renamed from
connect_connection.
(connect_connection): New command.
* src/connection_commands.c (do_connection_remember): Commented
out this unused function.
* src/channel_commands.h (STATIC_INSTALL_GLOBAL_HANDLER): New
macro. Currently broken.
(STATIC_INSTALL_OPEN_HANDLER): -"-
* src/channel_commands.c (make_install_fix_channel_open_handler):
New function.
(make_install_fix_global_request_handler): -"-
* src/channel.c: Keep information about channel_types and
global_requests in the channel_table, rather than in the packet
handlers.
(make_connection_service): Removed this function. The command is
now statically allocated.
1999-06-20 Niels Mller <nisse@lysator.liu.se>
* src/command.h (STATIC_COLLECT_1_FINAL): Commented out this
redundant macro.
* src/Makefile.am.in (liblsh_a_SOURCES): Added
tcpforward_commands.c.
1999-06-17 Niels Mller <nisse@cuckoo.localdomain>
* src/tcpforward.c, src/tcpforward_commands.c: Reorganization.
Keep low-level protocol stuff in tcpforward.c, and move higher
level functionality in tcpforward_commands.c.
* src/io_commands.c (make_connect_connection): New function.
* src/connection_commands.c (connection_remember_command): New
command, currently not used.
* src/command.h (STATIC_COMMAND): New macro.
* src/tcpforward_commands.h: New file
* src/tcpforward_commands.c: New file
1999-06-15 Niels Mller <nisse@cuckoo.localdomain>
* src/tcpforward.c: Made forwarded_port a super class for
local_port and remote_port.
(do_channel_open_direct_tcpip): Free dest_host on failure.
(make_forward_listen): Added backend parameter.
(remote_port): New class.
(make_remote_port): New function.
(remote_port_install_continuation): New class.
(make_remote_port_install_continuation): New function.
(request_tcpip_forward_command): New class.
(make_request_tcpip_forward_command): New function.
(remote_listen_value): New class.
(make_remote_listen_value): New function.
(start_forwarded_client_io): New command.
(make_start_forwarded_client_io) New function.
(make_forward_remote_port): New expression.
(forward_remote_port): New function.
* src/lsh.c (main): Pass backend to forward_local_port().
* src/io_commands.c (collect_listen): Use CAST_SUBTYPE rather than
CAST.
* src/connection.h (ssh_connection): Removed forwarded_pots
attribute (moved to channel_table).
* src/command.h (STATIC_COLLECT_1_FINAL): New macro.
* src/channel_commands.c (do_channel_global_command): New
function.
* src/channel.h (channel_table): Moved information about forwarded
ports here.
* src/channel.c (make_channel_table): Initialize queues for
handling global requests.
1999-06-14 Niels Mller <nisse@cuckoo.localdomain>
* configure.in: Added option -with-tcp-forward.
Bumped version to 0.1.2.
* src/queue.c (object_queue_init): New function.
(object_queue_is_empty): New function.
(object_queue_add_head): Update length.
(object_queue_add_tail): -"-
(object_queue_remove_head): -"-
(object_queue_remove_tail): -"-
(queue_to_list): New function.
(object_queue_kill): New function.
* src/queue.h (object_queue): Added length attribute.
(FOR_OBJECT_QUEUE_REMOVE): Update length.
* src/read_data.c (do_read_data): When the channel
is closed because of a read failure, don't throw away the
return value from channel_close().
* src/tcpforward.h (forwarded_port): Don't inherit resource.
* src/tcpforward.c (do_direct_tcp_server_start_io): Fix flow control.
(make_tcpip_channel): -"-
(channel_open_direct_tcpip): Renamed (was open_direct_tcp).
(do_channel_open_direct_tcpip): Renamed similarly.
(make_channel_open_direct_tcpip): -"-
(open_forwarded_tcpip_command): Renamed (was open_tcpip_command).
(new_forwarded_tcpip_channel): Renamed similarly.
(make_open_forwarded_tcpip_command): -"-
(do_forward_start_io): Removed redundant assignment to
channel->socket.
(open_direct_tcpip_command): New class.
(new_direct_tcpip_channel): New function.
(make_open_direct_tcpip_command): New function.
(open_direct_tcp): New command.
(make_forward_local_port): New expression.
(forward_local_port): New function.
* src/server_session.c (do_spawn_shell): Fix flow control.
* src/client.c (make_client_session): Fix flow control.
* src/channel.h (ssh_channel): Inherit flow_controlled.
* src/channel.c (adjust_rec_window): Adapted for flow control.
(channel_process_status): On LSH_CHANNEL_READY_REC, call
prepare_window_adjust and c->write directly, rather than
adjust_rec_window.
(do_channel_data): Don't call adjust_rec_window.
(do_channel_extended_data): -"-
(init_channel): Install adjust_rec_window as flow control callback.
* src/lshd.c (main): Added a --no-forward option.
* src/lsh.c (make_client_connect): Don't invoke open_session here;
instead use progn to apply a list of "actions"-commands to the
connection.
(make_start_session): New command, do open a session and send some
requests to it.
(parse_forward_arg): New function, to parse arguments to -L and -R.
(main): Build a list of "actions" when parsing the options. Added
options -L, -N, -g.
* src/write_buffer.h (flow_controlled): New class.
(write_buffer): Added REPORT attribute.
* src/write_buffer.c (write_buffer_consume): Do flow control.
* src/publickey_crypto.h (make_dsa_verifier_kludge,
make_dsa_signer_classic, make_dsa_verifier_classic): New
functions.
* src/publickey_crypto.c: Moved the dsa-ralated code to a separate
file.
* src/io.c (io_iter): Close fd:s that report POLLHUP.
* src/Makefile.am.in (liblsh_a_SOURCES): Added dsa.c.
* src/dsa.c: New file. Extracted from publickey_crypto.c. Also
fixed the dsa signature format to match the latest draft.
1999-06-12 Niels Mller <nisse@cuckoo.localdomain>
* configure.in: Bump version to lsh-0.1.1
* src/lsh.c (main): Reset the tty mode before return.
1999-06-12 <nisse@cuckoo.localdomain>
* src/lsh_keygen.c (main): Use %xn rather than %hn for debug().
* src/lshd.c (do_read_key): -"-
* src/publickey_crypto.c (dsa_hash): -"-
(generic_dsa_sign): -"-
(do_dsa_verify): -"-
* src/channel.c (make_channel_table): Initialize
active_global_requests and pending_global_requests.
* src/channel.c, src/channel.h: object_queues should be declared
as structs.
* src/connection.c, src/connection.h: -"-
* src/tcpforward.c: -"-
1999-06-11 <nisse@cuckoo.localdomain>
* src/tcpforward.c (direct_tcp_server_start_io): Renamed class,
and related functions. Was forward_server_start_io.
(do_forward_start_io): Renamed. Was do_forward_client_io.
* src/io_commands.h (LISTEN_COMMAND): New define.
* src/tcpforward.c (do_tcpip_forward_request): Use GLOBAL_REQUEST_CALLBACK().
(do_tcp_forward_continuation): -"-
Various bug fixes.
* src/channel.c (global_request_status): New class.
(make_global_request_status): New function.
(global_request_response): New class.
(do_global_request_response): New function.
(make_global_request_response): New function.
(do_global_request): Pass a callback object to the handler.
* src/channel.h (channel_table): New attributes
active_global_requests and pending_global_requests.
(global_request_callback): New class.
(global_request): Let the handler method take a
global_request_callback as argument.
* src/channel_commands.h (global_request_command): New class.
(do_channel_global_command): New function (not yet implemented).
* src/queue.c (lsh_queue_peek_head): New function.
(lsh_queue_peek_tail): -"-
(object_queue_peek_head): -"-
(object_queue_peek_tail): -"-
(object_queue_get_contents): Cast here, rather than in all calling
functions.
* src/io_commands.c (listen_connection): Adapted to the needs for
tcp forwarding.
(make_listen_command): New function.
* src/make_class (process-expr): Include the compiler output in a
comment.
1999-06-07 <nisse@cuckoo.localdomain>
* src/werror.c (werror_vformat): Removed 'h'-modifier. Use 'x'
instead.
* src/queue.h (struct object_queue_node): Made this structure public.
(FOR_OBJECT_QUEUE): Traverse an object_queue (Bazsi).
(FOR_OBJECT_QUEUE_REMOVE): Somewhat ugly macro to delete the
current node inside a for-loop.
* src/lshd.c (main): Added tcpforward support (Bazsi).
* src/io.h (address_info): Renamed the ADDRESS field. Is now
called IP.
* src/io.c (io_iter): When closing a file, always invoke its close
callback (if it is non-NULL). Previously, the callback was never
invoked if fd->close_reason was zero.
(io_iter): Some handling of POLLHUP and POLLPRI.
* src/format.h (lsh_string_cmp, lsh_string_cmp_l): New functions
(don't really belong in this file).
1999-06-06 <nisse@cuckoo.streamserve.com>
* src/dsa_keygen.c (dsa_nist_gen): Bugfix: Removed extra mpz_init().
1999-06-07 <nisse@cuckoo.localdomain>
* src/connection.h (ssh_connection): New field forwarded_ports
(Bazsi).
Wed May 26 18:54:43 1999 Niels Mller <nisse@lysator.liu.se>
* src/client.c: #include signal.h (reported by MArtin Jabobsson).
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 Balzs 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.