From 6ef430dcc357f9e8fe02a057840538939b45602a Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 23 Jul 2008 17:40:04 +1000 Subject: - djm@cvs.openbsd.org 2008/07/23 07:36:55 [servconf.c] do not try to print options that have been compile-time disabled in config test mode (sshd -T); report from nix-corp AT esperi.org.uk ok dtucker@ --- ChangeLog | 10 +++++++++- servconf.c | 8 +++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3d08a80d3..85af46f84 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +20080721 + - (djm) OpenBSD CVS Sync + - djm@cvs.openbsd.org 2008/07/23 07:36:55 + [servconf.c] + do not try to print options that have been compile-time disabled + in config test mode (sshd -T); report from nix-corp AT esperi.org.uk + ok dtucker@ + 20080721 - (djm) OpenBSD CVS Sync - jmc@cvs.openbsd.org 2008/07/18 22:51:01 @@ -4710,4 +4718,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5095 2008/07/21 08:22:25 djm Exp $ +$Id: ChangeLog,v 1.5096 2008/07/23 07:40:04 djm Exp $ diff --git a/servconf.c b/servconf.c index 66e22979f..72746d34e 100644 --- a/servconf.c +++ b/servconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.c,v 1.186 2008/07/04 03:44:59 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.187 2008/07/23 07:36:55 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -1562,12 +1562,18 @@ dump_config(ServerOptions *o) o->hostbased_uses_name_from_packet_only); dump_cfg_fmtint(sRSAAuthentication, o->rsa_authentication); dump_cfg_fmtint(sPubkeyAuthentication, o->pubkey_authentication); +#ifdef KRB5 dump_cfg_fmtint(sKerberosAuthentication, o->kerberos_authentication); dump_cfg_fmtint(sKerberosOrLocalPasswd, o->kerberos_or_local_passwd); dump_cfg_fmtint(sKerberosTicketCleanup, o->kerberos_ticket_cleanup); +# ifdef USE_AFS dump_cfg_fmtint(sKerberosGetAFSToken, o->kerberos_get_afs_token); +# endif +#endif +#ifdef GSSAPI dump_cfg_fmtint(sGssAuthentication, o->gss_authentication); dump_cfg_fmtint(sGssCleanupCreds, o->gss_cleanup_creds); +#endif dump_cfg_fmtint(sPasswordAuthentication, o->password_authentication); dump_cfg_fmtint(sKbdInteractiveAuthentication, o->kbd_interactive_authentication); -- cgit v1.2.3 From 212f0b08790c415648db250797b1b060b62a015d Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 23 Jul 2008 17:42:29 +1000 Subject: - (djm) [servconf.c] Print UsePAM option in config test mode (when it has been compiled in); report from nix-corp AT esperi.org.uk ok dtucker@ --- ChangeLog | 5 ++++- servconf.c | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 85af46f84..99b450ac2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,9 @@ do not try to print options that have been compile-time disabled in config test mode (sshd -T); report from nix-corp AT esperi.org.uk ok dtucker@ + - (djm) [servconf.c] Print UsePAM option in config test mode (when it + has been compiled in); report from nix-corp AT esperi.org.uk + ok dtucker@ 20080721 - (djm) OpenBSD CVS Sync @@ -4718,4 +4721,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5096 2008/07/23 07:40:04 djm Exp $ +$Id: ChangeLog,v 1.5097 2008/07/23 07:42:29 djm Exp $ diff --git a/servconf.c b/servconf.c index 72746d34e..53e964dee 100644 --- a/servconf.c +++ b/servconf.c @@ -1544,6 +1544,9 @@ dump_config(ServerOptions *o) } /* integer arguments */ +#ifdef USE_PAM + dump_cfg_int(sUsePAM, o->use_pam); +#endif dump_cfg_int(sServerKeyBits, o->server_key_bits); dump_cfg_int(sLoginGraceTime, o->login_grace_time); dump_cfg_int(sKeyRegenerationTime, o->key_regeneration_time); -- cgit v1.2.3 From 661f63b7d2a89d91c29691ba8d01b825600e6789 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sat, 30 Aug 2008 07:32:37 +1000 Subject: - (dtucker) [openbsd-compat/bsd-poll.c] correctly check for number of FDs larger than FD_SETSIZE (OpenSSH only ever uses poll with one fd). Patch from Nicholas Marriott. --- ChangeLog | 7 ++++++- openbsd-compat/bsd-poll.c | 5 +++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 99b450ac2..5d76889a2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20080830 + - (dtucker) [openbsd-compat/bsd-poll.c] correctly check for number of FDs + larger than FD_SETSIZE (OpenSSH only ever uses poll with one fd). Patch + from Nicholas Marriott. + 20080721 - (djm) OpenBSD CVS Sync - djm@cvs.openbsd.org 2008/07/23 07:36:55 @@ -4721,4 +4726,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5097 2008/07/23 07:42:29 djm Exp $ +$Id: ChangeLog,v 1.5098 2008/08/29 21:32:37 dtucker Exp $ diff --git a/openbsd-compat/bsd-poll.c b/openbsd-compat/bsd-poll.c index 284db3a1f..f899d7a24 100644 --- a/openbsd-compat/bsd-poll.c +++ b/openbsd-compat/bsd-poll.c @@ -1,4 +1,4 @@ -/* $Id: bsd-poll.c,v 1.3 2008/04/04 05:16:36 djm Exp $ */ +/* $Id: bsd-poll.c,v 1.4 2008/08/29 21:32:38 dtucker Exp $ */ /* * Copyright (c) 2004, 2005, 2007 Darren Tucker (dtucker at zip com au). @@ -46,11 +46,12 @@ poll(struct pollfd *fds, nfds_t nfds, int timeout) struct timeval tv, *tvp = NULL; for (i = 0; i < nfds; i++) { + fd = fds[i].fd; if (fd >= FD_SETSIZE) { errno = EINVAL; return -1; } - maxfd = MAX(maxfd, fds[i].fd); + maxfd = MAX(maxfd, fd); } nmemb = howmany(maxfd + 1 , NFDBITS); -- cgit v1.2.3 From c570ff7fa4a68f57ff8938ba0672ddba9c9a23f9 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sat, 6 Sep 2008 18:20:57 +1000 Subject: - (dtucker) [config.guess config.sub] Update to latest versions from http://git.savannah.gnu.org/gitweb/ (2008-04-14 and 2008-06-16 respectively). --- ChangeLog | 7 ++- config.guess | 155 ++++++++++++++++++++++++++++-------------------- config.sub | 191 +++++++++++++++++++++++++++++++++++++++++++++-------------- 3 files changed, 244 insertions(+), 109 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5d76889a2..3b4cde0d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20080906 + - (dtucker) [config.guess config.sub] Update to latest versions from + http://git.savannah.gnu.org/gitweb/ (2008-04-14 and 2008-06-16 + respectively). + 20080830 - (dtucker) [openbsd-compat/bsd-poll.c] correctly check for number of FDs larger than FD_SETSIZE (OpenSSH only ever uses poll with one fd). Patch @@ -4726,4 +4731,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5098 2008/08/29 21:32:37 dtucker Exp $ +$Id: ChangeLog,v 1.5099 2008/09/06 08:20:57 dtucker Exp $ diff --git a/config.guess b/config.guess index 6d71f752f..c7607c74f 100755 --- a/config.guess +++ b/config.guess @@ -1,9 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. -timestamp='2005-05-27' +timestamp='2008-04-14' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -55,8 +56,8 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -106,7 +107,7 @@ set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; @@ -125,7 +126,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ;' +esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) @@ -160,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched @@ -199,50 +201,18 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; - amd64:OpenBSD:*:*) - echo x86_64-unknown-openbsd${UNAME_RELEASE} - exit ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit ;; - cats:OpenBSD:*:*) - echo arm-unknown-openbsd${UNAME_RELEASE} - exit ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit ;; - luna88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit ;; - sgi:OpenBSD:*:*) - echo mips64-unknown-openbsd${UNAME_RELEASE} - exit ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit ;; *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; macppc:MirBSD:*:*) - echo powerppc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} @@ -360,7 +330,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; - i86pc:SunOS:5.*:*) + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) @@ -562,7 +532,7 @@ EOF echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[45]) + *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 @@ -658,8 +628,7 @@ EOF esac if [ ${HP_ARCH} = "hppa2.0w" ] then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build + eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -800,12 +769,19 @@ EOF echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; - i*:MINGW*:*) + *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) @@ -815,9 +791,18 @@ EOF i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - x86:Interix*:[34]*) - echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' - exit ;; + *:Interix*:[3456]*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T | authenticamd) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; @@ -830,7 +815,7 @@ EOF i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; - amd64:CYGWIN*:*:*) + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) @@ -851,6 +836,16 @@ EOF echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; + avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) @@ -887,7 +882,11 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) @@ -906,9 +905,16 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; @@ -952,9 +958,15 @@ EOF sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent @@ -973,9 +985,6 @@ EOF a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. @@ -997,7 +1006,7 @@ EOF LIBC=gnulibc1 # endif #else - #ifdef __INTEL_COMPILER + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout @@ -1007,7 +1016,11 @@ EOF LIBC=dietlibc #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit @@ -1200,6 +1213,9 @@ EOF BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1209,6 +1225,15 @@ EOF SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1218,7 +1243,6 @@ EOF *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in - *86) UNAME_PROCESSOR=i686 ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} @@ -1297,6 +1321,9 @@ EOF i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1457,9 +1484,9 @@ This script, last modified $timestamp, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD and - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD If the version you run ($0) is already up to date, please send the following data and any information you think might be diff --git a/config.sub b/config.sub index 519f2cd00..a649350a6 100755 --- a/config.sub +++ b/config.sub @@ -1,9 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. -timestamp='2005-05-12' +timestamp='2008-06-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -71,8 +72,8 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -119,8 +120,9 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ - kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -171,6 +173,10 @@ case $os in -hiux*) os=-hiuxwe2 ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -187,6 +193,10 @@ case $os in # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -231,23 +241,27 @@ case $basic_machine in | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ - | fr30 | frv \ + | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ - | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ - | mips64vr | mips64vrel \ + | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ @@ -256,21 +270,24 @@ case $basic_machine in | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | mt \ | msp430 \ + | nios | nios2 \ | ns16k | ns32k \ - | openrisc | or32 \ + | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | score \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b \ - | strongarm \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ - | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; @@ -281,6 +298,9 @@ case $basic_machine in ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; + ms1) + basic_machine=mt-unknown + ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and @@ -300,28 +320,31 @@ case $basic_machine in | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ + | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ - | m32r-* | m32rle-* \ + | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ + | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ @@ -330,28 +353,34 @@ case $basic_machine in | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ + | mt-* \ | msp430-* \ + | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) @@ -422,10 +451,22 @@ case $basic_machine in basic_machine=ns32k-sequent os=-dynix ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; c90) basic_machine=c90-cray os=-unicos ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; convex-c1) basic_machine=c1-convex os=-bsd @@ -454,8 +495,8 @@ case $basic_machine in basic_machine=craynv-cray os=-unicosmp ;; - cr16c) - basic_machine=cr16c-unknown + cr16) + basic_machine=cr16-unknown os=-elf ;; crds | unos) @@ -493,6 +534,10 @@ case $basic_machine in basic_machine=m88k-motorola os=-sysv3 ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp @@ -647,6 +692,14 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; m88k-omron*) basic_machine=m88k-omron ;; @@ -662,6 +715,10 @@ case $basic_machine in basic_machine=i386-pc os=-mingw32 ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; miniframe) basic_machine=m68000-convergent ;; @@ -687,6 +744,9 @@ case $basic_machine in basic_machine=i386-pc os=-msdos ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; mvs) basic_machine=i370-ibm os=-mvs @@ -762,9 +822,8 @@ case $basic_machine in basic_machine=hppa1.1-oki os=-proelf ;; - or32 | or32-*) + openrisc | openrisc-*) basic_machine=or32-unknown - os=-coff ;; os400) basic_machine=powerpc-ibm @@ -786,6 +845,14 @@ case $basic_machine in basic_machine=i860-intel os=-osf ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; pbd) basic_machine=sparc-tti ;; @@ -795,6 +862,12 @@ case $basic_machine in pc532 | pc532-*) basic_machine=ns32k-pc532 ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; @@ -851,6 +924,10 @@ case $basic_machine in basic_machine=i586-unknown os=-pw32 ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; rom68k) basic_machine=m68k-rom68k os=-coff @@ -877,6 +954,10 @@ case $basic_machine in sb1el) basic_machine=mipsisa64sb1el-unknown ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; sei) basic_machine=mips-sei os=-seiux @@ -888,6 +969,9 @@ case $basic_machine in basic_machine=sh-hitachi os=-hms ;; + sh5el) + basic_machine=sh5le-unknown + ;; sh64) basic_machine=sh64-unknown ;; @@ -977,6 +1061,10 @@ case $basic_machine in basic_machine=tic6x-unknown os=-coff ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; tx39) basic_machine=mipstx39-unknown ;; @@ -1090,13 +1178,10 @@ case $basic_machine in we32k) basic_machine=we32k-att ;; - sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) @@ -1169,20 +1254,23 @@ case $os in | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ + | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* | -skyos*) + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1200,7 +1288,7 @@ case $os in os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) @@ -1312,6 +1400,9 @@ case $os in -zvmoe) os=-zvmoe ;; + -dicos*) + os=-dicos + ;; -none) ;; *) @@ -1334,6 +1425,12 @@ else # system, and we'll never get to this point. case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; *-acorn) os=-riscix1.2 ;; @@ -1343,9 +1440,9 @@ case $basic_machine in arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff - ;; + c4x-* | tic4x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 @@ -1371,6 +1468,9 @@ case $basic_machine in m68*-cisco) os=-aout ;; + mep-*) + os=-elf + ;; mips*-cisco) os=-elf ;; @@ -1389,6 +1489,9 @@ case $basic_machine in *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; -- cgit v1.2.3 From 718ed5040196266d623a98aa61873bb50a7bf564 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:15:20 +1100 Subject: - sthen@cvs.openbsd.org 2008/07/24 23:55:30 [ssh-keygen.1] Add "ssh-keygen -F -l" to synopsis (displays fingerprint from known_hosts). ok djm@ --- ssh-keygen.1 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ssh-keygen.1 b/ssh-keygen.1 index 3fff59e77..3596cc174 100644 --- a/ssh-keygen.1 +++ b/ssh-keygen.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keygen.1,v 1.78 2008/06/12 19:10:09 jmc Exp $ +.\" $OpenBSD: ssh-keygen.1,v 1.79 2008/07/24 23:55:30 sthen Exp $ .\" .\" -*- nroff -*- .\" @@ -37,7 +37,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: June 12 2008 $ +.Dd $Mdocdate: July 24 2008 $ .Dt SSH-KEYGEN 1 .Os .Sh NAME @@ -83,6 +83,7 @@ .Nm ssh-keygen .Fl F Ar hostname .Op Fl f Ar known_hosts_file +.Op Fl l .Nm ssh-keygen .Fl H .Op Fl f Ar known_hosts_file -- cgit v1.2.3 From 9f6fb56ab83da2e795e4a8eb863992701fd83516 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:15:44 +1100 Subject: - grunk@cvs.openbsd.org 2008/07/25 06:56:35 [ssh_config] Add VisualHostKey to example file, ok djm@ --- ChangeLog | 12 +++++++++++- ssh_config | 3 ++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3b4cde0d6..c95a93c6d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +20081103 + - OpenBSD CVS Sync + - sthen@cvs.openbsd.org 2008/07/24 23:55:30 + [ssh-keygen.1] + Add "ssh-keygen -F -l" to synopsis (displays fingerprint from + known_hosts). ok djm@ + - grunk@cvs.openbsd.org 2008/07/25 06:56:35 + [ssh_config] + Add VisualHostKey to example file, ok djm@ + 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from http://git.savannah.gnu.org/gitweb/ (2008-04-14 and 2008-06-16 @@ -4731,4 +4741,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5099 2008/09/06 08:20:57 dtucker Exp $ +$Id: ChangeLog,v 1.5100 2008/11/03 08:15:44 djm Exp $ diff --git a/ssh_config b/ssh_config index 8cb0698a8..ef5a73f7d 100644 --- a/ssh_config +++ b/ssh_config @@ -1,4 +1,4 @@ -# $OpenBSD: ssh_config,v 1.23 2007/06/08 04:40:40 pvalchev Exp $ +# $OpenBSD: ssh_config,v 1.24 2008/07/25 06:56:35 grunk Exp $ # This is the ssh client system-wide configuration file. See # ssh_config(5) for more information. This file provides defaults for @@ -43,3 +43,4 @@ # Tunnel no # TunnelDevice any:any # PermitLocalCommand no +# VisualHostKey no -- cgit v1.2.3 From c6aadd994d0ed79f5606b7061d576d514fd71cd7 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:16:20 +1100 Subject: - grunk@cvs.openbsd.org 2008/07/25 07:05:16 [key.c] In random art visualization, make sure to use the end marker only at the end. Initial diff by Dirk Loss, tweaks and ok djm@ --- ChangeLog | 6 +++++- key.c | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index c95a93c6d..52149d216 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,10 @@ - grunk@cvs.openbsd.org 2008/07/25 06:56:35 [ssh_config] Add VisualHostKey to example file, ok djm@ + - grunk@cvs.openbsd.org 2008/07/25 07:05:16 + [key.c] + In random art visualization, make sure to use the end marker only at the + end. Initial diff by Dirk Loss, tweaks and ok djm@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4741,4 +4745,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5100 2008/11/03 08:15:44 djm Exp $ +$Id: ChangeLog,v 1.5101 2008/11/03 08:16:20 djm Exp $ diff --git a/key.c b/key.c index 2ea13d27d..76d6af92b 100644 --- a/key.c +++ b/key.c @@ -1,4 +1,4 @@ -/* $OpenBSD: key.c,v 1.78 2008/07/07 23:32:51 stevesk Exp $ */ +/* $OpenBSD: key.c,v 1.79 2008/07/25 07:05:16 grunk Exp $ */ /* * read_bignum(): * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -369,7 +369,8 @@ key_fingerprint_randomart(u_char *dgst_raw, u_int dgst_raw_len, const Key *k) y = MIN(y, FLDSIZE_Y - 1); /* augment the field */ - field[x][y]++; + if (field[x][y] < len - 2) + field[x][y]++; input = input >> 2; } } -- cgit v1.2.3 From c674d580dc9626ed3bb8886f34bd9dffef851a0a Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:16:57 +1100 Subject: - markus@cvs.openbsd.org 2008/07/31 14:48:28 [sshconnect2.c] don't allocate space for empty banners; report t8m at centrum.cz; ok deraadt --- ChangeLog | 6 +++++- sshconnect2.c | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 52149d216..5c7d25efc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,6 +11,10 @@ [key.c] In random art visualization, make sure to use the end marker only at the end. Initial diff by Dirk Loss, tweaks and ok djm@ + - markus@cvs.openbsd.org 2008/07/31 14:48:28 + [sshconnect2.c] + don't allocate space for empty banners; report t8m at centrum.cz; + ok deraadt 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4745,4 +4749,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5101 2008/11/03 08:16:20 djm Exp $ +$Id: ChangeLog,v 1.5102 2008/11/03 08:17:08 djm Exp $ diff --git a/sshconnect2.c b/sshconnect2.c index 389bec9e4..1a8f39071 100644 --- a/sshconnect2.c +++ b/sshconnect2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect2.c,v 1.166 2008/07/17 08:48:00 djm Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.167 2008/07/31 14:48:28 markus Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -383,7 +383,7 @@ input_userauth_banner(int type, u_int32_t seq, void *ctxt) debug3("input_userauth_banner"); raw = packet_get_string(&len); lang = packet_get_string(NULL); - if (options.log_level >= SYSLOG_LEVEL_INFO) { + if (len > 0 && options.log_level >= SYSLOG_LEVEL_INFO) { if (len > 65536) len = 65536; msg = xmalloc(len * 4); /* max expansion from strnvis() */ -- cgit v1.2.3 From fa51b1626c56b848d488d356be897dc41751b490 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:17:33 +1100 Subject: - krw@cvs.openbsd.org 2008/08/02 04:29:51 [ssh_config.5] whitepsace -> whitespace. From Matthew Clarke via bugs@. --- ChangeLog | 5 ++++- ssh_config.5 | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5c7d25efc..c8840cbfc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,6 +15,9 @@ [sshconnect2.c] don't allocate space for empty banners; report t8m at centrum.cz; ok deraadt + - krw@cvs.openbsd.org 2008/08/02 04:29:51 + [ssh_config.5] + whitepsace -> whitespace. From Matthew Clarke via bugs@. 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4749,4 +4752,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5102 2008/11/03 08:17:08 djm Exp $ +$Id: ChangeLog,v 1.5103 2008/11/03 08:17:33 djm Exp $ diff --git a/ssh_config.5 b/ssh_config.5 index 85e7ba06d..19dd9ec1b 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.111 2008/06/26 11:46:31 grunk Exp $ -.Dd $Mdocdate: June 26 2008 $ +.\" $OpenBSD: ssh_config.5,v 1.112 2008/08/02 04:29:51 krw Exp $ +.Dd $Mdocdate: August 2 2008 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -103,7 +103,7 @@ Restricts the following declarations (up to the next .Cm Host keyword) to be only for those hosts that match one of the patterns given after the keyword. -If more than one pattern is provided, they should be separated by whitepsace. +If more than one pattern is provided, they should be separated by whitespace. A single .Ql * as a pattern can be used to provide global -- cgit v1.2.3 From ad793d59a95a3b69f705c46bcf4f6e720b65f32f Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:17:57 +1100 Subject: - djm@cvs.openbsd.org 2008/08/21 04:09:57 [session.c] allow ForceCommand internal-sftp with arguments. based on patch from michael.barabanov AT gmail.com; ok markus@ --- ChangeLog | 6 +++++- session.c | 12 +++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index c8840cbfc..8bfe8ea10 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,10 @@ - krw@cvs.openbsd.org 2008/08/02 04:29:51 [ssh_config.5] whitepsace -> whitespace. From Matthew Clarke via bugs@. + - djm@cvs.openbsd.org 2008/08/21 04:09:57 + [session.c] + allow ForceCommand internal-sftp with arguments. based on patch from + michael.barabanov AT gmail.com; ok markus@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4752,4 +4756,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5103 2008/11/03 08:17:33 djm Exp $ +$Id: ChangeLog,v 1.5104 2008/11/03 08:17:57 djm Exp $ diff --git a/session.c b/session.c index 93babf957..471018bc9 100644 --- a/session.c +++ b/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.241 2008/06/16 13:22:53 dtucker Exp $ */ +/* $OpenBSD: session.c,v 1.242 2008/08/21 04:09:57 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -95,6 +95,12 @@ #include #endif +#define IS_INTERNAL_SFTP(c) \ + (!strncmp(c, INTERNAL_SFTP_NAME, sizeof(INTERNAL_SFTP_NAME) - 1) && \ + (c[sizeof(INTERNAL_SFTP_NAME) - 1] == '\0' || \ + c[sizeof(INTERNAL_SFTP_NAME) - 1] == ' ' || \ + c[sizeof(INTERNAL_SFTP_NAME) - 1] == '\t')) + /* func */ Session *session_new(void); @@ -781,7 +787,7 @@ do_exec(Session *s, const char *command) if (options.adm_forced_command) { original_command = command; command = options.adm_forced_command; - if (strcmp(INTERNAL_SFTP_NAME, command) == 0) + if (IS_INTERNAL_SFTP(command)) s->is_subsystem = SUBSYSTEM_INT_SFTP; else if (s->is_subsystem) s->is_subsystem = SUBSYSTEM_EXT; @@ -789,7 +795,7 @@ do_exec(Session *s, const char *command) } else if (forced_command) { original_command = command; command = forced_command; - if (strcmp(INTERNAL_SFTP_NAME, command) == 0) + if (IS_INTERNAL_SFTP(command)) s->is_subsystem = SUBSYSTEM_INT_SFTP; else if (s->is_subsystem) s->is_subsystem = SUBSYSTEM_EXT; -- cgit v1.2.3 From 15bce6b8f0e7280aaf26b97a316a991990fc0ca0 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:19:12 +1100 Subject: - djm@cvs.openbsd.org 2008/09/06 12:24:13 [kex.c] OpenSSL 0.9.8h supplies a real EVP_sha256 so we do not need our replacement anymore (ID sync only for portable - we still need this) --- ChangeLog | 7 ++++++- kex.c | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8bfe8ea10..975b305be 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22,6 +22,11 @@ [session.c] allow ForceCommand internal-sftp with arguments. based on patch from michael.barabanov AT gmail.com; ok markus@ + - djm@cvs.openbsd.org 2008/09/06 12:24:13 + [kex.c] + OpenSSL 0.9.8h supplies a real EVP_sha256 so we do not need our + replacement anymore + (ID sync only for portable - we still need this) 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4756,4 +4761,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5104 2008/11/03 08:17:57 djm Exp $ +$Id: ChangeLog,v 1.5105 2008/11/03 08:19:12 djm Exp $ diff --git a/kex.c b/kex.c index 332fadf6e..48b54f5f7 100644 --- a/kex.c +++ b/kex.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kex.c,v 1.79 2007/06/05 06:52:37 djm Exp $ */ +/* $OpenBSD: kex.c,v 1.80 2008/09/06 12:24:13 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * -- cgit v1.2.3 From 456e6f0ebb27b4851363422aa9974b0848d4b168 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:20:10 +1100 Subject: - markus@cvs.openbsd.org 2008/09/11 14:22:37 [compat.c compat.h nchan.c ssh.c] only send eow and no-more-sessions requests to openssh 5 and newer; fixes interop problems with broken ssh v2 implementations; ok djm@ --- ChangeLog | 6 +++++- compat.c | 5 +++-- compat.h | 3 ++- nchan.c | 4 +++- ssh.c | 5 +++-- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 975b305be..f110f435e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -27,6 +27,10 @@ OpenSSL 0.9.8h supplies a real EVP_sha256 so we do not need our replacement anymore (ID sync only for portable - we still need this) + - markus@cvs.openbsd.org 2008/09/11 14:22:37 + [compat.c compat.h nchan.c ssh.c] + only send eow and no-more-sessions requests to openssh 5 and newer; + fixes interop problems with broken ssh v2 implementations; ok djm@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4761,4 +4765,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5105 2008/11/03 08:19:12 djm Exp $ +$Id: ChangeLog,v 1.5106 2008/11/03 08:20:10 djm Exp $ diff --git a/compat.c b/compat.c index bc1131581..df3541df7 100644 --- a/compat.c +++ b/compat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: compat.c,v 1.77 2006/12/12 03:58:42 djm Exp $ */ +/* $OpenBSD: compat.c,v 1.78 2008/09/11 14:22:37 markus Exp $ */ /* * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. * @@ -91,7 +91,8 @@ compat_datafellows(const char *version) "OpenSSH_3.1*", SSH_BUG_EXTEOF|SSH_OLD_FORWARD_ADDR}, { "OpenSSH_3.*", SSH_OLD_FORWARD_ADDR }, { "Sun_SSH_1.0*", SSH_BUG_NOREKEY|SSH_BUG_EXTEOF}, - { "OpenSSH*", 0 }, + { "OpenSSH_4*", 0 }, + { "OpenSSH*", SSH_NEW_OPENSSH }, { "*MindTerm*", 0 }, { "2.1.0*", SSH_BUG_SIGBLOB|SSH_BUG_HMAC| SSH_OLD_SESSIONID|SSH_BUG_DEBUG| diff --git a/compat.h b/compat.h index 4d8ebc908..16cf282a7 100644 --- a/compat.h +++ b/compat.h @@ -1,4 +1,4 @@ -/* $OpenBSD: compat.h,v 1.41 2006/12/12 03:58:42 djm Exp $ */ +/* $OpenBSD: compat.h,v 1.42 2008/09/11 14:22:37 markus Exp $ */ /* * Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved. @@ -57,6 +57,7 @@ #define SSH_BUG_FIRSTKEX 0x00800000 #define SSH_OLD_FORWARD_ADDR 0x01000000 #define SSH_BUG_RFWD_ADDR 0x02000000 +#define SSH_NEW_OPENSSH 0x04000000 void enable_compat13(void); void enable_compat20(void); diff --git a/nchan.c b/nchan.c index e0ebf43f1..b78d6a764 100644 --- a/nchan.c +++ b/nchan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nchan.c,v 1.60 2008/06/30 12:16:02 djm Exp $ */ +/* $OpenBSD: nchan.c,v 1.61 2008/09/11 14:22:37 markus Exp $ */ /* * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. * @@ -387,6 +387,8 @@ chan_send_eow2(Channel *c) c->self); return; } + if (!(datafellows & SSH_NEW_OPENSSH)) + return; packet_start(SSH2_MSG_CHANNEL_REQUEST); packet_put_int(c->remote_id); packet_put_cstring("eow@openssh.com"); diff --git a/ssh.c b/ssh.c index e2dd67d68..a91d886ce 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.318 2008/07/02 13:47:39 djm Exp $ */ +/* $OpenBSD: ssh.c,v 1.319 2008/09/11 14:22:37 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1200,7 +1200,8 @@ ssh_session2(void) id = ssh_session2_open(); /* If we don't expect to open a new session, then disallow it */ - if (options.control_master == SSHCTL_MASTER_NO) { + if (options.control_master == SSHCTL_MASTER_NO && + (datafellows & SSH_NEW_OPENSSH)) { debug("Requesting no-more-sessions@openssh.com"); packet_start(SSH2_MSG_GLOBAL_REQUEST); packet_put_cstring("no-more-sessions@openssh.com"); -- cgit v1.2.3 From d58f56000c95f2c4eca22b4f89f19c557e23d919 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:20:49 +1100 Subject: - millert@cvs.openbsd.org 2008/10/02 14:39:35 [session.c] Convert an unchecked strdup to xstrdup. OK deraadt@ --- ChangeLog | 5 ++++- session.c | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f110f435e..d1061fdbc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -31,6 +31,9 @@ [compat.c compat.h nchan.c ssh.c] only send eow and no-more-sessions requests to openssh 5 and newer; fixes interop problems with broken ssh v2 implementations; ok djm@ + - millert@cvs.openbsd.org 2008/10/02 14:39:35 + [session.c] + Convert an unchecked strdup to xstrdup. OK deraadt@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4765,4 +4768,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5106 2008/11/03 08:20:10 djm Exp $ +$Id: ChangeLog,v 1.5107 2008/11/03 08:20:49 djm Exp $ diff --git a/session.c b/session.c index 471018bc9..4bed28d7f 100644 --- a/session.c +++ b/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.242 2008/08/21 04:09:57 djm Exp $ */ +/* $OpenBSD: session.c,v 1.243 2008/10/02 14:39:35 millert Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -1795,7 +1795,7 @@ do_child(Session *s, const char *command) char *p, *args; setproctitle("%s@internal-sftp-server", s->pw->pw_name); - args = strdup(command ? command : "sftp-server"); + args = xstrdup(command ? command : "sftp-server"); for (i = 0, (p = strtok(args, " ")); p; (p = strtok(NULL, " "))) if (i < ARGV_MAX - 1) argv[i++] = p; -- cgit v1.2.3 From 49b78d4fbc138a252fc083c67d6b3750477d92a1 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:21:21 +1100 Subject: - jmc@cvs.openbsd.org 2008/10/03 13:08:12 [sshd.8] do not give an example of how to chmod files: we can presume the user knows that. removes an ambiguity in the permission of authorized_keys; ok deraadt --- ChangeLog | 7 ++++++- sshd.8 | 6 ++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index d1061fdbc..5da1ee434 100644 --- a/ChangeLog +++ b/ChangeLog @@ -34,6 +34,11 @@ - millert@cvs.openbsd.org 2008/10/02 14:39:35 [session.c] Convert an unchecked strdup to xstrdup. OK deraadt@ + - jmc@cvs.openbsd.org 2008/10/03 13:08:12 + [sshd.8] + do not give an example of how to chmod files: we can presume the user + knows that. removes an ambiguity in the permission of authorized_keys; + ok deraadt 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4768,4 +4773,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5107 2008/11/03 08:20:49 djm Exp $ +$Id: ChangeLog,v 1.5108 2008/11/03 08:21:21 djm Exp $ diff --git a/sshd.8 b/sshd.8 index c4c4181fc..a4b9e90c7 100644 --- a/sshd.8 +++ b/sshd.8 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd.8,v 1.246 2008/07/02 02:24:18 djm Exp $ -.Dd $Mdocdate: July 2 2008 $ +.\" $OpenBSD: sshd.8,v 1.247 2008/10/03 13:08:12 jmc Exp $ +.Dd $Mdocdate: October 3 2008 $ .Dt SSHD 8 .Os .Sh NAME @@ -741,8 +741,6 @@ will not allow it to be used unless the .Cm StrictModes option has been set to .Dq no . -The recommended permissions can be set by executing -.Dq chmod go-w ~/ ~/.ssh ~/.ssh/authorized_keys . .Pp .It ~/.ssh/environment This file is read into the environment at login (if it exists). -- cgit v1.2.3 From c4d1b36cc2fb89566fe01b990abf8b635e0dce74 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:22:09 +1100 Subject: aadt@cvs.openbsd.org 2008/10/03 23:56:28 [sshconnect2.c] Repair strnvis() buffersize of 4*n+1, with termination gauranteed by the function. spotted by des@freebsd, who commited an incorrect fix to the freebsd tree and (as is fairly typical) did not report the problem to us. But this fix is correct. ok djm --- ChangeLog | 10 +++++++++- sshconnect2.c | 6 +++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5da1ee434..81c6ef9b4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -39,6 +39,14 @@ do not give an example of how to chmod files: we can presume the user knows that. removes an ambiguity in the permission of authorized_keys; ok deraadt + - deraadt@cvs.openbsd.org 2008/10/03 23:56:28 + [sshconnect2.c] + Repair strnvis() buffersize of 4*n+1, with termination gauranteed by the + function. + spotted by des@freebsd, who commited an incorrect fix to the freebsd tree + and (as is fairly typical) did not report the problem to us. But this fix + is correct. + ok djm 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4773,4 +4781,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5108 2008/11/03 08:21:21 djm Exp $ +$Id: ChangeLog,v 1.5109 2008/11/03 08:22:09 djm Exp $ diff --git a/sshconnect2.c b/sshconnect2.c index 1a8f39071..fe9285f17 100644 --- a/sshconnect2.c +++ b/sshconnect2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect2.c,v 1.167 2008/07/31 14:48:28 markus Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.168 2008/10/03 23:56:28 deraadt Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -386,8 +386,8 @@ input_userauth_banner(int type, u_int32_t seq, void *ctxt) if (len > 0 && options.log_level >= SYSLOG_LEVEL_INFO) { if (len > 65536) len = 65536; - msg = xmalloc(len * 4); /* max expansion from strnvis() */ - strnvis(msg, raw, len * 4, VIS_SAFE|VIS_OCTAL); + msg = xmalloc(len * 4 + 1); /* max expansion from strnvis() */ + strnvis(msg, raw, len * 4 + 1, VIS_SAFE|VIS_OCTAL); fprintf(stderr, "%s", msg); xfree(msg); } -- cgit v1.2.3 From e272a5bb2937f1a8297c412c9312c38133f829c1 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:22:37 +1100 Subject: - djm@cvs.openbsd.org 2008/10/08 23:34:03 [ssh.1 ssh.c] Add -y option to force logging via syslog rather than stderr. Useful for daemonised ssh connection (ssh -f). Patch originally from and ok'd by markus@ --- ChangeLog | 7 ++++++- ssh.1 | 11 ++++++++--- ssh.c | 14 +++++++++----- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 81c6ef9b4..35b63fafc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -47,6 +47,11 @@ and (as is fairly typical) did not report the problem to us. But this fix is correct. ok djm + - djm@cvs.openbsd.org 2008/10/08 23:34:03 + [ssh.1 ssh.c] + Add -y option to force logging via syslog rather than stderr. + Useful for daemonised ssh connection (ssh -f). Patch originally from + and ok'd by markus@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4781,4 +4786,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5109 2008/11/03 08:22:09 djm Exp $ +$Id: ChangeLog,v 1.5110 2008/11/03 08:22:37 djm Exp $ diff --git a/ssh.1 b/ssh.1 index 1883578f2..c8cd2136c 100644 --- a/ssh.1 +++ b/ssh.1 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh.1,v 1.277 2008/07/02 13:47:39 djm Exp $ -.Dd $Mdocdate: July 2 2008 $ +.\" $OpenBSD: ssh.1,v 1.278 2008/10/08 23:34:03 djm Exp $ +.Dd $Mdocdate: October 8 2008 $ .Dt SSH 1 .Os .Sh NAME @@ -43,7 +43,7 @@ .Nd OpenSSH SSH client (remote login program) .Sh SYNOPSIS .Nm ssh -.Op Fl 1246AaCfgKkMNnqsTtVvXxY +.Op Fl 1246AaCfgKkMNnqsTtVvXxYy .Op Fl b Ar bind_address .Op Fl c Ar cipher_spec .Oo Fl D\ \& @@ -658,6 +658,11 @@ Disables X11 forwarding. Enables trusted X11 forwarding. Trusted X11 forwardings are not subjected to the X11 SECURITY extension controls. +.It Fl y +Send log information using the +.Xr syslog 3 +system module. +By default this information is sent to stderr. .El .Pp .Nm diff --git a/ssh.c b/ssh.c index a91d886ce..ff47a6c28 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.319 2008/09/11 14:22:37 markus Exp $ */ +/* $OpenBSD: ssh.c,v 1.320 2008/10/08 23:34:03 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -203,7 +203,7 @@ void muxserver_listen(void); int main(int ac, char **av) { - int i, opt, exit_status; + int i, opt, exit_status, use_syslog; char *p, *cp, *line, buf[256]; struct stat st; struct passwd *pw; @@ -269,10 +269,11 @@ main(int ac, char **av) /* Parse command-line arguments. */ host = NULL; + use_syslog = 0; again: while ((opt = getopt(ac, av, "1246ab:c:e:fgi:kl:m:no:p:qstvx" - "ACD:F:I:KL:MNO:PR:S:TVw:XY")) != -1) { + "ACD:F:I:KL:MNO:PR:S:TVw:XYy")) != -1) { switch (opt) { case '1': options.protocol = SSH_PROTO_1; @@ -299,6 +300,9 @@ main(int ac, char **av) case 'X': options.forward_x11 = 1; break; + case 'y': + use_syslog = 1; + break; case 'Y': options.forward_x11 = 1; options.forward_x11_trusted = 1; @@ -614,7 +618,7 @@ main(int ac, char **av) */ log_init(av[0], options.log_level == -1 ? SYSLOG_LEVEL_INFO : options.log_level, - SYSLOG_FACILITY_USER, 1); + SYSLOG_FACILITY_USER, !use_syslog); /* * Read per-user configuration file. Ignore the system wide config @@ -640,7 +644,7 @@ main(int ac, char **av) channel_set_af(options.address_family); /* reinit */ - log_init(av[0], options.log_level, SYSLOG_FACILITY_USER, 1); + log_init(av[0], options.log_level, SYSLOG_FACILITY_USER, !use_syslog); seed_rng(); -- cgit v1.2.3 From 51bde6000ac9887e071dcbbaa99bce68ee42020f Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:23:10 +1100 Subject: - djm@cvs.openbsd.org 2008/10/09 03:50:54 [servconf.c sshd_config.5] support setting PermitEmptyPasswords in a Match block requested in PR3891; ok dtucker@ --- ChangeLog | 6 +++++- servconf.c | 5 +++-- sshd_config.5 | 5 +++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 35b63fafc..347fd1803 100644 --- a/ChangeLog +++ b/ChangeLog @@ -52,6 +52,10 @@ Add -y option to force logging via syslog rather than stderr. Useful for daemonised ssh connection (ssh -f). Patch originally from and ok'd by markus@ + - djm@cvs.openbsd.org 2008/10/09 03:50:54 + [servconf.c sshd_config.5] + support setting PermitEmptyPasswords in a Match block + requested in PR3891; ok dtucker@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4786,4 +4790,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5110 2008/11/03 08:22:37 djm Exp $ +$Id: ChangeLog,v 1.5111 2008/11/03 08:23:10 djm Exp $ diff --git a/servconf.c b/servconf.c index 53e964dee..547f757a0 100644 --- a/servconf.c +++ b/servconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.c,v 1.187 2008/07/23 07:36:55 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.188 2008/10/09 03:50:54 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -380,7 +380,7 @@ static struct { { "x11uselocalhost", sX11UseLocalhost, SSHCFG_ALL }, { "xauthlocation", sXAuthLocation, SSHCFG_GLOBAL }, { "strictmodes", sStrictModes, SSHCFG_GLOBAL }, - { "permitemptypasswords", sEmptyPasswd, SSHCFG_GLOBAL }, + { "permitemptypasswords", sEmptyPasswd, SSHCFG_ALL }, { "permituserenvironment", sPermitUserEnvironment, SSHCFG_GLOBAL }, { "uselogin", sUseLogin, SSHCFG_GLOBAL }, { "compression", sCompression, SSHCFG_GLOBAL }, @@ -1378,6 +1378,7 @@ copy_set_server_options(ServerOptions *dst, ServerOptions *src, int preauth) M_CP_INTOPT(hostbased_authentication); M_CP_INTOPT(kbd_interactive_authentication); M_CP_INTOPT(permit_root_login); + M_CP_INTOPT(permit_empty_passwd); M_CP_INTOPT(allow_tcp_forwarding); M_CP_INTOPT(allow_agent_forwarding); diff --git a/sshd_config.5 b/sshd_config.5 index 7255b1c22..06fe5fd38 100644 --- a/sshd_config.5 +++ b/sshd_config.5 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.96 2008/07/02 02:24:18 djm Exp $ -.Dd $Mdocdate: July 2 2008 $ +.\" $OpenBSD: sshd_config.5,v 1.97 2008/10/09 03:50:54 djm Exp $ +.Dd $Mdocdate: October 9 2008 $ .Dt SSHD_CONFIG 5 .Os .Sh NAME @@ -605,6 +605,7 @@ Available keywords are .Cm MaxAuthTries , .Cm MaxSessions , .Cm PasswordAuthentication , +.Cm PermitEmptyPasswords , .Cm PermitOpen , .Cm PermitRootLogin , .Cm RhostsRSAAuthentication , -- cgit v1.2.3 From c13c3ee44ad2bfbff925b0863095d8fcba5612ae Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:23:28 +1100 Subject: - jmc@cvs.openbsd.org 2008/10/09 06:54:22 [ssh.c] add -y to usage(); --- ChangeLog | 5 ++++- ssh.c | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 347fd1803..b3d777ac4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -56,6 +56,9 @@ [servconf.c sshd_config.5] support setting PermitEmptyPasswords in a Match block requested in PR3891; ok dtucker@ + - jmc@cvs.openbsd.org 2008/10/09 06:54:22 + [ssh.c] + add -y to usage(); 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4790,4 +4793,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5111 2008/11/03 08:23:10 djm Exp $ +$Id: ChangeLog,v 1.5112 2008/11/03 08:23:28 djm Exp $ diff --git a/ssh.c b/ssh.c index ff47a6c28..82d3ab26b 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.320 2008/10/08 23:34:03 djm Exp $ */ +/* $OpenBSD: ssh.c,v 1.321 2008/10/09 06:54:22 jmc Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -179,7 +179,7 @@ static void usage(void) { fprintf(stderr, -"usage: ssh [-1246AaCfgKkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec]\n" +"usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]\n" " [-D [bind_address:]port] [-e escape_char] [-F configfile]\n" " [-i identity_file] [-L [bind_address:]port:host:hostport]\n" " [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]\n" -- cgit v1.2.3 From b4acb47f5f2302efe74c71b51db2729f872c0766 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:23:45 +1100 Subject: - stevesk@cvs.openbsd.org 2008/10/10 04:55:16 [scp.c] spelling in comment; ok djm@ --- ChangeLog | 5 ++++- scp.c | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index b3d777ac4..991eb8c93 100644 --- a/ChangeLog +++ b/ChangeLog @@ -59,6 +59,9 @@ - jmc@cvs.openbsd.org 2008/10/09 06:54:22 [ssh.c] add -y to usage(); + - stevesk@cvs.openbsd.org 2008/10/10 04:55:16 + [scp.c] + spelling in comment; ok djm@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4793,4 +4796,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5112 2008/11/03 08:23:28 djm Exp $ +$Id: ChangeLog,v 1.5113 2008/11/03 08:23:45 djm Exp $ diff --git a/scp.c b/scp.c index 9f8b7a192..323747806 100644 --- a/scp.c +++ b/scp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: scp.c,v 1.163 2008/06/13 18:55:22 dtucker Exp $ */ +/* $OpenBSD: scp.c,v 1.164 2008/10/10 04:55:16 stevesk Exp $ */ /* * scp - secure remote copy. This is basically patched BSD rcp which * uses ssh to do the data transfer (instead of using rcmd). @@ -434,7 +434,7 @@ main(int argc, char **argv) } /* * Finally check the exit status of the ssh process, if one was forked - * and no error has occured yet + * and no error has occurred yet */ if (do_cmd_pid != -1 && errs == 0) { if (remin != -1) -- cgit v1.2.3 From 2f54adabbb1e563ad639616ce7a93ffd17cc2de1 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:24:16 +1100 Subject: - stevesk@cvs.openbsd.org 2008/10/10 05:00:12 [key.c] typo in error message; ok djm@ --- ChangeLog | 5 ++++- key.c | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 991eb8c93..ccb604801 100644 --- a/ChangeLog +++ b/ChangeLog @@ -62,6 +62,9 @@ - stevesk@cvs.openbsd.org 2008/10/10 04:55:16 [scp.c] spelling in comment; ok djm@ + - stevesk@cvs.openbsd.org 2008/10/10 05:00:12 + [key.c] + typo in error message; ok djm@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4796,4 +4799,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5113 2008/11/03 08:23:45 djm Exp $ +$Id: ChangeLog,v 1.5114 2008/11/03 08:24:16 djm Exp $ diff --git a/key.c b/key.c index 76d6af92b..3e17da601 100644 --- a/key.c +++ b/key.c @@ -1,4 +1,4 @@ -/* $OpenBSD: key.c,v 1.79 2008/07/25 07:05:16 grunk Exp $ */ +/* $OpenBSD: key.c,v 1.80 2008/10/10 05:00:12 stevesk Exp $ */ /* * read_bignum(): * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -428,7 +428,7 @@ key_fingerprint(const Key *k, enum fp_type dgst_type, enum fp_rep dgst_rep) retval = key_fingerprint_randomart(dgst_raw, dgst_raw_len, k); break; default: - fatal("key_fingerprint_ex: bad digest representation %d", + fatal("key_fingerprint: bad digest representation %d", dgst_rep); break; } -- cgit v1.2.3 From de7532e1d42a5af8d1766e3b693a3d0f45d11160 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:24:45 +1100 Subject: - stevesk@cvs.openbsd.org 2008/10/10 16:43:27 [ssh_config.5] use 'Privileged ports can be forwarded only when logging in as root on the remote machine.' for RemoteForward just like ssh.1 -R. ok djm@ jmc@ --- ssh_config.5 | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ssh_config.5 b/ssh_config.5 index 19dd9ec1b..8ca55bd80 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.112 2008/08/02 04:29:51 krw Exp $ -.Dd $Mdocdate: August 2 2008 $ +.\" $OpenBSD: ssh_config.5,v 1.113 2008/10/10 16:43:27 stevesk Exp $ +.Dd $Mdocdate: October 10 2008 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -811,7 +811,8 @@ and .Ar host Ns / Ns Ar hostport . Multiple forwardings may be specified, and additional forwardings can be given on the command line. -Only the superuser can forward privileged ports. +Privileged ports can be forwarded only when +logging in as root on the remote machine. .Pp If the .Ar bind_address -- cgit v1.2.3 From ece92c8c5e03b1f927d0f8a8e6b3b37919c951c1 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:25:03 +1100 Subject: - stevesk@cvs.openbsd.org 2008/10/14 18:11:33 [sshconnect.c] use #define ROQUIET here; no binary change. ok dtucker@ --- ChangeLog | 10 +++++++++- sshconnect.c | 6 +++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index ccb604801..0d5b400d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -65,6 +65,14 @@ - stevesk@cvs.openbsd.org 2008/10/10 05:00:12 [key.c] typo in error message; ok djm@ + - stevesk@cvs.openbsd.org 2008/10/10 16:43:27 + [ssh_config.5] + use 'Privileged ports can be forwarded only when logging in as root on + the remote machine.' for RemoteForward just like ssh.1 -R. + ok djm@ jmc@ + - stevesk@cvs.openbsd.org 2008/10/14 18:11:33 + [sshconnect.c] + use #define ROQUIET here; no binary change. ok dtucker@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4799,4 +4807,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5114 2008/11/03 08:24:16 djm Exp $ +$Id: ChangeLog,v 1.5115 2008/11/03 08:25:03 djm Exp $ diff --git a/sshconnect.c b/sshconnect.c index ec8ba33e0..1c4c744ec 100644 --- a/sshconnect.c +++ b/sshconnect.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect.c,v 1.211 2008/07/01 07:24:22 dtucker Exp $ */ +/* $OpenBSD: sshconnect.c,v 1.212 2008/10/14 18:11:33 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -741,8 +741,8 @@ check_host_key(char *hostname, struct sockaddr *hostaddr, u_short port, if (options.host_key_alias == NULL && port != 0 && port != SSH_DEFAULT_PORT) { debug("checking without port identifier"); - if (check_host_key(hostname, hostaddr, 0, host_key, 2, - user_hostfile, system_hostfile) == 0) { + if (check_host_key(hostname, hostaddr, 0, host_key, + ROQUIET, user_hostfile, system_hostfile) == 0) { debug("found matching key w/out port"); break; } -- cgit v1.2.3 From a414cd3b196538a9ba5a0f0877bbf15f2dd4042d Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:25:21 +1100 Subject: - stevesk@cvs.openbsd.org 2008/10/17 18:36:24 [ssh_config.5] correct and clarify VisualHostKey; ok jmc@ --- ChangeLog | 5 ++++- ssh_config.5 | 10 ++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0d5b400d6..c30fae694 100644 --- a/ChangeLog +++ b/ChangeLog @@ -73,6 +73,9 @@ - stevesk@cvs.openbsd.org 2008/10/14 18:11:33 [sshconnect.c] use #define ROQUIET here; no binary change. ok dtucker@ + - stevesk@cvs.openbsd.org 2008/10/17 18:36:24 + [ssh_config.5] + correct and clarify VisualHostKey; ok jmc@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4807,4 +4810,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5115 2008/11/03 08:25:03 djm Exp $ +$Id: ChangeLog,v 1.5116 2008/11/03 08:25:21 djm Exp $ diff --git a/ssh_config.5 b/ssh_config.5 index 8ca55bd80..254940ef8 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.113 2008/10/10 16:43:27 stevesk Exp $ -.Dd $Mdocdate: October 10 2008 $ +.\" $OpenBSD: ssh_config.5,v 1.114 2008/10/17 18:36:24 stevesk Exp $ +.Dd $Mdocdate: October 17 2008 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -1065,10 +1065,12 @@ in If this flag is set to .Dq yes , an ASCII art representation of the remote host key fingerprint is -printed additionally to the hex fingerprint string. +printed in addition to the hex fingerprint string at login and +for unknown host keys. If this flag is set to .Dq no , -only the hex fingerprint string will be printed. +no fingerprint strings are printed at login and +only the hex fingerprint string will be printed for unknown host keys. The default is .Dq no . .It Cm XAuthLocation -- cgit v1.2.3 From e7261c7e368fe7d6694918e62fe23e24aa3e1fca Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:25:40 +1100 Subject: - stevesk@cvs.openbsd.org 2008/10/30 19:31:16 [clientloop.c sshd.c] don't need to #include "monitor_fdpass.h" --- ChangeLog | 5 ++++- clientloop.c | 3 +-- sshd.c | 3 +-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index c30fae694..ce90ddd88 100644 --- a/ChangeLog +++ b/ChangeLog @@ -76,6 +76,9 @@ - stevesk@cvs.openbsd.org 2008/10/17 18:36:24 [ssh_config.5] correct and clarify VisualHostKey; ok jmc@ + - stevesk@cvs.openbsd.org 2008/10/30 19:31:16 + [clientloop.c sshd.c] + don't need to #include "monitor_fdpass.h" 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4810,4 +4813,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5116 2008/11/03 08:25:21 djm Exp $ +$Id: ChangeLog,v 1.5117 2008/11/03 08:25:40 djm Exp $ diff --git a/clientloop.c b/clientloop.c index f10fab769..30e17d20c 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.201 2008/07/16 11:51:14 djm Exp $ */ +/* $OpenBSD: clientloop.c,v 1.202 2008/10/30 19:31:16 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -107,7 +107,6 @@ #include "atomicio.h" #include "sshpty.h" #include "misc.h" -#include "monitor_fdpass.h" #include "match.h" #include "msg.h" diff --git a/sshd.c b/sshd.c index 6e5bb5476..fa314b8a7 100644 --- a/sshd.c +++ b/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.364 2008/07/10 18:08:11 markus Exp $ */ +/* $OpenBSD: sshd.c,v 1.365 2008/10/30 19:31:16 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -117,7 +117,6 @@ #include "ssh-gss.h" #endif #include "monitor_wrap.h" -#include "monitor_fdpass.h" #include "version.h" #ifdef LIBWRAP -- cgit v1.2.3 From 2b20a92b7b404abe44d141461196a1d862214e06 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:26:00 +1100 Subject: - stevesk@cvs.openbsd.org 2008/10/31 15:05:34 [dispatch.c] remove unused #define DISPATCH_MIN; ok markus@ --- ChangeLog | 5 ++++- dispatch.c | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index ce90ddd88..f52d1b5f5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -79,6 +79,9 @@ - stevesk@cvs.openbsd.org 2008/10/30 19:31:16 [clientloop.c sshd.c] don't need to #include "monitor_fdpass.h" + - stevesk@cvs.openbsd.org 2008/10/31 15:05:34 + [dispatch.c] + remove unused #define DISPATCH_MIN; ok markus@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4813,4 +4816,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5117 2008/11/03 08:25:40 djm Exp $ +$Id: ChangeLog,v 1.5118 2008/11/03 08:26:00 djm Exp $ diff --git a/dispatch.c b/dispatch.c index d6b63be4b..64bb80947 100644 --- a/dispatch.c +++ b/dispatch.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dispatch.c,v 1.21 2006/08/03 03:34:42 deraadt Exp $ */ +/* $OpenBSD: dispatch.c,v 1.22 2008/10/31 15:05:34 stevesk Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -37,7 +37,6 @@ #include "packet.h" #include "compat.h" -#define DISPATCH_MIN 0 #define DISPATCH_MAX 255 dispatch_fn *dispatch[DISPATCH_MAX]; -- cgit v1.2.3 From f7475d7e97900323195b918942d0cf8d0489279f Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:26:18 +1100 Subject: - djm@cvs.openbsd.org 2008/11/01 04:50:08 [sshconnect2.c] sprinkle ARGSUSED on dispatch handlers nuke stale unusued prototype --- ChangeLog | 6 +++++- sshconnect2.c | 15 +++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f52d1b5f5..0063b10e1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -82,6 +82,10 @@ - stevesk@cvs.openbsd.org 2008/10/31 15:05:34 [dispatch.c] remove unused #define DISPATCH_MIN; ok markus@ + - djm@cvs.openbsd.org 2008/11/01 04:50:08 + [sshconnect2.c] + sprinkle ARGSUSED on dispatch handlers + nuke stale unusued prototype 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4816,4 +4820,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5118 2008/11/03 08:26:00 djm Exp $ +$Id: ChangeLog,v 1.5119 2008/11/03 08:26:18 djm Exp $ diff --git a/sshconnect2.c b/sshconnect2.c index fe9285f17..7d0c5e825 100644 --- a/sshconnect2.c +++ b/sshconnect2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect2.c,v 1.168 2008/10/03 23:56:28 deraadt Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.169 2008/11/01 04:50:08 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -218,7 +218,6 @@ int userauth_pubkey(Authctxt *); int userauth_passwd(Authctxt *); int userauth_kbdint(Authctxt *); int userauth_hostbased(Authctxt *); -int userauth_kerberos(Authctxt *); #ifdef GSSAPI int userauth_gssapi(Authctxt *authctxt); @@ -367,6 +366,7 @@ userauth(Authctxt *authctxt, char *authlist) } } +/* ARGSUSED */ void input_userauth_error(int type, u_int32_t seq, void *ctxt) { @@ -374,6 +374,7 @@ input_userauth_error(int type, u_int32_t seq, void *ctxt) "type %d", type); } +/* ARGSUSED */ void input_userauth_banner(int type, u_int32_t seq, void *ctxt) { @@ -395,6 +396,7 @@ input_userauth_banner(int type, u_int32_t seq, void *ctxt) xfree(lang); } +/* ARGSUSED */ void input_userauth_success(int type, u_int32_t seq, void *ctxt) { @@ -412,6 +414,7 @@ input_userauth_success(int type, u_int32_t seq, void *ctxt) authctxt->success = 1; /* break out */ } +/* ARGSUSED */ void input_userauth_failure(int type, u_int32_t seq, void *ctxt) { @@ -432,6 +435,8 @@ input_userauth_failure(int type, u_int32_t seq, void *ctxt) userauth(authctxt, authlist); } + +/* ARGSUSED */ void input_userauth_pk_ok(int type, u_int32_t seq, void *ctxt) { @@ -614,6 +619,7 @@ process_gssapi_token(void *ctxt, gss_buffer_t recv_tok) return status; } +/* ARGSUSED */ void input_gssapi_response(int type, u_int32_t plen, void *ctxt) { @@ -653,6 +659,7 @@ input_gssapi_response(int type, u_int32_t plen, void *ctxt) } } +/* ARGSUSED */ void input_gssapi_token(int type, u_int32_t plen, void *ctxt) { @@ -680,6 +687,7 @@ input_gssapi_token(int type, u_int32_t plen, void *ctxt) } } +/* ARGSUSED */ void input_gssapi_errtok(int type, u_int32_t plen, void *ctxt) { @@ -709,6 +717,7 @@ input_gssapi_errtok(int type, u_int32_t plen, void *ctxt) /* Server will be returning a failed packet after this one */ } +/* ARGSUSED */ void input_gssapi_error(int type, u_int32_t plen, void *ctxt) { @@ -773,9 +782,11 @@ userauth_passwd(Authctxt *authctxt) return 1; } + /* * parse PASSWD_CHANGEREQ, prompt user and send SSH2_MSG_USERAUTH_REQUEST */ +/* ARGSUSED */ void input_userauth_passwd_changereq(int type, u_int32_t seqnr, void *ctxt) { -- cgit v1.2.3 From a009433333ccb10b30e840435755eccd1e3fefd6 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:26:35 +1100 Subject: - stevesk@cvs.openbsd.org 2008/11/01 06:43:33 [channels.c] fix some typos in log messages; ok djm@ --- ChangeLog | 5 ++++- channels.c | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0063b10e1..2650f6b7d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -86,6 +86,9 @@ [sshconnect2.c] sprinkle ARGSUSED on dispatch handlers nuke stale unusued prototype + - stevesk@cvs.openbsd.org 2008/11/01 06:43:33 + [channels.c] + fix some typos in log messages; ok djm@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4820,4 +4823,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5119 2008/11/03 08:26:18 djm Exp $ +$Id: ChangeLog,v 1.5120 2008/11/03 08:26:35 djm Exp $ diff --git a/channels.c b/channels.c index 69c99c9b2..4af7df5db 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.286 2008/07/16 11:52:19 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.287 2008/11/01 06:43:33 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -691,7 +691,7 @@ channel_register_open_confirm(int id, channel_callback_fn *fn, void *ctx) Channel *c = channel_lookup(id); if (c == NULL) { - logit("channel_register_open_comfirm: %d: bad id", id); + logit("channel_register_open_confirm: %d: bad id", id); return; } c->open_confirm = fn; @@ -2385,10 +2385,10 @@ channel_input_status_confirm(int type, u_int32_t seq, void *ctxt) remote_id = packet_get_int(); packet_check_eom(); - debug2("channel_input_confirm: type %d id %d", type, remote_id); + debug2("channel_input_status_confirm: type %d id %d", type, remote_id); if ((c = channel_lookup(remote_id)) == NULL) { - logit("channel_input_success_failure: %d: unknown", remote_id); + logit("channel_input_status_confirm: %d: unknown", remote_id); return; } ; -- cgit v1.2.3 From c1719f7f0d3f828ae5ca0ac339813a64169becef Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:27:07 +1100 Subject: - sobrado@cvs.openbsd.org 2008/11/01 11:14:36 [ssh-keyscan.1 ssh-keyscan.c] the ellipsis is not an optional argument; while here, improve spacing. --- ChangeLog | 5 ++++- ssh-keyscan.1 | 6 +++--- ssh-keyscan.c | 7 ++++--- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2650f6b7d..5b6889fba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -89,6 +89,9 @@ - stevesk@cvs.openbsd.org 2008/11/01 06:43:33 [channels.c] fix some typos in log messages; ok djm@ + - sobrado@cvs.openbsd.org 2008/11/01 11:14:36 + [ssh-keyscan.1 ssh-keyscan.c] + the ellipsis is not an optional argument; while here, improve spacing. 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4823,4 +4826,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5120 2008/11/03 08:26:35 djm Exp $ +$Id: ChangeLog,v 1.5121 2008/11/03 08:27:07 djm Exp $ diff --git a/ssh-keyscan.1 b/ssh-keyscan.1 index 8a4f3bcba..299a6cc94 100644 --- a/ssh-keyscan.1 +++ b/ssh-keyscan.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keyscan.1,v 1.24 2008/04/30 10:14:03 djm Exp $ +.\" $OpenBSD: ssh-keyscan.1,v 1.25 2008/11/01 11:14:36 sobrado Exp $ .\" .\" Copyright 1995, 1996 by David Mazieres . .\" @@ -6,7 +6,7 @@ .\" permitted provided that due credit is given to the author and the .\" OpenBSD project by leaving this copyright notice intact. .\" -.Dd $Mdocdate: April 30 2008 $ +.Dd $Mdocdate: November 1 2008 $ .Dt SSH-KEYSCAN 1 .Os .Sh NAME @@ -21,7 +21,7 @@ .Op Fl T Ar timeout .Op Fl t Ar type .Op Ar host | addrlist namelist -.Op Ar ... +.Ar ... .Ek .Sh DESCRIPTION .Nm diff --git a/ssh-keyscan.c b/ssh-keyscan.c index d81077764..c6ec3507e 100644 --- a/ssh-keyscan.c +++ b/ssh-keyscan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keyscan.c,v 1.76 2008/04/30 10:14:03 djm Exp $ */ +/* $OpenBSD: ssh-keyscan.c,v 1.77 2008/11/01 11:14:36 sobrado Exp $ */ /* * Copyright 1995, 1996 by David Mazieres . * @@ -713,8 +713,9 @@ fatal(const char *fmt,...) static void usage(void) { - fprintf(stderr, "usage: %s [-46Hv] [-f file] [-p port] [-T timeout] [-t type]\n" - "\t\t [host | addrlist namelist] [...]\n", + fprintf(stderr, + "usage: %s [-46Hv] [-f file] [-p port] [-T timeout] [-t type]\n" + "\t\t [host | addrlist namelist] ...\n", __progname); exit(1); } -- cgit v1.2.3 From a699d952e5e20be83fada0ff10ba8e02ad4dcd81 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:27:34 +1100 Subject: - stevesk@cvs.openbsd.org 2008/11/01 17:40:33 [clientloop.c readconf.c readconf.h ssh.c] merge dynamic forward parsing into parse_forward(); 'i think this is OK' djm@ --- ChangeLog | 6 ++++- clientloop.c | 4 +-- readconf.c | 82 +++++++++++++++++++++++++++++++++--------------------------- readconf.h | 4 +-- ssh.c | 32 ++++++------------------ 5 files changed, 62 insertions(+), 66 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5b6889fba..b095d974e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -92,6 +92,10 @@ - sobrado@cvs.openbsd.org 2008/11/01 11:14:36 [ssh-keyscan.1 ssh-keyscan.c] the ellipsis is not an optional argument; while here, improve spacing. + - stevesk@cvs.openbsd.org 2008/11/01 17:40:33 + [clientloop.c readconf.c readconf.h ssh.c] + merge dynamic forward parsing into parse_forward(); + 'i think this is OK' djm@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4826,4 +4830,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5121 2008/11/03 08:27:07 djm Exp $ +$Id: ChangeLog,v 1.5122 2008/11/03 08:27:34 djm Exp $ diff --git a/clientloop.c b/clientloop.c index 30e17d20c..0ed4194a6 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.202 2008/10/30 19:31:16 stevesk Exp $ */ +/* $OpenBSD: clientloop.c,v 1.203 2008/11/01 17:40:33 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -842,7 +842,7 @@ process_cmdline(void) } channel_request_rforward_cancel(cancel_host, cancel_port); } else { - if (!parse_forward(&fwd, s)) { + if (!parse_forward(&fwd, s, 0)) { logit("Bad forwarding specification."); goto out; } diff --git a/readconf.c b/readconf.c index 73f6eb361..27be8df68 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.167 2008/06/26 11:46:31 grunk Exp $ */ +/* $OpenBSD: readconf.c,v 1.168 2008/11/01 17:40:33 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -706,56 +706,39 @@ parse_int: case oLocalForward: case oRemoteForward: + case oDynamicForward: arg = strdelim(&s); if (arg == NULL || *arg == '\0') fatal("%.200s line %d: Missing port argument.", filename, linenum); - arg2 = strdelim(&s); - if (arg2 == NULL || *arg2 == '\0') - fatal("%.200s line %d: Missing target argument.", - filename, linenum); - /* construct a string for parse_forward */ - snprintf(fwdarg, sizeof(fwdarg), "%s:%s", arg, arg2); + if (opcode == oLocalForward || + opcode == oRemoteForward) { + arg2 = strdelim(&s); + if (arg2 == NULL || *arg2 == '\0') + fatal("%.200s line %d: Missing target argument.", + filename, linenum); - if (parse_forward(&fwd, fwdarg) == 0) + /* construct a string for parse_forward */ + snprintf(fwdarg, sizeof(fwdarg), "%s:%s", arg, arg2); + } else if (opcode == oDynamicForward) { + strlcpy(fwdarg, arg, sizeof(fwdarg)); + } + + if (parse_forward(&fwd, fwdarg, + opcode == oDynamicForward ? 1 : 0) == 0) fatal("%.200s line %d: Bad forwarding specification.", filename, linenum); if (*activep) { - if (opcode == oLocalForward) + if (opcode == oLocalForward || + opcode == oDynamicForward) add_local_forward(options, &fwd); else if (opcode == oRemoteForward) add_remote_forward(options, &fwd); } break; - case oDynamicForward: - arg = strdelim(&s); - if (!arg || *arg == '\0') - fatal("%.200s line %d: Missing port argument.", - filename, linenum); - memset(&fwd, '\0', sizeof(fwd)); - fwd.connect_host = "socks"; - fwd.listen_host = hpdelim(&arg); - if (fwd.listen_host == NULL || - strlen(fwd.listen_host) >= NI_MAXHOST) - fatal("%.200s line %d: Bad forwarding specification.", - filename, linenum); - if (arg) { - fwd.listen_port = a2port(arg); - fwd.listen_host = cleanhostname(fwd.listen_host); - } else { - fwd.listen_port = a2port(fwd.listen_host); - fwd.listen_host = NULL; - } - if (fwd.listen_port == 0) - fatal("%.200s line %d: Badly formatted port number.", - filename, linenum); - if (*activep) - add_local_forward(options, &fwd); - break; - case oClearAllForwardings: intptr = &options->clear_forwardings; goto parse_flag; @@ -1219,11 +1202,14 @@ fill_default_options(Options * options) /* * parse_forward * parses a string containing a port forwarding specification of the form: + * dynamicfwd == 0 * [listenhost:]listenport:connecthost:connectport + * dynamicfwd == 1 + * [listenhost:]listenport * returns number of arguments parsed or zero on error */ int -parse_forward(Forward *fwd, const char *fwdspec) +parse_forward(Forward *fwd, const char *fwdspec, int dynamicfwd) { int i; char *p, *cp, *fwdarg[4]; @@ -1245,6 +1231,18 @@ parse_forward(Forward *fwd, const char *fwdspec) i = 0; /* failure */ switch (i) { + case 1: + fwd->listen_host = NULL; + fwd->listen_port = a2port(fwdarg[0]); + fwd->connect_host = xstrdup("socks"); + break; + + case 2: + fwd->listen_host = xstrdup(cleanhostname(fwdarg[0])); + fwd->listen_port = a2port(fwdarg[1]); + fwd->connect_host = xstrdup("socks"); + break; + case 3: fwd->listen_host = NULL; fwd->listen_port = a2port(fwdarg[0]); @@ -1264,7 +1262,17 @@ parse_forward(Forward *fwd, const char *fwdspec) xfree(p); - if (fwd->listen_port == 0 || fwd->connect_port == 0) + if (dynamicfwd) { + if (!(i == 1 || i == 2)) + goto fail_free; + } else { + if (!(i == 3 || i == 4)) + goto fail_free; + if (fwd->connect_port == 0) + goto fail_free; + } + + if (fwd->listen_port == 0) goto fail_free; if (fwd->connect_host != NULL && diff --git a/readconf.h b/readconf.h index 47c7aef4e..c1387a896 100644 --- a/readconf.h +++ b/readconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.h,v 1.74 2008/06/26 11:46:31 grunk Exp $ */ +/* $OpenBSD: readconf.h,v 1.75 2008/11/01 17:40:33 stevesk Exp $ */ /* * Author: Tatu Ylonen @@ -133,7 +133,7 @@ typedef struct { void initialize_options(Options *); void fill_default_options(Options *); int read_config_file(const char *, const char *, Options *, int); -int parse_forward(Forward *, const char *); +int parse_forward(Forward *, const char *, int); int process_config_line(Options *, const char *, char *, const char *, int, int *); diff --git a/ssh.c b/ssh.c index 82d3ab26b..5bb67c5b1 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.321 2008/10/09 06:54:22 jmc Exp $ */ +/* $OpenBSD: ssh.c,v 1.322 2008/11/01 17:40:33 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -453,7 +453,7 @@ main(int ac, char **av) break; case 'L': - if (parse_forward(&fwd, optarg)) + if (parse_forward(&fwd, optarg, 0)) add_local_forward(&options, &fwd); else { fprintf(stderr, @@ -464,7 +464,7 @@ main(int ac, char **av) break; case 'R': - if (parse_forward(&fwd, optarg)) { + if (parse_forward(&fwd, optarg, 0)) { add_remote_forward(&options, &fwd); } else { fprintf(stderr, @@ -475,30 +475,14 @@ main(int ac, char **av) break; case 'D': - cp = p = xstrdup(optarg); - memset(&fwd, '\0', sizeof(fwd)); - fwd.connect_host = "socks"; - if ((fwd.listen_host = hpdelim(&cp)) == NULL) { - fprintf(stderr, "Bad dynamic forwarding " - "specification '%.100s'\n", optarg); - exit(255); - } - if (cp != NULL) { - fwd.listen_port = a2port(cp); - fwd.listen_host = - cleanhostname(fwd.listen_host); + if (parse_forward(&fwd, optarg, 1)) { + add_local_forward(&options, &fwd); } else { - fwd.listen_port = a2port(fwd.listen_host); - fwd.listen_host = NULL; - } - - if (fwd.listen_port == 0) { - fprintf(stderr, "Bad dynamic port '%s'\n", - optarg); + fprintf(stderr, + "Bad dynamic forwarding specification " + "'%s'\n", optarg); exit(255); } - add_local_forward(&options, &fwd); - xfree(p); break; case 'C': -- cgit v1.2.3 From 660d7dabc080bb25c48b786e79f8f970d72dfbcd Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:27:52 +1100 Subject: - stevesk@cvs.openbsd.org 2008/11/02 00:16:16 [ttymodes.c] protocol 2 tty modes support is now 7.5 years old so remove these debug3()s; ok deraadt@ --- ChangeLog | 6 +++++- ttymodes.c | 7 +------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index b095d974e..3054499ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -96,6 +96,10 @@ [clientloop.c readconf.c readconf.h ssh.c] merge dynamic forward parsing into parse_forward(); 'i think this is OK' djm@ + - stevesk@cvs.openbsd.org 2008/11/02 00:16:16 + [ttymodes.c] + protocol 2 tty modes support is now 7.5 years old so remove these + debug3()s; ok deraadt@ 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4830,4 +4834,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5122 2008/11/03 08:27:34 djm Exp $ +$Id: ChangeLog,v 1.5123 2008/11/03 08:27:52 djm Exp $ diff --git a/ttymodes.c b/ttymodes.c index e116b1999..6f51b8a70 100644 --- a/ttymodes.c +++ b/ttymodes.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ttymodes.c,v 1.28 2008/07/07 00:31:41 stevesk Exp $ */ +/* $OpenBSD: ttymodes.c,v 1.29 2008/11/02 00:16:16 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -311,11 +311,9 @@ tty_make_modes(int fd, struct termios *tiop) /* Store input and output baud rates. */ baud = speed_to_baud(cfgetospeed(&tio)); - debug3("tty_make_modes: ospeed %d", baud); buffer_put_char(&buf, tty_op_ospeed); buffer_put_int(&buf, baud); baud = speed_to_baud(cfgetispeed(&tio)); - debug3("tty_make_modes: ispeed %d", baud); buffer_put_char(&buf, tty_op_ispeed); buffer_put_int(&buf, baud); @@ -359,7 +357,6 @@ tty_parse_modes(int fd, int *n_bytes_ptr) if (compat20) { *n_bytes_ptr = packet_get_int(); - debug3("tty_parse_modes: SSH2 n_bytes %d", *n_bytes_ptr); if (*n_bytes_ptr == 0) return; get_arg = packet_get_int; @@ -391,7 +388,6 @@ tty_parse_modes(int fd, int *n_bytes_ptr) case TTY_OP_ISPEED_PROTO2: n_bytes += 4; baud = packet_get_int(); - debug3("tty_parse_modes: ispeed %d", baud); if (failure != -1 && cfsetispeed(&tio, baud_to_speed(baud)) == -1) error("cfsetispeed failed for %d", baud); @@ -402,7 +398,6 @@ tty_parse_modes(int fd, int *n_bytes_ptr) case TTY_OP_OSPEED_PROTO2: n_bytes += 4; baud = packet_get_int(); - debug3("tty_parse_modes: ospeed %d", baud); if (failure != -1 && cfsetospeed(&tio, baud_to_speed(baud)) == -1) error("cfsetospeed failed for %d", baud); -- cgit v1.2.3 From a279d252ab3be71bdcc0ccc3c691c95ca9a04c24 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:28:07 +1100 Subject: - stevesk@cvs.openbsd.org 2008/11/03 01:07:02 [readconf.c] remove valueless comment --- ChangeLog | 5 ++++- readconf.c | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3054499ad..a64eff3fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -100,6 +100,9 @@ [ttymodes.c] protocol 2 tty modes support is now 7.5 years old so remove these debug3()s; ok deraadt@ + - stevesk@cvs.openbsd.org 2008/11/03 01:07:02 + [readconf.c] + remove valueless comment 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4834,4 +4837,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5123 2008/11/03 08:27:52 djm Exp $ +$Id: ChangeLog,v 1.5124 2008/11/03 08:28:07 djm Exp $ diff --git a/readconf.c b/readconf.c index 27be8df68..e61486b09 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.168 2008/11/01 17:40:33 stevesk Exp $ */ +/* $OpenBSD: readconf.c,v 1.169 2008/11/03 01:07:02 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -942,7 +942,6 @@ read_config_file(const char *filename, const char *host, Options *options, int active, linenum; int bad_options = 0; - /* Open the file. */ if ((f = fopen(filename, "r")) == NULL) return 0; -- cgit v1.2.3 From f4b39538f45a6d8487fff3cf6b9e80e1293da06d Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 19:28:21 +1100 Subject: - stevesk@cvs.openbsd.org 2008/11/03 02:44:41 [readconf.c] fix comment --- ChangeLog | 5 ++++- readconf.c | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index a64eff3fc..f581613d3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -103,6 +103,9 @@ - stevesk@cvs.openbsd.org 2008/11/03 01:07:02 [readconf.c] remove valueless comment + - stevesk@cvs.openbsd.org 2008/11/03 02:44:41 + [readconf.c] + fix comment 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4837,4 +4840,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5124 2008/11/03 08:28:07 djm Exp $ +$Id: ChangeLog,v 1.5125 2008/11/03 08:28:21 djm Exp $ diff --git a/readconf.c b/readconf.c index e61486b09..7f7bbfee2 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.169 2008/11/03 01:07:02 stevesk Exp $ */ +/* $OpenBSD: readconf.c,v 1.170 2008/11/03 02:44:41 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1225,7 +1225,7 @@ parse_forward(Forward *fwd, const char *fwdspec, int dynamicfwd) if ((fwdarg[i] = hpdelim(&cp)) == NULL) break; - /* Check for trailing garbage in 4-arg case*/ + /* Check for trailing garbage */ if (cp != NULL) i = 0; /* failure */ -- cgit v1.2.3 From 85dec7346395fcc14887a8cff91b81dc4d2e5304 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 20:16:01 +1100 Subject: - (djm) [contrib/caldera/ssh-host-keygen contrib/suse/rc.sshd] Make example scripts generate keys with default sizes rather than fixed, non-default 1024 bits; patch from imorgan AT nas.nasa.gov --- ChangeLog | 5 ++++- contrib/caldera/ssh-host-keygen | 10 +++++----- contrib/suse/rc.sshd | 6 +++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index f581613d3..d2f3b1841 100644 --- a/ChangeLog +++ b/ChangeLog @@ -106,6 +106,9 @@ - stevesk@cvs.openbsd.org 2008/11/03 02:44:41 [readconf.c] fix comment + - (djm) [contrib/caldera/ssh-host-keygen contrib/suse/rc.sshd] + Make example scripts generate keys with default sizes rather than fixed, + non-default 1024 bits; patch from imorgan AT nas.nasa.gov 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4840,4 +4843,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5125 2008/11/03 08:28:21 djm Exp $ +$Id: ChangeLog,v 1.5126 2008/11/03 09:16:01 djm Exp $ diff --git a/contrib/caldera/ssh-host-keygen b/contrib/caldera/ssh-host-keygen index 3c5c17182..86382ddfb 100755 --- a/contrib/caldera/ssh-host-keygen +++ b/contrib/caldera/ssh-host-keygen @@ -1,6 +1,6 @@ #! /bin/sh # -# $Id: ssh-host-keygen,v 1.2 2003/11/21 12:48:57 djm Exp $ +# $Id: ssh-host-keygen,v 1.3 2008/11/03 09:16:01 djm Exp $ # # This script is normally run only *once* for a given host # (in a given period of time) -- on updates/upgrades/recovery @@ -15,16 +15,16 @@ if [ -f $keydir/ssh_host_key -o \ -f $keydir/ssh_host_key.pub ]; then echo "You already have an SSH1 RSA host key in $keydir/ssh_host_key." else - echo "Generating 1024 bit SSH1 RSA host key." - $keygen -b 1024 -t rsa1 -f $keydir/ssh_host_key -C '' -N '' + echo "Generating SSH1 RSA host key." + $keygen -t rsa1 -f $keydir/ssh_host_key -C '' -N '' fi if [ -f $keydir/ssh_host_rsa_key -o \ -f $keydir/ssh_host_rsa_key.pub ]; then echo "You already have an SSH2 RSA host key in $keydir/ssh_host_rsa_key." else - echo "Generating 1024 bit SSH2 RSA host key." - $keygen -b 1024 -t rsa -f $keydir/ssh_host_rsa_key -C '' -N '' + echo "Generating SSH2 RSA host key." + $keygen -t rsa -f $keydir/ssh_host_rsa_key -C '' -N '' fi if [ -f $keydir/ssh_host_dsa_key -o \ diff --git a/contrib/suse/rc.sshd b/contrib/suse/rc.sshd index 573960bfa..4d4880d7e 100644 --- a/contrib/suse/rc.sshd +++ b/contrib/suse/rc.sshd @@ -45,17 +45,17 @@ case "$1" in start) if ! test -f /etc/ssh/ssh_host_key ; then echo Generating /etc/ssh/ssh_host_key. - ssh-keygen -t rsa1 -b 1024 -f /etc/ssh/ssh_host_key -N '' + ssh-keygen -t rsa1 -f /etc/ssh/ssh_host_key -N '' fi if ! test -f /etc/ssh/ssh_host_dsa_key ; then echo Generating /etc/ssh/ssh_host_dsa_key. - ssh-keygen -t dsa -b 1024 -f /etc/ssh/ssh_host_dsa_key -N '' + ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' fi if ! test -f /etc/ssh/ssh_host_rsa_key ; then echo Generating /etc/ssh/ssh_host_rsa_key. - ssh-keygen -t rsa -b 1024 -f /etc/ssh/ssh_host_rsa_key -N '' + ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' fi echo -n "Starting SSH daemon" ## Start daemon with startproc(8). If this fails -- cgit v1.2.3 From 250071fd776ecc8ef6b87b6aa9e75c28adaf7e06 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 3 Nov 2008 20:18:12 +1100 Subject: - (djm) [contrib/sshd.pam.generic contrib/caldera/sshd.pam] [contrib/redhat/sshd.pam] Move pam_nologin to account group from incorrect auth group in example files; patch from imorgan AT nas.nasa.gov --- ChangeLog | 6 +++++- contrib/caldera/sshd.pam | 2 +- contrib/redhat/sshd.pam | 2 +- contrib/sshd.pam.generic | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index d2f3b1841..c9fec8bf9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -109,6 +109,10 @@ - (djm) [contrib/caldera/ssh-host-keygen contrib/suse/rc.sshd] Make example scripts generate keys with default sizes rather than fixed, non-default 1024 bits; patch from imorgan AT nas.nasa.gov + - (djm) [contrib/sshd.pam.generic contrib/caldera/sshd.pam] + [contrib/redhat/sshd.pam] Move pam_nologin to account group from + incorrect auth group in example files; + patch from imorgan AT nas.nasa.gov 20080906 - (dtucker) [config.guess config.sub] Update to latest versions from @@ -4843,4 +4847,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5126 2008/11/03 09:16:01 djm Exp $ +$Id: ChangeLog,v 1.5127 2008/11/03 09:18:12 djm Exp $ diff --git a/contrib/caldera/sshd.pam b/contrib/caldera/sshd.pam index 26dcb34d9..f050a9aee 100644 --- a/contrib/caldera/sshd.pam +++ b/contrib/caldera/sshd.pam @@ -1,6 +1,6 @@ #%PAM-1.0 auth required /lib/security/pam_pwdb.so shadow nodelay -auth required /lib/security/pam_nologin.so +account required /lib/security/pam_nologin.so account required /lib/security/pam_pwdb.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_pwdb.so shadow nullok use_authtok diff --git a/contrib/redhat/sshd.pam b/contrib/redhat/sshd.pam index e48607766..ffa5adbe5 100644 --- a/contrib/redhat/sshd.pam +++ b/contrib/redhat/sshd.pam @@ -1,6 +1,6 @@ #%PAM-1.0 auth required pam_stack.so service=system-auth -auth required pam_nologin.so +account required pam_nologin.so account required pam_stack.so service=system-auth password required pam_stack.so service=system-auth session required pam_stack.so service=system-auth diff --git a/contrib/sshd.pam.generic b/contrib/sshd.pam.generic index cf5af3024..215f0fe30 100644 --- a/contrib/sshd.pam.generic +++ b/contrib/sshd.pam.generic @@ -1,6 +1,6 @@ #%PAM-1.0 auth required /lib/security/pam_unix.so shadow nodelay -auth required /lib/security/pam_nologin.so +account required /lib/security/pam_nologin.so account required /lib/security/pam_unix.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_unix.so shadow nullok use_authtok -- cgit v1.2.3 From 7fc5c0f62158614eb42cac2a16fab8a23826ec74 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 5 Nov 2008 16:12:11 +1100 Subject: - OpenBSD CVS Sync - djm@cvs.openbsd.org 2008/11/03 08:59:41 [servconf.c] include MaxSessions in sshd -T output; patch from imorgan AT nas.nasa.gov --- ChangeLog | 8 +++++++- servconf.c | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index c9fec8bf9..686c76904 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +20081105 + - OpenBSD CVS Sync + - djm@cvs.openbsd.org 2008/11/03 08:59:41 + [servconf.c] + include MaxSessions in sshd -T output; patch from imorgan AT nas.nasa.gov + 20081103 - OpenBSD CVS Sync - sthen@cvs.openbsd.org 2008/07/24 23:55:30 @@ -4847,4 +4853,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5127 2008/11/03 09:18:12 djm Exp $ +$Id: ChangeLog,v 1.5128 2008/11/05 05:12:11 djm Exp $ diff --git a/servconf.c b/servconf.c index 547f757a0..f2d414334 100644 --- a/servconf.c +++ b/servconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.c,v 1.188 2008/10/09 03:50:54 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.189 2008/11/03 08:59:41 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -1553,6 +1553,7 @@ dump_config(ServerOptions *o) dump_cfg_int(sKeyRegenerationTime, o->key_regeneration_time); dump_cfg_int(sX11DisplayOffset, o->x11_display_offset); dump_cfg_int(sMaxAuthTries, o->max_authtries); + dump_cfg_int(sMaxSessions, o->max_sessions); dump_cfg_int(sClientAliveInterval, o->client_alive_interval); dump_cfg_int(sClientAliveCountMax, o->client_alive_count_max); -- cgit v1.2.3 From 6f66d34308af787613d5525729953665f26367ee Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 5 Nov 2008 16:12:54 +1100 Subject: - djm@cvs.openbsd.org 2008/11/04 07:58:09 [auth.c] need unistd.h for close() prototype (ID sync only) --- ChangeLog | 6 +++++- auth.c | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 686c76904..cf80ff1e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,10 @@ - djm@cvs.openbsd.org 2008/11/03 08:59:41 [servconf.c] include MaxSessions in sshd -T output; patch from imorgan AT nas.nasa.gov + - djm@cvs.openbsd.org 2008/11/04 07:58:09 + [auth.c] + need unistd.h for close() prototype + (ID sync only) 20081103 - OpenBSD CVS Sync @@ -4853,4 +4857,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5128 2008/11/05 05:12:11 djm Exp $ +$Id: ChangeLog,v 1.5129 2008/11/05 05:12:54 djm Exp $ diff --git a/auth.c b/auth.c index 2370e5c2c..3585daadc 100644 --- a/auth.c +++ b/auth.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth.c,v 1.79 2008/07/02 12:03:51 dtucker Exp $ */ +/* $OpenBSD: auth.c,v 1.80 2008/11/04 07:58:09 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * -- cgit v1.2.3 From 01ed2272a1545336173bf3aef66fbccc3494c8d8 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 5 Nov 2008 16:20:46 +1100 Subject: - djm@cvs.openbsd.org 2008/11/04 08:22:13 [auth.h auth2.c monitor.c monitor.h monitor_wrap.c monitor_wrap.h] [readconf.c readconf.h servconf.c servconf.h ssh2.h ssh_config.5] [sshconnect2.c sshd_config.5 jpake.c jpake.h schnorr.c auth2-jpake.c] [Makefile.in] Add support for an experimental zero-knowledge password authentication method using the J-PAKE protocol described in F. Hao, P. Ryan, "Password Authenticated Key Exchange by Juggling", 16th Workshop on Security Protocols, Cambridge, April 2008. This method allows password-based authentication without exposing the password to the server. Instead, the client and server exchange cryptographic proofs to demonstrate of knowledge of the password while revealing nothing useful to an attacker or compromised endpoint. This is experimental, work-in-progress code and is presently compiled-time disabled (turn on -DJPAKE in Makefile.inc). "just commit it. It isn't too intrusive." deraadt@ --- ChangeLog | 21 +- Makefile.in | 6 +- auth.h | 6 +- auth2-jpake.c | 557 ++++++++++++++++++++++++++++++++++++++++++++++++++++ auth2.c | 12 +- jpake.c | 604 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ jpake.h | 134 +++++++++++++ monitor.c | 227 +++++++++++++++++++++- monitor.h | 9 +- monitor_wrap.c | 167 +++++++++++++++- monitor_wrap.h | 22 ++- readconf.c | 18 +- readconf.h | 3 +- schnorr.c | 407 ++++++++++++++++++++++++++++++++++++++ servconf.c | 20 +- servconf.h | 4 +- ssh2.h | 9 +- ssh_config.5 | 15 +- sshconnect2.c | 303 ++++++++++++++++++++++++++++- sshd_config.5 | 18 +- 20 files changed, 2537 insertions(+), 25 deletions(-) create mode 100644 auth2-jpake.c create mode 100644 jpake.c create mode 100644 jpake.h create mode 100644 schnorr.c diff --git a/ChangeLog b/ChangeLog index cf80ff1e6..012749b0d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,25 @@ [auth.c] need unistd.h for close() prototype (ID sync only) + - djm@cvs.openbsd.org 2008/11/04 08:22:13 + [auth.h auth2.c monitor.c monitor.h monitor_wrap.c monitor_wrap.h] + [readconf.c readconf.h servconf.c servconf.h ssh2.h ssh_config.5] + [sshconnect2.c sshd_config.5 jpake.c jpake.h schnorr.c auth2-jpake.c] + [Makefile.in] + Add support for an experimental zero-knowledge password authentication + method using the J-PAKE protocol described in F. Hao, P. Ryan, + "Password Authenticated Key Exchange by Juggling", 16th Workshop on + Security Protocols, Cambridge, April 2008. + + This method allows password-based authentication without exposing + the password to the server. Instead, the client and server exchange + cryptographic proofs to demonstrate of knowledge of the password while + revealing nothing useful to an attacker or compromised endpoint. + + This is experimental, work-in-progress code and is presently + compiled-time disabled (turn on -DJPAKE in Makefile.inc). + + "just commit it. It isn't too intrusive." deraadt@ 20081103 - OpenBSD CVS Sync @@ -4857,4 +4876,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5129 2008/11/05 05:12:54 djm Exp $ +$Id: ChangeLog,v 1.5130 2008/11/05 05:20:46 djm Exp $ diff --git a/Makefile.in b/Makefile.in index c1b7ab5a6..312b8d2b1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,4 +1,4 @@ -# $Id: Makefile.in,v 1.297 2008/07/08 14:21:12 djm Exp $ +# $Id: Makefile.in,v 1.298 2008/11/05 05:20:46 djm Exp $ # uncomment if you run a non bourne compatable shell. Ie. csh #SHELL = @SH@ @@ -71,7 +71,7 @@ LIBSSH_OBJS=acss.o authfd.o authfile.o bufaux.o bufbn.o buffer.o \ atomicio.o key.o dispatch.o kex.o mac.o uidswap.o uuencode.o misc.o \ monitor_fdpass.o rijndael.o ssh-dss.o ssh-rsa.o dh.o kexdh.o \ kexgex.o kexdhc.o kexgexc.o scard.o msg.o progressmeter.o dns.o \ - entropy.o scard-opensc.o gss-genr.o umac.o + entropy.o scard-opensc.o gss-genr.o umac.o jpake.o schnorr.o SSHOBJS= ssh.o readconf.o clientloop.o sshtty.o \ sshconnect.o sshconnect1.o sshconnect2.o mux.o @@ -81,7 +81,7 @@ SSHDOBJS=sshd.o auth-rhosts.o auth-passwd.o auth-rsa.o auth-rh-rsa.o \ auth.o auth1.o auth2.o auth-options.o session.o \ auth-chall.o auth2-chall.o groupaccess.o \ auth-skey.o auth-bsdauth.o auth2-hostbased.o auth2-kbdint.o \ - auth2-none.o auth2-passwd.o auth2-pubkey.o \ + auth2-none.o auth2-passwd.o auth2-pubkey.o auth2-jpake.o \ monitor_mm.o monitor.o monitor_wrap.o kexdhs.o kexgexs.o \ auth-krb5.o \ auth2-gss.o gss-serv.o gss-serv-krb5.o \ diff --git a/auth.h b/auth.h index 6a70f0eb6..3a70f4421 100644 --- a/auth.h +++ b/auth.h @@ -1,4 +1,4 @@ -/* $OpenBSD: auth.h,v 1.61 2008/07/02 12:03:51 dtucker Exp $ */ +/* $OpenBSD: auth.h,v 1.62 2008/11/04 08:22:12 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. @@ -59,6 +59,7 @@ struct Authctxt { struct passwd *pw; /* set if 'valid' */ char *style; void *kbdintctxt; + void *jpake_ctx; #ifdef BSD_AUTH auth_session_t *as; #endif @@ -156,6 +157,9 @@ int bsdauth_respond(void *, u_int, char **); int skey_query(void *, char **, char **, u_int *, char ***, u_int **); int skey_respond(void *, u_int, char **); +void auth2_jpake_get_pwdata(Authctxt *, BIGNUM **, char **, char **); +void auth2_jpake_stop(Authctxt *); + int allowed_user(struct passwd *); struct passwd * getpwnamallow(const char *user); diff --git a/auth2-jpake.c b/auth2-jpake.c new file mode 100644 index 000000000..0029ec26b --- /dev/null +++ b/auth2-jpake.c @@ -0,0 +1,557 @@ +/* $OpenBSD: auth2-jpake.c,v 1.1 2008/11/04 08:22:12 djm Exp $ */ +/* + * Copyright (c) 2008 Damien Miller. All rights reserved. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* + * Server side of zero-knowledge password auth using J-PAKE protocol + * as described in: + * + * F. Hao, P. Ryan, "Password Authenticated Key Exchange by Juggling", + * 16th Workshop on Security Protocols, Cambridge, April 2008 + * + * http://grouper.ieee.org/groups/1363/Research/contributions/hao-ryan-2008.pdf + */ + +#include +#include + +#include +#include +#include +#include + +#include +#include + +#include "xmalloc.h" +#include "ssh2.h" +#include "key.h" +#include "hostfile.h" +#include "buffer.h" +#include "auth.h" +#include "packet.h" +#include "dispatch.h" +#include "log.h" +#include "servconf.h" +#include "auth-options.h" +#include "canohost.h" +#ifdef GSSAPI +#include "ssh-gss.h" +#endif +#include "monitor_wrap.h" + +#include "jpake.h" + +#ifdef JPAKE + +/* + * XXX options->permit_empty_passwd (at the moment, they will be refused + * anyway because they will mismatch on fake salt. + */ + +/* Dispatch handlers */ +static void input_userauth_jpake_client_step1(int, u_int32_t, void *); +static void input_userauth_jpake_client_step2(int, u_int32_t, void *); +static void input_userauth_jpake_client_confirm(int, u_int32_t, void *); + +static int auth2_jpake_start(Authctxt *); + +/* import */ +extern ServerOptions options; +extern u_char *session_id2; +extern u_int session_id2_len; + +/* + * Attempt J-PAKE authentication. + */ +static int +userauth_jpake(Authctxt *authctxt) +{ + int authenticated = 0; + + packet_check_eom(); + + debug("jpake-01@openssh.com requested"); + + if (authctxt->user != NULL) { + if (authctxt->jpake_ctx == NULL) + authctxt->jpake_ctx = jpake_new(); + if (options.zero_knowledge_password_authentication) + authenticated = auth2_jpake_start(authctxt); + } + + return authenticated; +} + +Authmethod method_jpake = { + "jpake-01@openssh.com", + userauth_jpake, + &options.zero_knowledge_password_authentication +}; + +/* Clear context and callbacks */ +void +auth2_jpake_stop(Authctxt *authctxt) +{ + /* unregister callbacks */ + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP1, NULL); + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP2, NULL); + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_CONFIRM, NULL); + if (authctxt->jpake_ctx != NULL) { + jpake_free(authctxt->jpake_ctx); + authctxt->jpake_ctx = NULL; + } +} + +/* Returns 1 if 'c' is a valid crypt(3) salt character, 0 otherwise */ +static int +valid_crypt_salt(int c) +{ + if (c >= 'A' && c <= 'Z') + return 1; + if (c >= 'a' && c <= 'z') + return 1; + if (c >= '.' && c <= '9') + return 1; + return 0; +} + +/* + * Derive fake salt as H(username || first_private_host_key) + * This provides relatively stable fake salts for non-existent + * users and avoids the jpake method becoming an account validity + * oracle. + */ +static void +derive_rawsalt(const char *username, u_char *rawsalt, u_int len) +{ + u_char *digest; + u_int digest_len; + Buffer b; + Key *k; + + buffer_init(&b); + buffer_put_cstring(&b, username); + if ((k = get_hostkey_by_index(0)) == NULL || + (k->flags & KEY_FLAG_EXT)) + fatal("%s: no hostkeys", __func__); + switch (k->type) { + case KEY_RSA1: + case KEY_RSA: + if (k->rsa->p == NULL || k->rsa->q == NULL) + fatal("%s: RSA key missing p and/or q", __func__); + buffer_put_bignum2(&b, k->rsa->p); + buffer_put_bignum2(&b, k->rsa->q); + break; + case KEY_DSA: + if (k->dsa->priv_key == NULL) + fatal("%s: DSA key missing priv_key", __func__); + buffer_put_bignum2(&b, k->dsa->priv_key); + break; + default: + fatal("%s: unknown key type %d", __func__, k->type); + } + if (hash_buffer(buffer_ptr(&b), buffer_len(&b), EVP_sha256(), + &digest, &digest_len) != 0) + fatal("%s: hash_buffer", __func__); + buffer_free(&b); + if (len > digest_len) + fatal("%s: not enough bytes for rawsalt (want %u have %u)", + __func__, len, digest_len); + memcpy(rawsalt, digest, len); + bzero(digest, digest_len); + xfree(digest); +} + +/* ASCII an integer [0, 64) for inclusion in a password/salt */ +static char +pw_encode64(u_int i64) +{ + const u_char e64[] = + "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + return e64[i64 % 64]; +} + +/* Generate ASCII salt bytes for user */ +static char * +makesalt(u_int want, const char *user) +{ + u_char rawsalt[32]; + static char ret[33]; + u_int i; + + if (want > sizeof(ret) - 1) + fatal("%s: want %u", __func__, want); + + derive_rawsalt(user, rawsalt, sizeof(rawsalt)); + bzero(ret, sizeof(ret)); + for (i = 0; i < want; i++) + ret[i] = pw_encode64(rawsalt[i]); + bzero(rawsalt, sizeof(rawsalt)); + + return ret; +} + +/* + * Select the system's default password hashing scheme and generate + * a stable fake salt under it for use by a non-existent account. + * Prevents jpake method being used to infer the validity of accounts. + */ +static void +fake_salt_and_scheme(Authctxt *authctxt, char **salt, char **scheme) +{ + char *rounds_s, *style; + long long rounds; + login_cap_t *lc; + + + if ((lc = login_getclass(authctxt->pw->pw_class)) == NULL && + (lc = login_getclass(NULL)) == NULL) + fatal("%s: login_getclass failed", __func__); + style = login_getcapstr(lc, "localcipher", NULL, NULL); + if (style == NULL) + style = xstrdup("blowfish,6"); + login_close(lc); + + if ((rounds_s = strchr(style, ',')) != NULL) + *rounds_s++ = '\0'; + rounds = strtonum(rounds_s, 1, 1<<31, NULL); + + if (strcmp(style, "md5") == 0) { + xasprintf(salt, "$1$%s$", makesalt(8, authctxt->user)); + *scheme = xstrdup("md5"); + } else if (strcmp(style, "old") == 0) { + *salt = xstrdup(makesalt(2, authctxt->user)); + *scheme = xstrdup("crypt"); + } else if (strcmp(style, "newsalt") == 0) { + rounds = MAX(rounds, 7250); + rounds = MIN(rounds, (1<<24) - 1); + xasprintf(salt, "_%c%c%c%c%s", + pw_encode64(rounds), pw_encode64(rounds >> 6), + pw_encode64(rounds >> 12), pw_encode64(rounds >> 18), + makesalt(4, authctxt->user)); + *scheme = xstrdup("crypt-extended"); + } else { + /* Default to blowfish */ + rounds = MAX(rounds, 3); + rounds = MIN(rounds, 31); + xasprintf(salt, "$2a$%02lld$%s", rounds, + makesalt(22, authctxt->user)); + *scheme = xstrdup("bcrypt"); + } + xfree(style); + debug3("%s: fake %s salt for user %s: %s", + __func__, *scheme, authctxt->user, *salt); +} + +/* + * Fetch password hashing scheme, password salt and derive shared secret + * for user. If user does not exist, a fake but stable and user-unique + * salt will be returned. + */ +void +auth2_jpake_get_pwdata(Authctxt *authctxt, BIGNUM **s, + char **hash_scheme, char **salt) +{ + char *cp; + u_char *secret; + u_int secret_len, salt_len; + +#ifdef JPAKE_DEBUG + debug3("%s: valid %d pw %.5s...", __func__, + authctxt->valid, authctxt->pw->pw_passwd); +#endif + + *salt = NULL; + *hash_scheme = NULL; + if (authctxt->valid) { + if (strncmp(authctxt->pw->pw_passwd, "$2$", 3) == 0 && + strlen(authctxt->pw->pw_passwd) > 28) { + /* + * old-variant bcrypt: + * "$2$", 2 digit rounds, "$", 22 bytes salt + */ + salt_len = 3 + 2 + 1 + 22 + 1; + *salt = xmalloc(salt_len); + strlcpy(*salt, authctxt->pw->pw_passwd, salt_len); + *hash_scheme = xstrdup("bcrypt"); + } else if (strncmp(authctxt->pw->pw_passwd, "$2a$", 4) == 0 && + strlen(authctxt->pw->pw_passwd) > 29) { + /* + * current-variant bcrypt: + * "$2a$", 2 digit rounds, "$", 22 bytes salt + */ + salt_len = 4 + 2 + 1 + 22 + 1; + *salt = xmalloc(salt_len); + strlcpy(*salt, authctxt->pw->pw_passwd, salt_len); + *hash_scheme = xstrdup("bcrypt"); + } else if (strncmp(authctxt->pw->pw_passwd, "$1$", 3) == 0 && + strlen(authctxt->pw->pw_passwd) > 5) { + /* + * md5crypt: + * "$1$", salt until "$" + */ + cp = strchr(authctxt->pw->pw_passwd + 3, '$'); + if (cp != NULL) { + salt_len = (cp - authctxt->pw->pw_passwd) + 1; + *salt = xmalloc(salt_len); + strlcpy(*salt, authctxt->pw->pw_passwd, + salt_len); + *hash_scheme = xstrdup("md5crypt"); + } + } else if (strncmp(authctxt->pw->pw_passwd, "_", 1) == 0 && + strlen(authctxt->pw->pw_passwd) > 9) { + /* + * BSDI extended crypt: + * "_", 4 digits count, 4 chars salt + */ + salt_len = 1 + 4 + 4 + 1; + *salt = xmalloc(salt_len); + strlcpy(*salt, authctxt->pw->pw_passwd, salt_len); + *hash_scheme = xstrdup("crypt-extended"); + } else if (strlen(authctxt->pw->pw_passwd) == 13 && + valid_crypt_salt(authctxt->pw->pw_passwd[0]) && + valid_crypt_salt(authctxt->pw->pw_passwd[1])) { + /* + * traditional crypt: + * 2 chars salt + */ + salt_len = 2 + 1; + *salt = xmalloc(salt_len); + strlcpy(*salt, authctxt->pw->pw_passwd, salt_len); + *hash_scheme = xstrdup("crypt"); + } + if (*salt == NULL) { + debug("%s: unrecognised crypt scheme for user %s", + __func__, authctxt->pw->pw_name); + } + } + if (*salt == NULL) + fake_salt_and_scheme(authctxt, salt, hash_scheme); + + if (hash_buffer(authctxt->pw->pw_passwd, + strlen(authctxt->pw->pw_passwd), EVP_sha256(), + &secret, &secret_len) != 0) + fatal("%s: hash_buffer", __func__); + if ((*s = BN_bin2bn(secret, secret_len, NULL)) == NULL) + fatal("%s: BN_bin2bn (secret)", __func__); +#ifdef JPAKE_DEBUG + debug3("%s: salt = %s (len %u)", __func__, + *salt, (u_int)strlen(*salt)); + debug3("%s: scheme = %s", __func__, *hash_scheme); + JPAKE_DEBUG_BN((*s, "%s: s = ", __func__)); +#endif + bzero(secret, secret_len); + xfree(secret); +} + +/* + * Being authentication attempt. + * Note, sets authctxt->postponed while in subprotocol + */ +static int +auth2_jpake_start(Authctxt *authctxt) +{ + struct jpake_ctx *pctx = authctxt->jpake_ctx; + u_char *x3_proof, *x4_proof; + u_int x3_proof_len, x4_proof_len; + char *salt, *hash_scheme; + + debug("%s: start", __func__); + + PRIVSEP(jpake_step1(pctx->grp, + &pctx->server_id, &pctx->server_id_len, + &pctx->x3, &pctx->x4, &pctx->g_x3, &pctx->g_x4, + &x3_proof, &x3_proof_len, + &x4_proof, &x4_proof_len)); + + PRIVSEP(auth2_jpake_get_pwdata(authctxt, &pctx->s, + &hash_scheme, &salt)); + + if (!use_privsep) + JPAKE_DEBUG_CTX((pctx, "step 1 sending in %s", __func__)); + + packet_start(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP1); + packet_put_cstring(hash_scheme); + packet_put_cstring(salt); + packet_put_string(pctx->server_id, pctx->server_id_len); + packet_put_bignum2(pctx->g_x3); + packet_put_bignum2(pctx->g_x4); + packet_put_string(x3_proof, x3_proof_len); + packet_put_string(x4_proof, x4_proof_len); + packet_send(); + packet_write_wait(); + + bzero(hash_scheme, strlen(hash_scheme)); + bzero(salt, strlen(salt)); + xfree(hash_scheme); + xfree(salt); + bzero(x3_proof, x3_proof_len); + bzero(x4_proof, x4_proof_len); + xfree(x3_proof); + xfree(x4_proof); + + /* Expect step 1 packet from peer */ + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP1, + input_userauth_jpake_client_step1); + + authctxt->postponed = 1; + return 0; +} + +/* ARGSUSED */ +static void +input_userauth_jpake_client_step1(int type, u_int32_t seq, void *ctxt) +{ + Authctxt *authctxt = ctxt; + struct jpake_ctx *pctx = authctxt->jpake_ctx; + u_char *x1_proof, *x2_proof, *x4_s_proof; + u_int x1_proof_len, x2_proof_len, x4_s_proof_len; + + /* Disable this message */ + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP1, NULL); + + /* Fetch step 1 values */ + if ((pctx->g_x1 = BN_new()) == NULL || + (pctx->g_x2 = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + pctx->client_id = packet_get_string(&pctx->client_id_len); + packet_get_bignum2(pctx->g_x1); + packet_get_bignum2(pctx->g_x2); + x1_proof = packet_get_string(&x1_proof_len); + x2_proof = packet_get_string(&x2_proof_len); + packet_check_eom(); + + if (!use_privsep) + JPAKE_DEBUG_CTX((pctx, "step 1 received in %s", __func__)); + + PRIVSEP(jpake_step2(pctx->grp, pctx->s, pctx->g_x3, + pctx->g_x1, pctx->g_x2, pctx->x4, + pctx->client_id, pctx->client_id_len, + pctx->server_id, pctx->server_id_len, + x1_proof, x1_proof_len, + x2_proof, x2_proof_len, + &pctx->b, + &x4_s_proof, &x4_s_proof_len)); + + bzero(x1_proof, x1_proof_len); + bzero(x2_proof, x2_proof_len); + xfree(x1_proof); + xfree(x2_proof); + + if (!use_privsep) + JPAKE_DEBUG_CTX((pctx, "step 2 sending in %s", __func__)); + + /* Send values for step 2 */ + packet_start(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP2); + packet_put_bignum2(pctx->b); + packet_put_string(x4_s_proof, x4_s_proof_len); + packet_send(); + packet_write_wait(); + + bzero(x4_s_proof, x4_s_proof_len); + xfree(x4_s_proof); + + /* Expect step 2 packet from peer */ + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP2, + input_userauth_jpake_client_step2); +} + +/* ARGSUSED */ +static void +input_userauth_jpake_client_step2(int type, u_int32_t seq, void *ctxt) +{ + Authctxt *authctxt = ctxt; + struct jpake_ctx *pctx = authctxt->jpake_ctx; + u_char *x2_s_proof; + u_int x2_s_proof_len; + + /* Disable this message */ + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP2, NULL); + + if ((pctx->a = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + + /* Fetch step 2 values */ + packet_get_bignum2(pctx->a); + x2_s_proof = packet_get_string(&x2_s_proof_len); + packet_check_eom(); + + if (!use_privsep) + JPAKE_DEBUG_CTX((pctx, "step 2 received in %s", __func__)); + + /* Derive shared key and calculate confirmation hash */ + PRIVSEP(jpake_key_confirm(pctx->grp, pctx->s, pctx->a, + pctx->x4, pctx->g_x3, pctx->g_x4, pctx->g_x1, pctx->g_x2, + pctx->server_id, pctx->server_id_len, + pctx->client_id, pctx->client_id_len, + session_id2, session_id2_len, + x2_s_proof, x2_s_proof_len, + &pctx->k, + &pctx->h_k_sid_sessid, &pctx->h_k_sid_sessid_len)); + + bzero(x2_s_proof, x2_s_proof_len); + xfree(x2_s_proof); + + if (!use_privsep) + JPAKE_DEBUG_CTX((pctx, "confirm sending in %s", __func__)); + + /* Send key confirmation proof */ + packet_start(SSH2_MSG_USERAUTH_JPAKE_SERVER_CONFIRM); + packet_put_string(pctx->h_k_sid_sessid, pctx->h_k_sid_sessid_len); + packet_send(); + packet_write_wait(); + + /* Expect confirmation from peer */ + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_CONFIRM, + input_userauth_jpake_client_confirm); +} + +/* ARGSUSED */ +static void +input_userauth_jpake_client_confirm(int type, u_int32_t seq, void *ctxt) +{ + Authctxt *authctxt = ctxt; + struct jpake_ctx *pctx = authctxt->jpake_ctx; + int authenticated = 0; + + /* Disable this message */ + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_CLIENT_CONFIRM, NULL); + + pctx->h_k_cid_sessid = packet_get_string(&pctx->h_k_cid_sessid_len); + packet_check_eom(); + + if (!use_privsep) + JPAKE_DEBUG_CTX((pctx, "confirm received in %s", __func__)); + + /* Verify expected confirmation hash */ + if (PRIVSEP(jpake_check_confirm(pctx->k, + pctx->client_id, pctx->client_id_len, + session_id2, session_id2_len, + pctx->h_k_cid_sessid, pctx->h_k_cid_sessid_len)) == 1) + authenticated = authctxt->valid ? 1 : 0; + else + debug("%s: confirmation mismatch", __func__); + + /* done */ + authctxt->postponed = 0; + jpake_free(authctxt->jpake_ctx); + authctxt->jpake_ctx = NULL; + userauth_finish(authctxt, authenticated, method_jpake.name); +} + +#endif /* JPAKE */ + diff --git a/auth2.c b/auth2.c index a835abfc6..ecf857052 100644 --- a/auth2.c +++ b/auth2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2.c,v 1.119 2008/07/04 23:30:16 djm Exp $ */ +/* $OpenBSD: auth2.c,v 1.120 2008/11/04 08:22:12 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -71,12 +71,18 @@ extern Authmethod method_hostbased; #ifdef GSSAPI extern Authmethod method_gssapi; #endif +#ifdef JPAKE +extern Authmethod method_jpake; +#endif Authmethod *authmethods[] = { &method_none, &method_pubkey, #ifdef GSSAPI &method_gssapi, +#endif +#ifdef JPAKE + &method_jpake, #endif &method_passwd, &method_kbdint, @@ -257,8 +263,12 @@ input_userauth_request(int type, u_int32_t seq, void *ctxt) } /* reset state */ auth2_challenge_stop(authctxt); +#ifdef JPAKE + auth2_jpake_stop(authctxt); +#endif #ifdef GSSAPI + /* XXX move to auth2_gssapi_stop() */ dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL); dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE, NULL); #endif diff --git a/jpake.c b/jpake.c new file mode 100644 index 000000000..565f2e255 --- /dev/null +++ b/jpake.c @@ -0,0 +1,604 @@ +/* $OpenBSD: jpake.c,v 1.1 2008/11/04 08:22:12 djm Exp $ */ +/* + * Copyright (c) 2008 Damien Miller. All rights reserved. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* + * Shared components of zero-knowledge password auth using J-PAKE protocol + * as described in: + * + * F. Hao, P. Ryan, "Password Authenticated Key Exchange by Juggling", + * 16th Workshop on Security Protocols, Cambridge, April 2008 + * + * http://grouper.ieee.org/groups/1363/Research/contributions/hao-ryan-2008.pdf + */ + +#include "includes.h" + +#include + +#include +#include +#include + +#include +#include + +#include "xmalloc.h" +#include "ssh2.h" +#include "key.h" +#include "hostfile.h" +#include "auth.h" +#include "buffer.h" +#include "packet.h" +#include "dispatch.h" +#include "log.h" + +#include "jpake.h" + +#ifdef JPAKE + +/* RFC3526 group 5, 1536 bits */ +#define JPAKE_GROUP_G "2" +#define JPAKE_GROUP_P \ + "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74" \ + "020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437" \ + "4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED" \ + "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF05" \ + "98DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB" \ + "9ED529077096966D670C354E4ABC9804F1746C08CA237327FFFFFFFFFFFFFFFF" + +struct jpake_group * +jpake_default_group(void) +{ + struct jpake_group *ret; + + ret = xmalloc(sizeof(*ret)); + ret->p = ret->q = ret->g = NULL; + if (BN_hex2bn(&ret->p, JPAKE_GROUP_P) == 0 || + BN_hex2bn(&ret->g, JPAKE_GROUP_G) == 0) + fatal("%s: BN_hex2bn", __func__); + /* Subgroup order is p/2 (p is a safe prime) */ + if ((ret->q = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + if (BN_rshift1(ret->q, ret->p) != 1) + fatal("%s: BN_rshift1", __func__); + + return ret; +} + +/* + * Generate uniformly distributed random number in range (1, high). + * Return number on success, NULL on failure. + */ +BIGNUM * +bn_rand_range_gt_one(const BIGNUM *high) +{ + BIGNUM *r, *tmp; + int success = -1; + + if ((tmp = BN_new()) == NULL) { + error("%s: BN_new", __func__); + return NULL; + } + if ((r = BN_new()) == NULL) { + error("%s: BN_new failed", __func__); + goto out; + } + if (BN_set_word(tmp, 2) != 1) { + error("%s: BN_set_word(tmp, 2)", __func__); + goto out; + } + if (BN_sub(tmp, high, tmp) == -1) { + error("%s: BN_sub failed (tmp = high - 2)", __func__); + goto out; + } + if (BN_rand_range(r, tmp) == -1) { + error("%s: BN_rand_range failed", __func__); + goto out; + } + if (BN_set_word(tmp, 2) != 1) { + error("%s: BN_set_word(tmp, 2)", __func__); + goto out; + } + if (BN_add(r, r, tmp) == -1) { + error("%s: BN_add failed (r = r + 2)", __func__); + goto out; + } + success = 0; + out: + BN_clear_free(tmp); + if (success == 0) + return r; + BN_clear_free(r); + return NULL; +} + +/* + * Hash contents of buffer 'b' with hash 'md'. Returns 0 on success, + * with digest via 'digestp' (caller to free) and length via 'lenp'. + * Returns -1 on failure. + */ +int +hash_buffer(const u_char *buf, u_int len, const EVP_MD *md, + u_char **digestp, u_int *lenp) +{ + u_char digest[EVP_MAX_MD_SIZE]; + u_int digest_len; + EVP_MD_CTX evp_md_ctx; + int success = -1; + + EVP_MD_CTX_init(&evp_md_ctx); + + if (EVP_DigestInit_ex(&evp_md_ctx, md, NULL) != 1) { + error("%s: EVP_DigestInit_ex", __func__); + goto out; + } + if (EVP_DigestUpdate(&evp_md_ctx, buf, len) != 1) { + error("%s: EVP_DigestUpdate", __func__); + goto out; + } + if (EVP_DigestFinal_ex(&evp_md_ctx, digest, &digest_len) != 1) { + error("%s: EVP_DigestFinal_ex", __func__); + goto out; + } + *digestp = xmalloc(digest_len); + *lenp = digest_len; + memcpy(*digestp, digest, *lenp); + success = 0; + out: + EVP_MD_CTX_cleanup(&evp_md_ctx); + bzero(digest, sizeof(digest)); + digest_len = 0; + return success; +} + +/* print formatted string followed by bignum */ +void +jpake_debug3_bn(const BIGNUM *n, const char *fmt, ...) +{ + char *out, *h; + va_list args; + + out = NULL; + va_start(args, fmt); + vasprintf(&out, fmt, args); + va_end(args); + if (out == NULL) + fatal("%s: vasprintf failed", __func__); + + if (n == NULL) + debug3("%s(null)", out); + else { + h = BN_bn2hex(n); + debug3("%s0x%s", out, h); + free(h); + } + free(out); +} + +/* print formatted string followed by buffer contents in hex */ +void +jpake_debug3_buf(const u_char *buf, u_int len, const char *fmt, ...) +{ + char *out, h[65]; + u_int i, j; + va_list args; + + out = NULL; + va_start(args, fmt); + vasprintf(&out, fmt, args); + va_end(args); + if (out == NULL) + fatal("%s: vasprintf failed", __func__); + + debug3("%s length %u%s", out, len, buf == NULL ? " (null)" : ""); + free(out); + if (buf == NULL) + return; + + *h = '\0'; + for (i = j = 0; i < len; i++) { + snprintf(h + j, sizeof(h) - j, "%02x", buf[i]); + j += 2; + if (j >= sizeof(h) - 1 || i == len - 1) { + debug3(" %s", h); + *h = '\0'; + j = 0; + } + } +} + +struct jpake_ctx * +jpake_new(void) +{ + struct jpake_ctx *ret; + + ret = xcalloc(1, sizeof(*ret)); + + ret->grp = jpake_default_group(); + + ret->s = ret->k = NULL; + ret->x1 = ret->x2 = ret->x3 = ret->x4 = NULL; + ret->g_x1 = ret->g_x2 = ret->g_x3 = ret->g_x4 = NULL; + ret->a = ret->b = NULL; + + ret->client_id = ret->server_id = NULL; + ret->h_k_cid_sessid = ret->h_k_sid_sessid = NULL; + + debug3("%s: alloc %p", __func__, ret); + + return ret; +} + + +void +jpake_free(struct jpake_ctx *pctx) +{ + debug3("%s: free %p", __func__, pctx); + +#define JPAKE_BN_CLEAR_FREE(v) \ + do { \ + if ((v) != NULL) { \ + BN_clear_free(v); \ + (v) = NULL; \ + } \ + } while (0) +#define JPAKE_BUF_CLEAR_FREE(v, l) \ + do { \ + if ((v) != NULL) { \ + bzero((v), (l)); \ + xfree(v); \ + (v) = NULL; \ + (l) = 0; \ + } \ + } while (0) + + JPAKE_BN_CLEAR_FREE(pctx->s); + JPAKE_BN_CLEAR_FREE(pctx->k); + JPAKE_BN_CLEAR_FREE(pctx->x1); + JPAKE_BN_CLEAR_FREE(pctx->x2); + JPAKE_BN_CLEAR_FREE(pctx->x3); + JPAKE_BN_CLEAR_FREE(pctx->x4); + JPAKE_BN_CLEAR_FREE(pctx->g_x1); + JPAKE_BN_CLEAR_FREE(pctx->g_x2); + JPAKE_BN_CLEAR_FREE(pctx->g_x3); + JPAKE_BN_CLEAR_FREE(pctx->g_x4); + JPAKE_BN_CLEAR_FREE(pctx->a); + JPAKE_BN_CLEAR_FREE(pctx->b); + + JPAKE_BUF_CLEAR_FREE(pctx->client_id, pctx->client_id_len); + JPAKE_BUF_CLEAR_FREE(pctx->server_id, pctx->server_id_len); + JPAKE_BUF_CLEAR_FREE(pctx->h_k_cid_sessid, pctx->h_k_cid_sessid_len); + JPAKE_BUF_CLEAR_FREE(pctx->h_k_sid_sessid, pctx->h_k_sid_sessid_len); + +#undef JPAKE_BN_CLEAR_FREE +#undef JPAKE_BUF_CLEAR_FREE + + bzero(pctx, sizeof(pctx)); + xfree(pctx); +} + +/* dump entire jpake_ctx. NB. includes private values! */ +void +jpake_dump(struct jpake_ctx *pctx, const char *fmt, ...) +{ + char *out; + va_list args; + + out = NULL; + va_start(args, fmt); + vasprintf(&out, fmt, args); + va_end(args); + if (out == NULL) + fatal("%s: vasprintf failed", __func__); + + debug3("%s: %s (ctx at %p)", __func__, out, pctx); + if (pctx == NULL) { + free(out); + return; + } + +#define JPAKE_DUMP_BN(a) do { \ + if ((a) != NULL) \ + JPAKE_DEBUG_BN(((a), "%s = ", #a)); \ + } while (0) +#define JPAKE_DUMP_BUF(a, b) do { \ + if ((a) != NULL) \ + JPAKE_DEBUG_BUF((a, b, "%s", #a)); \ + } while (0) + + JPAKE_DUMP_BN(pctx->s); + JPAKE_DUMP_BN(pctx->k); + JPAKE_DUMP_BN(pctx->x1); + JPAKE_DUMP_BN(pctx->x2); + JPAKE_DUMP_BN(pctx->x3); + JPAKE_DUMP_BN(pctx->x4); + JPAKE_DUMP_BN(pctx->g_x1); + JPAKE_DUMP_BN(pctx->g_x2); + JPAKE_DUMP_BN(pctx->g_x3); + JPAKE_DUMP_BN(pctx->g_x4); + JPAKE_DUMP_BN(pctx->a); + JPAKE_DUMP_BN(pctx->b); + + JPAKE_DUMP_BUF(pctx->client_id, pctx->client_id_len); + JPAKE_DUMP_BUF(pctx->server_id, pctx->server_id_len); + JPAKE_DUMP_BUF(pctx->h_k_cid_sessid, pctx->h_k_cid_sessid_len); + JPAKE_DUMP_BUF(pctx->h_k_sid_sessid, pctx->h_k_sid_sessid_len); + + debug3("%s: %s done", __func__, out); + free(out); +} + +/* Shared parts of step 1 exchange calculation */ +void +jpake_step1(struct jpake_group *grp, + u_char **id, u_int *id_len, + BIGNUM **priv1, BIGNUM **priv2, BIGNUM **g_priv1, BIGNUM **g_priv2, + u_char **priv1_proof, u_int *priv1_proof_len, + u_char **priv2_proof, u_int *priv2_proof_len) +{ + BN_CTX *bn_ctx; + + if ((bn_ctx = BN_CTX_new()) == NULL) + fatal("%s: BN_CTX_new", __func__); + + /* Random nonce to prevent replay */ + *id = xmalloc(KZP_ID_LEN); + *id_len = KZP_ID_LEN; + arc4random_buf(*id, *id_len); + + /* + * x1/x3 is a random element of Zq + * x2/x4 is a random element of Z*q + * We also exclude [1] from x1/x3 candidates and [0, 1] from + * x2/x4 candiates to avoid possible degeneracy (i.e. g^0, g^1). + */ + if ((*priv1 = bn_rand_range_gt_one(grp->q)) == NULL || + (*priv2 = bn_rand_range_gt_one(grp->q)) == NULL) + fatal("%s: bn_rand_range_gt_one", __func__); + + /* + * client: g_x1 = g^x1 mod p / server: g_x3 = g^x3 mod p + * client: g_x2 = g^x2 mod p / server: g_x4 = g^x4 mod p + */ + if ((*g_priv1 = BN_new()) == NULL || + (*g_priv2 = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + if (BN_mod_exp(*g_priv1, grp->g, *priv1, grp->p, bn_ctx) == -1) + fatal("%s: BN_mod_exp", __func__); + if (BN_mod_exp(*g_priv2, grp->g, *priv2, grp->p, bn_ctx) == -1) + fatal("%s: BN_mod_exp", __func__); + + /* Generate proofs for holding x1/x3 and x2/x4 */ + if (schnorr_sign(grp->p, grp->q, grp->g, + *priv1, *g_priv1, *id, *id_len, + priv1_proof, priv1_proof_len) != 0) + fatal("%s: schnorr_sign", __func__); + if (schnorr_sign(grp->p, grp->q, grp->g, + *priv2, *g_priv2, *id, *id_len, + priv2_proof, priv2_proof_len) != 0) + fatal("%s: schnorr_sign", __func__); + + BN_CTX_free(bn_ctx); +} + +/* Shared parts of step 2 exchange calculation */ +void +jpake_step2(struct jpake_group *grp, BIGNUM *s, + BIGNUM *mypub1, BIGNUM *theirpub1, BIGNUM *theirpub2, BIGNUM *mypriv2, + const u_char *theirid, u_int theirid_len, + const u_char *myid, u_int myid_len, + const u_char *theirpub1_proof, u_int theirpub1_proof_len, + const u_char *theirpub2_proof, u_int theirpub2_proof_len, + BIGNUM **newpub, + u_char **newpub_exponent_proof, u_int *newpub_exponent_proof_len) +{ + BN_CTX *bn_ctx; + BIGNUM *tmp, *exponent; + + /* Validate peer's step 1 values */ + if (BN_cmp(theirpub1, BN_value_one()) <= 0) + fatal("%s: theirpub1 <= 1", __func__); + if (BN_cmp(theirpub2, BN_value_one()) <= 0) + fatal("%s: theirpub2 <= 1", __func__); + + if (schnorr_verify(grp->p, grp->q, grp->g, theirpub1, + theirid, theirid_len, theirpub1_proof, theirpub1_proof_len) != 1) + fatal("%s: schnorr_verify theirpub1 failed", __func__); + if (schnorr_verify(grp->p, grp->q, grp->g, theirpub2, + theirid, theirid_len, theirpub2_proof, theirpub2_proof_len) != 1) + fatal("%s: schnorr_verify theirpub2 failed", __func__); + + if ((bn_ctx = BN_CTX_new()) == NULL) + fatal("%s: BN_CTX_new", __func__); + + if ((*newpub = BN_new()) == NULL || + (tmp = BN_new()) == NULL || + (exponent = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + + /* + * client: exponent = x2 * s mod p + * server: exponent = x4 * s mod p + */ + if (BN_mod_mul(exponent, mypriv2, s, grp->q, bn_ctx) != 1) + fatal("%s: BN_mod_mul (exponent = mypriv2 * s mod p)", + __func__); + + /* + * client: tmp = g^(x1 + x3 + x4) mod p + * server: tmp = g^(x1 + x2 + x3) mod p + */ + if (BN_mod_mul(tmp, mypub1, theirpub1, grp->p, bn_ctx) != 1) + fatal("%s: BN_mod_mul (tmp = mypub1 * theirpub1 mod p)", + __func__); + if (BN_mod_mul(tmp, tmp, theirpub2, grp->p, bn_ctx) != 1) + fatal("%s: BN_mod_mul (tmp = tmp * theirpub2 mod p)", __func__); + + /* + * client: a = tmp^exponent = g^((x1+x3+x4) * x2 * s) mod p + * server: b = tmp^exponent = g^((x1+x2+x3) * x4 * s) mod p + */ + if (BN_mod_exp(*newpub, tmp, exponent, grp->p, bn_ctx) != 1) + fatal("%s: BN_mod_mul (newpub = tmp^exponent mod p)", __func__); + + JPAKE_DEBUG_BN((tmp, "%s: tmp = ", __func__)); + JPAKE_DEBUG_BN((exponent, "%s: exponent = ", __func__)); + + /* Note the generator here is 'tmp', not g */ + if (schnorr_sign(grp->p, grp->q, tmp, exponent, *newpub, + myid, myid_len, + newpub_exponent_proof, newpub_exponent_proof_len) != 0) + fatal("%s: schnorr_sign newpub", __func__); + + BN_clear_free(tmp); /* XXX stash for later use? */ + BN_clear_free(exponent); /* XXX stash for later use? (yes, in conf) */ + + BN_CTX_free(bn_ctx); +} + +/* Confirmation hash calculation */ +void +jpake_confirm_hash(const BIGNUM *k, + const u_char *endpoint_id, u_int endpoint_id_len, + const u_char *sess_id, u_int sess_id_len, + u_char **confirm_hash, u_int *confirm_hash_len) +{ + Buffer b; + + /* + * Calculate confirmation proof: + * client: H(k || client_id || session_id) + * server: H(k || server_id || session_id) + */ + buffer_init(&b); + buffer_put_bignum2(&b, k); + buffer_put_string(&b, endpoint_id, endpoint_id_len); + buffer_put_string(&b, sess_id, sess_id_len); + if (hash_buffer(buffer_ptr(&b), buffer_len(&b), EVP_sha256(), + confirm_hash, confirm_hash_len) != 0) + fatal("%s: hash_buffer", __func__); + buffer_free(&b); +} + +/* Shared parts of key derivation and confirmation calculation */ +void +jpake_key_confirm(struct jpake_group *grp, BIGNUM *s, BIGNUM *step2_val, + BIGNUM *mypriv2, BIGNUM *mypub1, BIGNUM *mypub2, + BIGNUM *theirpub1, BIGNUM *theirpub2, + const u_char *my_id, u_int my_id_len, + const u_char *their_id, u_int their_id_len, + const u_char *sess_id, u_int sess_id_len, + const u_char *theirpriv2_s_proof, u_int theirpriv2_s_proof_len, + BIGNUM **k, + u_char **confirm_hash, u_int *confirm_hash_len) +{ + BN_CTX *bn_ctx; + BIGNUM *tmp; + + if ((bn_ctx = BN_CTX_new()) == NULL) + fatal("%s: BN_CTX_new", __func__); + if ((tmp = BN_new()) == NULL || + (*k = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + + /* Validate step 2 values */ + if (BN_cmp(step2_val, BN_value_one()) <= 0) + fatal("%s: step2_val <= 1", __func__); + + /* + * theirpriv2_s_proof is calculated with a different generator: + * tmp = g^(mypriv1+mypriv2+theirpub1) = g^mypub1*g^mypub2*g^theirpub1 + * Calculate it here so we can check the signature. + */ + if (BN_mod_mul(tmp, mypub1, mypub2, grp->p, bn_ctx) != 1) + fatal("%s: BN_mod_mul (tmp = mypub1 * mypub2 mod p)", __func__); + if (BN_mod_mul(tmp, tmp, theirpub1, grp->p, bn_ctx) != 1) + fatal("%s: BN_mod_mul (tmp = tmp * theirpub1 mod p)", __func__); + + JPAKE_DEBUG_BN((tmp, "%s: tmp = ", __func__)); + + if (schnorr_verify(grp->p, grp->q, tmp, step2_val, + their_id, their_id_len, + theirpriv2_s_proof, theirpriv2_s_proof_len) != 1) + fatal("%s: schnorr_verify theirpriv2_s_proof failed", __func__); + + /* + * Derive shared key: + * client: k = (b / g^(x2*x4*s))^x2 = g^((x1+x3)*x2*x4*s) + * server: k = (a / g^(x2*x4*s))^x4 = g^((x1+x3)*x2*x4*s) + * + * Computed as: + * client: k = (g_x4^(q - (x2 * s)) * b)^x2 mod p + * server: k = (g_x2^(q - (x4 * s)) * b)^x4 mod p + */ + if (BN_mul(tmp, mypriv2, s, bn_ctx) != 1) + fatal("%s: BN_mul (tmp = mypriv2 * s)", __func__); + if (BN_mod_sub(tmp, grp->q, tmp, grp->q, bn_ctx) != 1) + fatal("%s: BN_mod_sub (tmp = q - tmp mod q)", __func__); + if (BN_mod_exp(tmp, theirpub2, tmp, grp->p, bn_ctx) != 1) + fatal("%s: BN_mod_exp (tmp = theirpub2^tmp) mod p", __func__); + if (BN_mod_mul(tmp, tmp, step2_val, grp->p, bn_ctx) != 1) + fatal("%s: BN_mod_mul (tmp = tmp * step2_val) mod p", __func__); + if (BN_mod_exp(*k, tmp, mypriv2, grp->p, bn_ctx) != 1) + fatal("%s: BN_mod_exp (k = tmp^mypriv2) mod p", __func__); + + BN_CTX_free(bn_ctx); + BN_clear_free(tmp); + + jpake_confirm_hash(*k, my_id, my_id_len, sess_id, sess_id_len, + confirm_hash, confirm_hash_len); +} + +/* + * Calculate and check confirmation hash from peer. Returns 1 on success + * 0 on failure/mismatch. + */ +int +jpake_check_confirm(const BIGNUM *k, + const u_char *peer_id, u_int peer_id_len, + const u_char *sess_id, u_int sess_id_len, + const u_char *peer_confirm_hash, u_int peer_confirm_hash_len) +{ + u_char *expected_confirm_hash; + u_int expected_confirm_hash_len; + int success = 0; + + /* Calculate and verify expected confirmation hash */ + jpake_confirm_hash(k, peer_id, peer_id_len, sess_id, sess_id_len, + &expected_confirm_hash, &expected_confirm_hash_len); + + JPAKE_DEBUG_BUF((expected_confirm_hash, expected_confirm_hash_len, + "%s: expected confirm hash", __func__)); + JPAKE_DEBUG_BUF((peer_confirm_hash, peer_confirm_hash_len, + "%s: received confirm hash", __func__)); + + if (peer_confirm_hash_len != expected_confirm_hash_len) + error("%s: confirmation length mismatch (my %u them %u)", + __func__, expected_confirm_hash_len, peer_confirm_hash_len); + else if (memcmp(peer_confirm_hash, expected_confirm_hash, + expected_confirm_hash_len) == 0) + success = 1; + bzero(expected_confirm_hash, expected_confirm_hash_len); + xfree(expected_confirm_hash); + debug3("%s: success = %d", __func__, success); + return success; +} + +/* XXX main() function with tests */ + +#endif /* JPAKE */ + diff --git a/jpake.h b/jpake.h new file mode 100644 index 000000000..a3d800cd3 --- /dev/null +++ b/jpake.h @@ -0,0 +1,134 @@ +/* $OpenBSD: jpake.h,v 1.1 2008/11/04 08:22:13 djm Exp $ */ +/* + * Copyright (c) 2008 Damien Miller. All rights reserved. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef JPAKE_H +#define JPAKE_H + +#include + +#include + +/* Set JPAKE_DEBUG in CFLAGS for privacy-violating debugging */ +#ifndef JPAKE_DEBUG +# define JPAKE_DEBUG_BN(a) +# define JPAKE_DEBUG_BUF(a) +# define JPAKE_DEBUG_CTX(a) +#else +# define JPAKE_DEBUG_BN(a) jpake_debug3_bn a +# define JPAKE_DEBUG_BUF(a) jpake_debug3_buf a +# define JPAKE_DEBUG_CTX(a) jpake_dump a +#endif /* SCHNORR_DEBUG */ + +struct jpake_group { + BIGNUM *p, *q, *g; +}; + +#define KZP_ID_LEN 16 /* Length of client and server IDs */ + +struct jpake_ctx { + /* Parameters */ + struct jpake_group *grp; + + /* Private values shared by client and server */ + BIGNUM *s; /* Secret (salted, crypted password) */ + BIGNUM *k; /* Derived key */ + + /* Client private values (NULL for server) */ + BIGNUM *x1; /* random in Zq */ + BIGNUM *x2; /* random in Z*q */ + + /* Server private values (NULL for server) */ + BIGNUM *x3; /* random in Zq */ + BIGNUM *x4; /* random in Z*q */ + + /* Step 1: C->S */ + u_char *client_id; /* Anti-replay nonce */ + u_int client_id_len; + BIGNUM *g_x1; /* g^x1 */ + BIGNUM *g_x2; /* g^x2 */ + + /* Step 1: S->C */ + u_char *server_id; /* Anti-replay nonce */ + u_int server_id_len; + BIGNUM *g_x3; /* g^x3 */ + BIGNUM *g_x4; /* g^x4 */ + + /* Step 2: C->S */ + BIGNUM *a; /* g^((x1+x3+x4)*x2*s) */ + + /* Step 2: S->C */ + BIGNUM *b; /* g^((x1+x2+x3)*x4*s) */ + + /* Confirmation: C->S */ + u_char *h_k_cid_sessid; /* H(k || client_id || session_id) */ + u_int h_k_cid_sessid_len; + + /* Confirmation: S->C */ + u_char *h_k_sid_sessid; /* H(k || server_id || session_id) */ + u_int h_k_sid_sessid_len; +}; + +/* jpake.c */ +struct jpake_group *jpake_default_group(void); +BIGNUM *bn_rand_range_gt_one(const BIGNUM *high); +int hash_buffer(const u_char *, u_int, const EVP_MD *, u_char **, u_int *); +void jpake_debug3_bn(const BIGNUM *, const char *, ...) + __attribute__((__nonnull__ (2))) + __attribute__((format(printf, 2, 3))); +void jpake_debug3_buf(const u_char *, u_int, const char *, ...) + __attribute__((__nonnull__ (3))) + __attribute__((format(printf, 3, 4))); +void jpake_dump(struct jpake_ctx *, const char *, ...) + __attribute__((__nonnull__ (2))) + __attribute__((format(printf, 2, 3))); +struct jpake_ctx *jpake_new(void); +void jpake_free(struct jpake_ctx *); + +void jpake_step1(struct jpake_group *, u_char **, u_int *, + BIGNUM **, BIGNUM **, BIGNUM **, BIGNUM **, + u_char **, u_int *, u_char **, u_int *); + +void jpake_step2(struct jpake_group *, BIGNUM *, + BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, + const u_char *, u_int, const u_char *, u_int, + const u_char *, u_int, const u_char *, u_int, + BIGNUM **, u_char **, u_int *); + +void jpake_confirm_hash(const BIGNUM *, + const u_char *, u_int, + const u_char *, u_int, + u_char **, u_int *); + +void jpake_key_confirm(struct jpake_group *, BIGNUM *, BIGNUM *, + BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, + const u_char *, u_int, const u_char *, u_int, + const u_char *, u_int, const u_char *, u_int, + BIGNUM **, u_char **, u_int *); + +int jpake_check_confirm(const BIGNUM *, const u_char *, u_int, + const u_char *, u_int, const u_char *, u_int); + +/* schnorr.c */ +int schnorr_sign(const BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, const BIGNUM *, const u_char *, u_int , + u_char **, u_int *); +int schnorr_verify(const BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, const u_char *, u_int, + const u_char *, u_int); + +#endif /* JPAKE_H */ + diff --git a/monitor.c b/monitor.c index 73cf6bc9b..39deedc8f 100644 --- a/monitor.c +++ b/monitor.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor.c,v 1.99 2008/07/10 18:08:11 markus Exp $ */ +/* $OpenBSD: monitor.c,v 1.100 2008/11/04 08:22:13 djm Exp $ */ /* * Copyright 2002 Niels Provos * Copyright 2002 Markus Friedl @@ -87,6 +87,7 @@ #include "misc.h" #include "compat.h" #include "ssh2.h" +#include "jpake.h" #ifdef GSSAPI static Gssctxt *gsscontext = NULL; @@ -149,6 +150,11 @@ int mm_answer_rsa_challenge(int, Buffer *); int mm_answer_rsa_response(int, Buffer *); int mm_answer_sesskey(int, Buffer *); int mm_answer_sessid(int, Buffer *); +int mm_answer_jpake_get_pwdata(int, Buffer *); +int mm_answer_jpake_step1(int, Buffer *); +int mm_answer_jpake_step2(int, Buffer *); +int mm_answer_jpake_key_confirm(int, Buffer *); +int mm_answer_jpake_check_confirm(int, Buffer *); #ifdef USE_PAM int mm_answer_pam_start(int, Buffer *); @@ -233,6 +239,13 @@ struct mon_table mon_dispatch_proto20[] = { {MONITOR_REQ_GSSSTEP, MON_ISAUTH, mm_answer_gss_accept_ctx}, {MONITOR_REQ_GSSUSEROK, MON_AUTH, mm_answer_gss_userok}, {MONITOR_REQ_GSSCHECKMIC, MON_ISAUTH, mm_answer_gss_checkmic}, +#endif +#ifdef JPAKE + {MONITOR_REQ_JPAKE_GET_PWDATA, MON_ONCE, mm_answer_jpake_get_pwdata}, + {MONITOR_REQ_JPAKE_STEP1, MON_ISAUTH, mm_answer_jpake_step1}, + {MONITOR_REQ_JPAKE_STEP2, MON_ONCE, mm_answer_jpake_step2}, + {MONITOR_REQ_JPAKE_KEY_CONFIRM, MON_ONCE, mm_answer_jpake_key_confirm}, + {MONITOR_REQ_JPAKE_CHECK_CONFIRM, MON_AUTH, mm_answer_jpake_check_confirm}, #endif {0, 0, NULL} }; @@ -379,6 +392,15 @@ monitor_child_preauth(Authctxt *_authctxt, struct monitor *pmonitor) if (!authenticated) authctxt->failures++; } +#ifdef JPAKE + /* Cleanup JPAKE context after authentication */ + if (ent->flags & MON_AUTHDECIDE) { + if (authctxt->jpake_ctx != NULL) { + jpake_free(authctxt->jpake_ctx); + authctxt->jpake_ctx = NULL; + } + } +#endif } if (!authctxt->valid) @@ -1969,3 +1991,206 @@ mm_answer_gss_userok(int sock, Buffer *m) return (authenticated); } #endif /* GSSAPI */ + +#ifdef JPAKE +int +mm_answer_jpake_step1(int sock, Buffer *m) +{ + struct jpake_ctx *pctx; + u_char *x3_proof, *x4_proof; + u_int x3_proof_len, x4_proof_len; + + if (!options.zero_knowledge_password_authentication) + fatal("zero_knowledge_password_authentication disabled"); + + if (authctxt->jpake_ctx != NULL) + fatal("%s: authctxt->jpake_ctx already set (%p)", + __func__, authctxt->jpake_ctx); + authctxt->jpake_ctx = pctx = jpake_new(); + + jpake_step1(pctx->grp, + &pctx->server_id, &pctx->server_id_len, + &pctx->x3, &pctx->x4, &pctx->g_x3, &pctx->g_x4, + &x3_proof, &x3_proof_len, + &x4_proof, &x4_proof_len); + + JPAKE_DEBUG_CTX((pctx, "step1 done in %s", __func__)); + + buffer_clear(m); + + buffer_put_string(m, pctx->server_id, pctx->server_id_len); + buffer_put_bignum2(m, pctx->g_x3); + buffer_put_bignum2(m, pctx->g_x4); + buffer_put_string(m, x3_proof, x3_proof_len); + buffer_put_string(m, x4_proof, x4_proof_len); + + debug3("%s: sending step1", __func__); + mm_request_send(sock, MONITOR_ANS_JPAKE_STEP1, m); + + bzero(x3_proof, x3_proof_len); + bzero(x4_proof, x4_proof_len); + xfree(x3_proof); + xfree(x4_proof); + + monitor_permit(mon_dispatch, MONITOR_REQ_JPAKE_GET_PWDATA, 1); + monitor_permit(mon_dispatch, MONITOR_REQ_JPAKE_STEP1, 0); + + return 0; +} + +int +mm_answer_jpake_get_pwdata(int sock, Buffer *m) +{ + struct jpake_ctx *pctx = authctxt->jpake_ctx; + char *hash_scheme, *salt; + + if (pctx == NULL) + fatal("%s: pctx == NULL", __func__); + + auth2_jpake_get_pwdata(authctxt, &pctx->s, &hash_scheme, &salt); + + buffer_clear(m); + /* pctx->s is sensitive, not returned to slave */ + buffer_put_cstring(m, hash_scheme); + buffer_put_cstring(m, salt); + + debug3("%s: sending pwdata", __func__); + mm_request_send(sock, MONITOR_ANS_JPAKE_GET_PWDATA, m); + + bzero(hash_scheme, strlen(hash_scheme)); + bzero(salt, strlen(salt)); + xfree(hash_scheme); + xfree(salt); + + monitor_permit(mon_dispatch, MONITOR_REQ_JPAKE_STEP2, 1); + + return 0; +} + +int +mm_answer_jpake_step2(int sock, Buffer *m) +{ + struct jpake_ctx *pctx = authctxt->jpake_ctx; + u_char *x1_proof, *x2_proof, *x4_s_proof; + u_int x1_proof_len, x2_proof_len, x4_s_proof_len; + + if (pctx == NULL) + fatal("%s: pctx == NULL", __func__); + + if ((pctx->g_x1 = BN_new()) == NULL || + (pctx->g_x2 = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + buffer_get_bignum2(m, pctx->g_x1); + buffer_get_bignum2(m, pctx->g_x2); + pctx->client_id = buffer_get_string(m, &pctx->client_id_len); + x1_proof = buffer_get_string(m, &x1_proof_len); + x2_proof = buffer_get_string(m, &x2_proof_len); + + jpake_step2(pctx->grp, pctx->s, pctx->g_x3, + pctx->g_x1, pctx->g_x2, pctx->x4, + pctx->client_id, pctx->client_id_len, + pctx->server_id, pctx->server_id_len, + x1_proof, x1_proof_len, + x2_proof, x2_proof_len, + &pctx->b, + &x4_s_proof, &x4_s_proof_len); + + JPAKE_DEBUG_CTX((pctx, "step2 done in %s", __func__)); + + bzero(x1_proof, x1_proof_len); + bzero(x2_proof, x2_proof_len); + xfree(x1_proof); + xfree(x2_proof); + + buffer_clear(m); + + buffer_put_bignum2(m, pctx->b); + buffer_put_string(m, x4_s_proof, x4_s_proof_len); + + debug3("%s: sending step2", __func__); + mm_request_send(sock, MONITOR_ANS_JPAKE_STEP2, m); + + bzero(x4_s_proof, x4_s_proof_len); + xfree(x4_s_proof); + + monitor_permit(mon_dispatch, MONITOR_REQ_JPAKE_KEY_CONFIRM, 1); + + return 0; +} + +int +mm_answer_jpake_key_confirm(int sock, Buffer *m) +{ + struct jpake_ctx *pctx = authctxt->jpake_ctx; + u_char *x2_s_proof; + u_int x2_s_proof_len; + + if (pctx == NULL) + fatal("%s: pctx == NULL", __func__); + + if ((pctx->a = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + buffer_get_bignum2(m, pctx->a); + x2_s_proof = buffer_get_string(m, &x2_s_proof_len); + + jpake_key_confirm(pctx->grp, pctx->s, pctx->a, + pctx->x4, pctx->g_x3, pctx->g_x4, pctx->g_x1, pctx->g_x2, + pctx->server_id, pctx->server_id_len, + pctx->client_id, pctx->client_id_len, + session_id2, session_id2_len, + x2_s_proof, x2_s_proof_len, + &pctx->k, + &pctx->h_k_sid_sessid, &pctx->h_k_sid_sessid_len); + + JPAKE_DEBUG_CTX((pctx, "key_confirm done in %s", __func__)); + + bzero(x2_s_proof, x2_s_proof_len); + buffer_clear(m); + + /* pctx->k is sensitive, not sent */ + buffer_put_string(m, pctx->h_k_sid_sessid, pctx->h_k_sid_sessid_len); + + debug3("%s: sending confirmation hash", __func__); + mm_request_send(sock, MONITOR_ANS_JPAKE_KEY_CONFIRM, m); + + monitor_permit(mon_dispatch, MONITOR_REQ_JPAKE_CHECK_CONFIRM, 1); + + return 0; +} + +int +mm_answer_jpake_check_confirm(int sock, Buffer *m) +{ + int authenticated = 0; + u_char *peer_confirm_hash; + u_int peer_confirm_hash_len; + struct jpake_ctx *pctx = authctxt->jpake_ctx; + + if (pctx == NULL) + fatal("%s: pctx == NULL", __func__); + + peer_confirm_hash = buffer_get_string(m, &peer_confirm_hash_len); + + authenticated = jpake_check_confirm(pctx->k, + pctx->client_id, pctx->client_id_len, + session_id2, session_id2_len, + peer_confirm_hash, peer_confirm_hash_len) && authctxt->valid; + + JPAKE_DEBUG_CTX((pctx, "check_confirm done in %s", __func__)); + + bzero(peer_confirm_hash, peer_confirm_hash_len); + xfree(peer_confirm_hash); + + buffer_clear(m); + buffer_put_int(m, authenticated); + + debug3("%s: sending result %d", __func__, authenticated); + mm_request_send(sock, MONITOR_ANS_JPAKE_CHECK_CONFIRM, m); + + monitor_permit(mon_dispatch, MONITOR_REQ_JPAKE_STEP1, 1); + + auth_method = "jpake-01@openssh.com"; + return authenticated; +} + +#endif /* JPAKE */ diff --git a/monitor.h b/monitor.h index 464009ad8..a8a2c0c19 100644 --- a/monitor.h +++ b/monitor.h @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor.h,v 1.14 2006/03/25 22:22:43 djm Exp $ */ +/* $OpenBSD: monitor.h,v 1.15 2008/11/04 08:22:13 djm Exp $ */ /* * Copyright 2002 Niels Provos @@ -60,7 +60,12 @@ enum monitor_reqtype { MONITOR_REQ_PAM_RESPOND, MONITOR_ANS_PAM_RESPOND, MONITOR_REQ_PAM_FREE_CTX, MONITOR_ANS_PAM_FREE_CTX, MONITOR_REQ_AUDIT_EVENT, MONITOR_REQ_AUDIT_COMMAND, - MONITOR_REQ_TERM + MONITOR_REQ_TERM, + MONITOR_REQ_JPAKE_STEP1, MONITOR_ANS_JPAKE_STEP1, + MONITOR_REQ_JPAKE_GET_PWDATA, MONITOR_ANS_JPAKE_GET_PWDATA, + MONITOR_REQ_JPAKE_STEP2, MONITOR_ANS_JPAKE_STEP2, + MONITOR_REQ_JPAKE_KEY_CONFIRM, MONITOR_ANS_JPAKE_KEY_CONFIRM, + MONITOR_REQ_JPAKE_CHECK_CONFIRM, MONITOR_ANS_JPAKE_CHECK_CONFIRM, }; struct mm_master; diff --git a/monitor_wrap.c b/monitor_wrap.c index 40463d078..0986fc518 100644 --- a/monitor_wrap.c +++ b/monitor_wrap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor_wrap.c,v 1.63 2008/07/10 18:08:11 markus Exp $ */ +/* $OpenBSD: monitor_wrap.c,v 1.64 2008/11/04 08:22:13 djm Exp $ */ /* * Copyright 2002 Niels Provos * Copyright 2002 Markus Friedl @@ -40,6 +40,7 @@ #include #include +#include #include "openbsd-compat/sys-queue.h" #include "xmalloc.h" @@ -70,7 +71,7 @@ #include "atomicio.h" #include "monitor_fdpass.h" #include "misc.h" -#include "servconf.h" +#include "jpake.h" #include "channels.h" #include "session.h" @@ -1256,3 +1257,165 @@ mm_ssh_gssapi_userok(char *user) return (authenticated); } #endif /* GSSAPI */ + +#ifdef JPAKE +void +mm_auth2_jpake_get_pwdata(Authctxt *authctxt, BIGNUM **s, + char **hash_scheme, char **salt) +{ + Buffer m; + + debug3("%s entering", __func__); + + buffer_init(&m); + mm_request_send(pmonitor->m_recvfd, + MONITOR_REQ_JPAKE_GET_PWDATA, &m); + + debug3("%s: waiting for MONITOR_ANS_JPAKE_GET_PWDATA", __func__); + mm_request_receive_expect(pmonitor->m_recvfd, + MONITOR_ANS_JPAKE_GET_PWDATA, &m); + + *hash_scheme = buffer_get_string(&m, NULL); + *salt = buffer_get_string(&m, NULL); + + buffer_free(&m); +} + +void +mm_jpake_step1(struct jpake_group *grp, + u_char **id, u_int *id_len, + BIGNUM **priv1, BIGNUM **priv2, BIGNUM **g_priv1, BIGNUM **g_priv2, + u_char **priv1_proof, u_int *priv1_proof_len, + u_char **priv2_proof, u_int *priv2_proof_len) +{ + Buffer m; + + debug3("%s entering", __func__); + + buffer_init(&m); + mm_request_send(pmonitor->m_recvfd, + MONITOR_REQ_JPAKE_STEP1, &m); + + debug3("%s: waiting for MONITOR_ANS_JPAKE_STEP1", __func__); + mm_request_receive_expect(pmonitor->m_recvfd, + MONITOR_ANS_JPAKE_STEP1, &m); + + if ((*priv1 = BN_new()) == NULL || + (*priv2 = BN_new()) == NULL || + (*g_priv1 = BN_new()) == NULL || + (*g_priv2 = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + + *id = buffer_get_string(&m, id_len); + /* priv1 and priv2 are, well, private */ + buffer_get_bignum2(&m, *g_priv1); + buffer_get_bignum2(&m, *g_priv2); + *priv1_proof = buffer_get_string(&m, priv1_proof_len); + *priv2_proof = buffer_get_string(&m, priv2_proof_len); + + buffer_free(&m); +} + +void +mm_jpake_step2(struct jpake_group *grp, BIGNUM *s, + BIGNUM *mypub1, BIGNUM *theirpub1, BIGNUM *theirpub2, BIGNUM *mypriv2, + const u_char *theirid, u_int theirid_len, + const u_char *myid, u_int myid_len, + const u_char *theirpub1_proof, u_int theirpub1_proof_len, + const u_char *theirpub2_proof, u_int theirpub2_proof_len, + BIGNUM **newpub, + u_char **newpub_exponent_proof, u_int *newpub_exponent_proof_len) +{ + Buffer m; + + debug3("%s entering", __func__); + + buffer_init(&m); + /* monitor already has all bignums except theirpub1, theirpub2 */ + buffer_put_bignum2(&m, theirpub1); + buffer_put_bignum2(&m, theirpub2); + /* monitor already knows our id */ + buffer_put_string(&m, theirid, theirid_len); + buffer_put_string(&m, theirpub1_proof, theirpub1_proof_len); + buffer_put_string(&m, theirpub2_proof, theirpub2_proof_len); + + mm_request_send(pmonitor->m_recvfd, + MONITOR_REQ_JPAKE_STEP2, &m); + + debug3("%s: waiting for MONITOR_ANS_JPAKE_STEP2", __func__); + mm_request_receive_expect(pmonitor->m_recvfd, + MONITOR_ANS_JPAKE_STEP2, &m); + + if ((*newpub = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + + buffer_get_bignum2(&m, *newpub); + *newpub_exponent_proof = buffer_get_string(&m, + newpub_exponent_proof_len); + + buffer_free(&m); +} + +void +mm_jpake_key_confirm(struct jpake_group *grp, BIGNUM *s, BIGNUM *step2_val, + BIGNUM *mypriv2, BIGNUM *mypub1, BIGNUM *mypub2, + BIGNUM *theirpub1, BIGNUM *theirpub2, + const u_char *my_id, u_int my_id_len, + const u_char *their_id, u_int their_id_len, + const u_char *sess_id, u_int sess_id_len, + const u_char *theirpriv2_s_proof, u_int theirpriv2_s_proof_len, + BIGNUM **k, + u_char **confirm_hash, u_int *confirm_hash_len) +{ + Buffer m; + + debug3("%s entering", __func__); + + buffer_init(&m); + /* monitor already has all bignums except step2_val */ + buffer_put_bignum2(&m, step2_val); + /* monitor already knows all the ids */ + buffer_put_string(&m, theirpriv2_s_proof, theirpriv2_s_proof_len); + + mm_request_send(pmonitor->m_recvfd, + MONITOR_REQ_JPAKE_KEY_CONFIRM, &m); + + debug3("%s: waiting for MONITOR_ANS_JPAKE_KEY_CONFIRM", __func__); + mm_request_receive_expect(pmonitor->m_recvfd, + MONITOR_ANS_JPAKE_KEY_CONFIRM, &m); + + /* 'k' is sensitive and stays in the monitor */ + *confirm_hash = buffer_get_string(&m, confirm_hash_len); + + buffer_free(&m); +} + +int +mm_jpake_check_confirm(const BIGNUM *k, + const u_char *peer_id, u_int peer_id_len, + const u_char *sess_id, u_int sess_id_len, + const u_char *peer_confirm_hash, u_int peer_confirm_hash_len) +{ + Buffer m; + int success = 0; + + debug3("%s entering", __func__); + + buffer_init(&m); + /* k is dummy in slave, ignored */ + /* monitor knows all the ids */ + buffer_put_string(&m, peer_confirm_hash, peer_confirm_hash_len); + mm_request_send(pmonitor->m_recvfd, + MONITOR_REQ_JPAKE_CHECK_CONFIRM, &m); + + debug3("%s: waiting for MONITOR_ANS_JPAKE_CHECK_CONFIRM", __func__); + mm_request_receive_expect(pmonitor->m_recvfd, + MONITOR_ANS_JPAKE_CHECK_CONFIRM, &m); + + success = buffer_get_int(&m); + buffer_free(&m); + + debug3("%s: success = %d", __func__, success); + return success; +} +#endif /* JPAKE */ diff --git a/monitor_wrap.h b/monitor_wrap.h index 329189c2a..55c4b99f3 100644 --- a/monitor_wrap.h +++ b/monitor_wrap.h @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor_wrap.h,v 1.20 2006/08/03 03:34:42 deraadt Exp $ */ +/* $OpenBSD: monitor_wrap.h,v 1.21 2008/11/04 08:22:13 djm Exp $ */ /* * Copyright 2002 Niels Provos @@ -101,6 +101,26 @@ int mm_bsdauth_respond(void *, u_int, char **); int mm_skey_query(void *, char **, char **, u_int *, char ***, u_int **); int mm_skey_respond(void *, u_int, char **); +/* jpake */ +struct jpake_group; +void mm_auth2_jpake_get_pwdata(struct Authctxt *, BIGNUM **, char **, char **); +void mm_jpake_step1(struct jpake_group *, u_char **, u_int *, + BIGNUM **, BIGNUM **, BIGNUM **, BIGNUM **, + u_char **, u_int *, u_char **, u_int *); +void mm_jpake_step2(struct jpake_group *, BIGNUM *, + BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, + const u_char *, u_int, const u_char *, u_int, + const u_char *, u_int, const u_char *, u_int, + BIGNUM **, u_char **, u_int *); +void mm_jpake_key_confirm(struct jpake_group *, BIGNUM *, BIGNUM *, + BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, + const u_char *, u_int, const u_char *, u_int, + const u_char *, u_int, const u_char *, u_int, + BIGNUM **, u_char **, u_int *); +int mm_jpake_check_confirm(const BIGNUM *, + const u_char *, u_int, const u_char *, u_int, const u_char *, u_int); + + /* zlib allocation hooks */ void *mm_zalloc(struct mm_master *, u_int, u_int); diff --git a/readconf.c b/readconf.c index 7f7bbfee2..ba70d9da0 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.170 2008/11/03 02:44:41 stevesk Exp $ */ +/* $OpenBSD: readconf.c,v 1.171 2008/11/04 08:22:13 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -130,7 +130,7 @@ typedef enum { oServerAliveInterval, oServerAliveCountMax, oIdentitiesOnly, oSendEnv, oControlPath, oControlMaster, oHashKnownHosts, oTunnel, oTunnelDevice, oLocalCommand, oPermitLocalCommand, - oVisualHostKey, + oVisualHostKey, oZeroKnowledgePasswordAuthentication, oDeprecated, oUnsupported } OpCodes; @@ -228,6 +228,13 @@ static struct { { "localcommand", oLocalCommand }, { "permitlocalcommand", oPermitLocalCommand }, { "visualhostkey", oVisualHostKey }, +#ifdef JPAKE + { "zeroknowledgepasswordauthentication", + oZeroKnowledgePasswordAuthentication }, +#else + { "zeroknowledgepasswordauthentication", oUnsupported }, +#endif + { NULL, oBadOption } }; @@ -412,6 +419,10 @@ parse_flag: intptr = &options->password_authentication; goto parse_flag; + case oZeroKnowledgePasswordAuthentication: + intptr = &options->zero_knowledge_password_authentication; + goto parse_flag; + case oKbdInteractiveAuthentication: intptr = &options->kbd_interactive_authentication; goto parse_flag; @@ -1054,6 +1065,7 @@ initialize_options(Options * options) options->local_command = NULL; options->permit_local_command = -1; options->visual_host_key = -1; + options->zero_knowledge_password_authentication = -1; } /* @@ -1190,6 +1202,8 @@ fill_default_options(Options * options) options->permit_local_command = 0; if (options->visual_host_key == -1) options->visual_host_key = 0; + if (options->zero_knowledge_password_authentication == -1) + options->zero_knowledge_password_authentication = 0; /* options->local_command should not be set by default */ /* options->proxy_command should not be set by default */ /* options->user will be set in the main program if appropriate */ diff --git a/readconf.h b/readconf.h index c1387a896..c9e5f6a41 100644 --- a/readconf.h +++ b/readconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.h,v 1.75 2008/11/01 17:40:33 stevesk Exp $ */ +/* $OpenBSD: readconf.h,v 1.76 2008/11/04 08:22:13 djm Exp $ */ /* * Author: Tatu Ylonen @@ -49,6 +49,7 @@ typedef struct { * authentication. */ int kbd_interactive_authentication; /* Try keyboard-interactive auth. */ char *kbd_interactive_devices; /* Keyboard-interactive auth devices. */ + int zero_knowledge_password_authentication; /* Try jpake */ int batch_mode; /* Batch mode: do not ask for passwords. */ int check_host_ip; /* Also keep track of keys for IP address */ int strict_host_key_checking; /* Strict host key checking. */ diff --git a/schnorr.c b/schnorr.c new file mode 100644 index 000000000..e3abe5702 --- /dev/null +++ b/schnorr.c @@ -0,0 +1,407 @@ +/* $OpenBSD: schnorr.c,v 1.1 2008/11/04 08:22:13 djm Exp $ */ +/* + * Copyright (c) 2008 Damien Miller. All rights reserved. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +/* + * Implementation of Schnorr signatures / zero-knowledge proofs, based on + * description in: + * + * F. Hao, P. Ryan, "Password Authenticated Key Exchange by Juggling", + * 16th Workshop on Security Protocols, Cambridge, April 2008 + * + * http://grouper.ieee.org/groups/1363/Research/contributions/hao-ryan-2008.pdf + */ + +#include "includes.h" + +#include + +#include +#include +#include + +#include +#include + +#include "xmalloc.h" +#include "buffer.h" +#include "log.h" + +#include "jpake.h" + +/* #define SCHNORR_DEBUG */ /* Privacy-violating debugging */ +/* #define SCHNORR_MAIN */ /* Include main() selftest */ + +/* XXX */ +/* Parametise signature hash? (sha256, sha1, etc.) */ +/* Signature format - include type name, hash type, group params? */ + +#ifndef SCHNORR_DEBUG +# define SCHNORR_DEBUG_BN(a) +# define SCHNORR_DEBUG_BUF(a) +#else +# define SCHNORR_DEBUG_BN(a) jpake_debug3_bn a +# define SCHNORR_DEBUG_BUF(a) jpake_debug3_buf a +#endif /* SCHNORR_DEBUG */ + +/* + * Calculate hash component of Schnorr signature H(g || g^v || g^x || id) + * using SHA1. Returns signature as bignum or NULL on error. + */ +static BIGNUM * +schnorr_hash(const BIGNUM *p, const BIGNUM *q, const BIGNUM *g, + const BIGNUM *g_v, const BIGNUM *g_x, + const u_char *id, u_int idlen) +{ + u_char *digest; + u_int digest_len; + BIGNUM *h; + EVP_MD_CTX evp_md_ctx; + Buffer b; + int success = -1; + + if ((h = BN_new()) == NULL) { + error("%s: BN_new", __func__); + return NULL; + } + + buffer_init(&b); + EVP_MD_CTX_init(&evp_md_ctx); + + /* h = H(g || g^v || g^x || id) */ + buffer_put_bignum2(&b, g); + buffer_put_bignum2(&b, g_v); + buffer_put_bignum2(&b, g_x); + buffer_put_string(&b, id, idlen); + + SCHNORR_DEBUG_BUF((buffer_ptr(&b), buffer_len(&b), + "%s: hashblob", __func__)); + if (hash_buffer(buffer_ptr(&b), buffer_len(&b), EVP_sha256(), + &digest, &digest_len) != 0) { + error("%s: hash_buffer", __func__); + goto out; + } + if (BN_bin2bn(digest, (int)digest_len, h) == NULL) { + error("%s: BN_bin2bn", __func__); + goto out; + } + success = 0; + SCHNORR_DEBUG_BN((h, "%s: h = ", __func__)); + out: + buffer_free(&b); + EVP_MD_CTX_cleanup(&evp_md_ctx); + bzero(digest, digest_len); + xfree(digest); + digest_len = 0; + if (success == 0) + return h; + BN_clear_free(h); + return NULL; +} + +/* + * Generate Schnorr signature to prove knowledge of private value 'x' used + * in public exponent g^x, under group defined by 'grp_p', 'grp_q' and 'grp_g' + * 'idlen' bytes from 'id' will be included in the signature hash as an anti- + * replay salt. + * On success, 0 is returned and *siglen bytes of signature are returned in + * *sig (caller to free). Returns -1 on failure. + */ +int +schnorr_sign(const BIGNUM *grp_p, const BIGNUM *grp_q, const BIGNUM *grp_g, + const BIGNUM *x, const BIGNUM *g_x, const u_char *id, u_int idlen, + u_char **sig, u_int *siglen) +{ + int success = -1; + Buffer b; + BIGNUM *h, *tmp, *v, *g_v, *r; + BN_CTX *bn_ctx; + + SCHNORR_DEBUG_BN((x, "%s: x = ", __func__)); + SCHNORR_DEBUG_BN((g_x, "%s: g_x = ", __func__)); + + /* Avoid degenerate cases: g^0 yields a spoofable signature */ + if (BN_cmp(g_x, BN_value_one()) <= 0) { + error("%s: g_x < 1", __func__); + return -1; + } + + h = g_v = r = tmp = v = NULL; + if ((bn_ctx = BN_CTX_new()) == NULL) { + error("%s: BN_CTX_new", __func__); + goto out; + } + if ((g_v = BN_new()) == NULL || + (r = BN_new()) == NULL || + (tmp = BN_new()) == NULL) { + error("%s: BN_new", __func__); + goto out; + } + + /* + * v must be a random element of Zq, so 1 <= v < q + * we also exclude v = 1, since g^1 looks dangerous + */ + if ((v = bn_rand_range_gt_one(grp_p)) == NULL) { + error("%s: bn_rand_range2", __func__); + goto out; + } + SCHNORR_DEBUG_BN((v, "%s: v = ", __func__)); + + /* g_v = g^v mod p */ + if (BN_mod_exp(g_v, grp_g, v, grp_p, bn_ctx) == -1) { + error("%s: BN_mod_exp (g^v mod p)", __func__); + goto out; + } + SCHNORR_DEBUG_BN((g_v, "%s: g_v = ", __func__)); + + /* h = H(g || g^v || g^x || id) */ + if ((h = schnorr_hash(grp_p, grp_q, grp_g, g_v, g_x, + id, idlen)) == NULL) { + error("%s: schnorr_hash failed", __func__); + goto out; + } + + /* r = v - xh mod q */ + if (BN_mod_mul(tmp, x, h, grp_q, bn_ctx) == -1) { + error("%s: BN_mod_mul (tmp = xv mod q)", __func__); + goto out; + } + if (BN_mod_sub(r, v, tmp, grp_q, bn_ctx) == -1) { + error("%s: BN_mod_mul (r = v - tmp)", __func__); + goto out; + } + SCHNORR_DEBUG_BN((r, "%s: r = ", __func__)); + + /* Signature is (g_v, r) */ + buffer_init(&b); + /* XXX sigtype-hash as string? */ + buffer_put_bignum2(&b, g_v); + buffer_put_bignum2(&b, r); + *siglen = buffer_len(&b); + *sig = xmalloc(*siglen); + memcpy(*sig, buffer_ptr(&b), *siglen); + SCHNORR_DEBUG_BUF((buffer_ptr(&b), buffer_len(&b), + "%s: sigblob", __func__)); + buffer_free(&b); + success = 0; + out: + BN_CTX_free(bn_ctx); + if (h != NULL) + BN_clear_free(h); + if (v != NULL) + BN_clear_free(v); + BN_clear_free(r); + BN_clear_free(g_v); + BN_clear_free(tmp); + + return success; +} + +/* + * Verify Schnorr signature 'sig' of length 'siglen' against public exponent + * g_x (g^x) under group defined by 'grp_p', 'grp_q' and 'grp_g'. + * Signature hash will be salted with 'idlen' bytes from 'id'. + * Returns -1 on failure, 0 on incorrect signature or 1 on matching signature. + */ +int +schnorr_verify(const BIGNUM *grp_p, const BIGNUM *grp_q, const BIGNUM *grp_g, + const BIGNUM *g_x, const u_char *id, u_int idlen, + const u_char *sig, u_int siglen) +{ + int success = -1; + Buffer b; + BIGNUM *g_v, *h, *r, *g_xh, *g_r, *expected; + BN_CTX *bn_ctx; + u_int rlen; + + SCHNORR_DEBUG_BN((g_x, "%s: g_x = ", __func__)); + + /* Avoid degenerate cases: g^0 yields a spoofable signature */ + if (BN_cmp(g_x, BN_value_one()) <= 0) { + error("%s: g_x < 1", __func__); + return -1; + } + + g_v = h = r = g_xh = g_r = expected = NULL; + if ((bn_ctx = BN_CTX_new()) == NULL) { + error("%s: BN_CTX_new", __func__); + goto out; + } + if ((g_v = BN_new()) == NULL || + (r = BN_new()) == NULL || + (g_xh = BN_new()) == NULL || + (g_r = BN_new()) == NULL || + (expected = BN_new()) == NULL) { + error("%s: BN_new", __func__); + goto out; + } + + /* Extract g^v and r from signature blob */ + buffer_init(&b); + buffer_append(&b, sig, siglen); + SCHNORR_DEBUG_BUF((buffer_ptr(&b), buffer_len(&b), + "%s: sigblob", __func__)); + buffer_get_bignum2(&b, g_v); + buffer_get_bignum2(&b, r); + rlen = buffer_len(&b); + buffer_free(&b); + if (rlen != 0) { + error("%s: remaining bytes in signature %d", __func__, rlen); + goto out; + } + buffer_free(&b); + SCHNORR_DEBUG_BN((g_v, "%s: g_v = ", __func__)); + SCHNORR_DEBUG_BN((r, "%s: r = ", __func__)); + + /* h = H(g || g^v || g^x || id) */ + if ((h = schnorr_hash(grp_p, grp_q, grp_g, g_v, g_x, + id, idlen)) == NULL) { + error("%s: schnorr_hash failed", __func__); + goto out; + } + + /* g_xh = (g^x)^h */ + if (BN_mod_exp(g_xh, g_x, h, grp_p, bn_ctx) == -1) { + error("%s: BN_mod_exp (g_x^h mod p)", __func__); + goto out; + } + SCHNORR_DEBUG_BN((g_xh, "%s: g_xh = ", __func__)); + + /* g_r = g^r */ + if (BN_mod_exp(g_r, grp_g, r, grp_p, bn_ctx) == -1) { + error("%s: BN_mod_exp (g_x^h mod p)", __func__); + goto out; + } + SCHNORR_DEBUG_BN((g_r, "%s: g_r = ", __func__)); + + /* expected = g^r * g_xh */ + if (BN_mod_mul(expected, g_r, g_xh, grp_p, bn_ctx) == -1) { + error("%s: BN_mod_mul (expected = g_r mod p)", __func__); + goto out; + } + SCHNORR_DEBUG_BN((expected, "%s: expected = ", __func__)); + + /* Check g_v == expected */ + success = BN_cmp(expected, g_v) == 0; + out: + BN_CTX_free(bn_ctx); + if (h != NULL) + BN_clear_free(h); + BN_clear_free(g_v); + BN_clear_free(r); + BN_clear_free(g_xh); + BN_clear_free(g_r); + BN_clear_free(expected); + return success; +} + +#ifdef SCHNORR_MAIN +static void +schnorr_selftest_one(const BIGNUM *grp_p, const BIGNUM *grp_q, + const BIGNUM *grp_g, const BIGNUM *x) +{ + BIGNUM *g_x; + u_char *sig; + u_int siglen; + BN_CTX *bn_ctx; + + if ((bn_ctx = BN_CTX_new()) == NULL) + fatal("%s: BN_CTX_new", __func__); + if ((g_x = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + + if (BN_mod_exp(g_x, grp_g, x, grp_p, bn_ctx) == -1) + fatal("%s: g_x", __func__); + if (schnorr_sign(grp_p, grp_q, grp_g, x, g_x, "junk", 4, &sig, &siglen)) + fatal("%s: schnorr_sign", __func__); + if (schnorr_verify(grp_p, grp_q, grp_g, g_x, "junk", 4, + sig, siglen) != 1) + fatal("%s: verify fail", __func__); + if (schnorr_verify(grp_p, grp_q, grp_g, g_x, "JUNK", 4, + sig, siglen) != 0) + fatal("%s: verify should have failed (bad ID)", __func__); + sig[4] ^= 1; + if (schnorr_verify(grp_p, grp_q, grp_g, g_x, "junk", 4, + sig, siglen) != 0) + fatal("%s: verify should have failed (bit error)", __func__); + xfree(sig); + BN_free(g_x); + BN_CTX_free(bn_ctx); +} + +static void +schnorr_selftest(void) +{ + BIGNUM *x; + struct jpake_group *grp; + u_int i; + char *hh; + + grp = jpake_default_group(); + if ((x = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + SCHNORR_DEBUG_BN((grp->p, "%s: grp->p = ", __func__)); + SCHNORR_DEBUG_BN((grp->q, "%s: grp->q = ", __func__)); + SCHNORR_DEBUG_BN((grp->g, "%s: grp->g = ", __func__)); + + /* [1, 20) */ + for (i = 1; i < 20; i++) { + printf("x = %u\n", i); + fflush(stdout); + if (BN_set_word(x, i) != 1) + fatal("%s: set x word", __func__); + schnorr_selftest_one(grp->p, grp->q, grp->g, x); + } + + /* 100 x random [0, p) */ + for (i = 0; i < 100; i++) { + if (BN_rand_range(x, grp->p) != 1) + fatal("%s: BN_rand_range", __func__); + hh = BN_bn2hex(x); + printf("x = (random) 0x%s\n", hh); + free(hh); + fflush(stdout); + schnorr_selftest_one(grp->p, grp->q, grp->g, x); + } + + /* [q-20, q) */ + if (BN_set_word(x, 20) != 1) + fatal("%s: BN_set_word (x = 20)", __func__); + if (BN_sub(x, grp->q, x) != 1) + fatal("%s: BN_sub (q - x)", __func__); + for (i = 0; i < 19; i++) { + hh = BN_bn2hex(x); + printf("x = (q - %d) 0x%s\n", 20 - i, hh); + free(hh); + fflush(stdout); + schnorr_selftest_one(grp->p, grp->q, grp->g, x); + if (BN_add(x, x, BN_value_one()) != 1) + fatal("%s: BN_add (x + 1)", __func__); + } + BN_free(x); +} + +int +main(int argc, char **argv) +{ + log_init(argv[0], SYSLOG_LEVEL_DEBUG3, SYSLOG_FACILITY_USER, 1); + + schnorr_selftest(); + return 0; +} +#endif + diff --git a/servconf.c b/servconf.c index f2d414334..c7d2d0b94 100644 --- a/servconf.c +++ b/servconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.c,v 1.189 2008/11/03 08:59:41 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.190 2008/11/04 08:22:13 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -127,6 +127,7 @@ initialize_server_options(ServerOptions *options) options->num_permitted_opens = -1; options->adm_forced_command = NULL; options->chroot_directory = NULL; + options->zero_knowledge_password_authentication = -1; } void @@ -258,6 +259,8 @@ fill_default_server_options(ServerOptions *options) options->authorized_keys_file = _PATH_SSH_USER_PERMITTED_KEYS; if (options->permit_tun == -1) options->permit_tun = SSH_TUNMODE_NO; + if (options->zero_knowledge_password_authentication == -1) + options->zero_knowledge_password_authentication = 0; /* Turn privilege separation on by default */ if (use_privsep == -1) @@ -302,6 +305,7 @@ typedef enum { sGssAuthentication, sGssCleanupCreds, sAcceptEnv, sPermitTunnel, sMatch, sPermitOpen, sForceCommand, sChrootDirectory, sUsePrivilegeSeparation, sAllowAgentForwarding, + sZeroKnowledgePasswordAuthentication, sDeprecated, sUnsupported } ServerOpCodes; @@ -368,6 +372,11 @@ static struct { { "kbdinteractiveauthentication", sKbdInteractiveAuthentication, SSHCFG_ALL }, { "challengeresponseauthentication", sChallengeResponseAuthentication, SSHCFG_GLOBAL }, { "skeyauthentication", sChallengeResponseAuthentication, SSHCFG_GLOBAL }, /* alias */ +#ifdef JPAKE + { "zeroknowledgepasswordauthentication", sZeroKnowledgePasswordAuthentication, SSHCFG_ALL }, +#else + { "zeroknowledgepasswordauthentication", sUnsupported, SSHCFG_ALL }, +#endif { "checkmail", sDeprecated, SSHCFG_GLOBAL }, { "listenaddress", sListenAddress, SSHCFG_GLOBAL }, { "addressfamily", sAddressFamily, SSHCFG_GLOBAL }, @@ -890,6 +899,10 @@ process_server_config_line(ServerOptions *options, char *line, intptr = &options->password_authentication; goto parse_flag; + case sZeroKnowledgePasswordAuthentication: + intptr = &options->zero_knowledge_password_authentication; + goto parse_flag; + case sKbdInteractiveAuthentication: intptr = &options->kbd_interactive_authentication; goto parse_flag; @@ -1377,6 +1390,7 @@ copy_set_server_options(ServerOptions *dst, ServerOptions *src, int preauth) M_CP_INTOPT(kerberos_authentication); M_CP_INTOPT(hostbased_authentication); M_CP_INTOPT(kbd_interactive_authentication); + M_CP_INTOPT(zero_knowledge_password_authentication); M_CP_INTOPT(permit_root_login); M_CP_INTOPT(permit_empty_passwd); @@ -1578,6 +1592,10 @@ dump_config(ServerOptions *o) #ifdef GSSAPI dump_cfg_fmtint(sGssAuthentication, o->gss_authentication); dump_cfg_fmtint(sGssCleanupCreds, o->gss_cleanup_creds); +#endif +#ifdef JPAKE + dump_cfg_fmtint(sZeroKnowledgePasswordAuthentication, + o->zero_knowledge_password_authentication); #endif dump_cfg_fmtint(sPasswordAuthentication, o->password_authentication); dump_cfg_fmtint(sKbdInteractiveAuthentication, diff --git a/servconf.h b/servconf.h index 40ac64f13..1d4c3a01a 100644 --- a/servconf.h +++ b/servconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.h,v 1.85 2008/06/10 04:50:25 dtucker Exp $ */ +/* $OpenBSD: servconf.h,v 1.86 2008/11/04 08:22:13 djm Exp $ */ /* * Author: Tatu Ylonen @@ -96,6 +96,8 @@ typedef struct { * authentication. */ int kbd_interactive_authentication; /* If true, permit */ int challenge_response_authentication; + int zero_knowledge_password_authentication; + /* If true, permit jpake auth */ int permit_empty_passwd; /* If false, do not permit empty * passwords. */ int permit_user_env; /* If true, read ~/.ssh/environment */ diff --git a/ssh2.h b/ssh2.h index cf56bc4ee..1c33dc268 100644 --- a/ssh2.h +++ b/ssh2.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh2.h,v 1.10 2006/03/25 22:22:43 djm Exp $ */ +/* $OpenBSD: ssh2.h,v 1.11 2008/11/04 08:22:13 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. @@ -111,6 +111,12 @@ #define SSH2_MSG_USERAUTH_PASSWD_CHANGEREQ 60 #define SSH2_MSG_USERAUTH_INFO_REQUEST 60 #define SSH2_MSG_USERAUTH_INFO_RESPONSE 61 +#define SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP1 60 +#define SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP1 61 +#define SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP2 62 +#define SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP2 63 +#define SSH2_MSG_USERAUTH_JPAKE_CLIENT_CONFIRM 64 +#define SSH2_MSG_USERAUTH_JPAKE_SERVER_CONFIRM 65 /* connection protocol: generic */ @@ -159,3 +165,4 @@ #define SSH2_OPEN_RESOURCE_SHORTAGE 4 #define SSH2_EXTENDED_DATA_STDERR 1 + diff --git a/ssh_config.5 b/ssh_config.5 index 254940ef8..abc3b0b16 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.114 2008/10/17 18:36:24 stevesk Exp $ -.Dd $Mdocdate: October 17 2008 $ +.\" $OpenBSD: ssh_config.5,v 1.115 2008/11/04 08:22:13 djm Exp $ +.Dd $Mdocdate: November 4 2008 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -1079,6 +1079,17 @@ Specifies the full pathname of the program. The default is .Pa /usr/X11R6/bin/xauth . +.It Cm ZeroKnowledgePasswordAuthentication +Specifies whether to use zero knowledge password authentication. +This authentication method avoids exposure of password to untrusted +hosts. +The argument to this keyword must be +.Dq yes +or +.Dq no . +The default is currently +.Dq no +as this method is considered experimental. .El .Sh PATTERNS A diff --git a/sshconnect2.c b/sshconnect2.c index 7d0c5e825..a762eec3b 100644 --- a/sshconnect2.c +++ b/sshconnect2.c @@ -1,6 +1,7 @@ -/* $OpenBSD: sshconnect2.c,v 1.169 2008/11/01 04:50:08 djm Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.170 2008/11/04 08:22:13 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. + * Copyright (c) 2008 Damien Miller. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -67,6 +68,7 @@ #include "msg.h" #include "pathnames.h" #include "uidswap.h" +#include "jpake.h" #ifdef GSSAPI #include "ssh-gss.h" @@ -201,6 +203,7 @@ struct Authctxt { struct Authmethod { char *name; /* string to compare against server's list */ int (*userauth)(Authctxt *authctxt); + void (*cleanup)(Authctxt *authctxt); int *enabled; /* flag in option struct that enables method */ int *batch_flag; /* flag in option struct that disables method */ }; @@ -212,12 +215,18 @@ void input_userauth_error(int, u_int32_t, void *); void input_userauth_info_req(int, u_int32_t, void *); void input_userauth_pk_ok(int, u_int32_t, void *); void input_userauth_passwd_changereq(int, u_int32_t, void *); +void input_userauth_jpake_server_step1(int, u_int32_t, void *); +void input_userauth_jpake_server_step2(int, u_int32_t, void *); +void input_userauth_jpake_server_confirm(int, u_int32_t, void *); int userauth_none(Authctxt *); int userauth_pubkey(Authctxt *); int userauth_passwd(Authctxt *); int userauth_kbdint(Authctxt *); int userauth_hostbased(Authctxt *); +int userauth_jpake(Authctxt *); + +void userauth_jpake_cleanup(Authctxt *); #ifdef GSSAPI int userauth_gssapi(Authctxt *authctxt); @@ -243,30 +252,43 @@ Authmethod authmethods[] = { #ifdef GSSAPI {"gssapi-with-mic", userauth_gssapi, + NULL, &options.gss_authentication, NULL}, #endif {"hostbased", userauth_hostbased, + NULL, &options.hostbased_authentication, NULL}, {"publickey", userauth_pubkey, + NULL, &options.pubkey_authentication, NULL}, +#ifdef JPAKE + {"jpake-01@openssh.com", + userauth_jpake, + userauth_jpake_cleanup, + &options.zero_knowledge_password_authentication, + &options.batch_mode}, +#endif {"keyboard-interactive", userauth_kbdint, + NULL, &options.kbd_interactive_authentication, &options.batch_mode}, {"password", userauth_passwd, + NULL, &options.password_authentication, &options.batch_mode}, {"none", userauth_none, NULL, + NULL, NULL}, - {NULL, NULL, NULL, NULL} + {NULL, NULL, NULL, NULL, NULL} }; void @@ -334,6 +356,9 @@ ssh_userauth2(const char *local_user, const char *server_user, char *host, void userauth(Authctxt *authctxt, char *authlist) { + if (authctxt->method != NULL && authctxt->method->cleanup != NULL) + authctxt->method->cleanup(authctxt); + if (authctxt->methoddata) { xfree(authctxt->methoddata); authctxt->methoddata = NULL; @@ -851,6 +876,209 @@ input_userauth_passwd_changereq(int type, u_int32_t seqnr, void *ctxt) &input_userauth_passwd_changereq); } +#ifdef JPAKE +static char * +pw_encrypt(const char *password, const char *crypt_scheme, const char *salt) +{ + /* OpenBSD crypt(3) handles all of these */ + if (strcmp(crypt_scheme, "crypt") == 0 || + strcmp(crypt_scheme, "bcrypt") == 0 || + strcmp(crypt_scheme, "md5crypt") == 0 || + strcmp(crypt_scheme, "crypt-extended") == 0) + return xstrdup(crypt(password, salt)); + error("%s: unsupported password encryption scheme \"%.100s\"", + __func__, crypt_scheme); + return NULL; +} + +static BIGNUM * +jpake_password_to_secret(Authctxt *authctxt, const char *crypt_scheme, + const char *salt) +{ + char prompt[256], *password, *crypted; + u_char *secret; + u_int secret_len; + BIGNUM *ret; + + snprintf(prompt, sizeof(prompt), "%.30s@%.128s's password (JPAKE): ", + authctxt->server_user, authctxt->host); + password = read_passphrase(prompt, 0); + + if ((crypted = pw_encrypt(password, crypt_scheme, salt)) == NULL) { + logit("Disabling %s authentication", authctxt->method->name); + authctxt->method->enabled = NULL; + /* Continue with an empty password to fail gracefully */ + crypted = xstrdup(""); + } + +#ifdef JPAKE_DEBUG + debug3("%s: salt = %s", __func__, salt); + debug3("%s: scheme = %s", __func__, crypt_scheme); + debug3("%s: crypted = %s", __func__, crypted); +#endif + + if (hash_buffer(crypted, strlen(crypted), EVP_sha256(), + &secret, &secret_len) != 0) + fatal("%s: hash_buffer", __func__); + + bzero(password, strlen(password)); + bzero(crypted, strlen(crypted)); + xfree(password); + xfree(crypted); + + if ((ret = BN_bin2bn(secret, secret_len, NULL)) == NULL) + fatal("%s: BN_bin2bn (secret)", __func__); + bzero(secret, secret_len); + xfree(secret); + + return ret; +} + +/* ARGSUSED */ +void +input_userauth_jpake_server_step1(int type, u_int32_t seq, void *ctxt) +{ + Authctxt *authctxt = ctxt; + struct jpake_ctx *pctx = authctxt->methoddata; + u_char *x3_proof, *x4_proof, *x2_s_proof; + u_int x3_proof_len, x4_proof_len, x2_s_proof_len; + char *crypt_scheme, *salt; + + /* Disable this message */ + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP1, NULL); + + if ((pctx->g_x3 = BN_new()) == NULL || + (pctx->g_x4 = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + + /* Fetch step 1 values */ + crypt_scheme = packet_get_string(NULL); + salt = packet_get_string(NULL); + pctx->server_id = packet_get_string(&pctx->server_id_len); + packet_get_bignum2(pctx->g_x3); + packet_get_bignum2(pctx->g_x4); + x3_proof = packet_get_string(&x3_proof_len); + x4_proof = packet_get_string(&x4_proof_len); + packet_check_eom(); + + JPAKE_DEBUG_CTX((pctx, "step 1 received in %s", __func__)); + + /* Obtain password and derive secret */ + pctx->s = jpake_password_to_secret(authctxt, crypt_scheme, salt); + bzero(crypt_scheme, strlen(crypt_scheme)); + bzero(salt, strlen(salt)); + xfree(crypt_scheme); + xfree(salt); + JPAKE_DEBUG_BN((pctx->s, "%s: s = ", __func__)); + + /* Calculate step 2 values */ + jpake_step2(pctx->grp, pctx->s, pctx->g_x1, + pctx->g_x3, pctx->g_x4, pctx->x2, + pctx->server_id, pctx->server_id_len, + pctx->client_id, pctx->client_id_len, + x3_proof, x3_proof_len, + x4_proof, x4_proof_len, + &pctx->a, + &x2_s_proof, &x2_s_proof_len); + + bzero(x3_proof, x3_proof_len); + bzero(x4_proof, x4_proof_len); + xfree(x3_proof); + xfree(x4_proof); + + JPAKE_DEBUG_CTX((pctx, "step 2 sending in %s", __func__)); + + /* Send values for step 2 */ + packet_start(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP2); + packet_put_bignum2(pctx->a); + packet_put_string(x2_s_proof, x2_s_proof_len); + packet_send(); + + bzero(x2_s_proof, x2_s_proof_len); + xfree(x2_s_proof); + + /* Expect step 2 packet from peer */ + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP2, + input_userauth_jpake_server_step2); +} + +/* ARGSUSED */ +void +input_userauth_jpake_server_step2(int type, u_int32_t seq, void *ctxt) +{ + Authctxt *authctxt = ctxt; + struct jpake_ctx *pctx = authctxt->methoddata; + u_char *x4_s_proof; + u_int x4_s_proof_len; + + /* Disable this message */ + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP2, NULL); + + if ((pctx->b = BN_new()) == NULL) + fatal("%s: BN_new", __func__); + + /* Fetch step 2 values */ + packet_get_bignum2(pctx->b); + x4_s_proof = packet_get_string(&x4_s_proof_len); + packet_check_eom(); + + JPAKE_DEBUG_CTX((pctx, "step 2 received in %s", __func__)); + + /* Derive shared key and calculate confirmation hash */ + jpake_key_confirm(pctx->grp, pctx->s, pctx->b, + pctx->x2, pctx->g_x1, pctx->g_x2, pctx->g_x3, pctx->g_x4, + pctx->client_id, pctx->client_id_len, + pctx->server_id, pctx->server_id_len, + session_id2, session_id2_len, + x4_s_proof, x4_s_proof_len, + &pctx->k, + &pctx->h_k_cid_sessid, &pctx->h_k_cid_sessid_len); + + bzero(x4_s_proof, x4_s_proof_len); + xfree(x4_s_proof); + + JPAKE_DEBUG_CTX((pctx, "confirm sending in %s", __func__)); + + /* Send key confirmation proof */ + packet_start(SSH2_MSG_USERAUTH_JPAKE_CLIENT_CONFIRM); + packet_put_string(pctx->h_k_cid_sessid, pctx->h_k_cid_sessid_len); + packet_send(); + + /* Expect confirmation from peer */ + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_CONFIRM, + input_userauth_jpake_server_confirm); +} + +/* ARGSUSED */ +void +input_userauth_jpake_server_confirm(int type, u_int32_t seq, void *ctxt) +{ + Authctxt *authctxt = ctxt; + struct jpake_ctx *pctx = authctxt->methoddata; + + /* Disable this message */ + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_CONFIRM, NULL); + + pctx->h_k_sid_sessid = packet_get_string(&pctx->h_k_sid_sessid_len); + packet_check_eom(); + + JPAKE_DEBUG_CTX((pctx, "confirm received in %s", __func__)); + + /* Verify expected confirmation hash */ + if (jpake_check_confirm(pctx->k, + pctx->server_id, pctx->server_id_len, + session_id2, session_id2_len, + pctx->h_k_sid_sessid, pctx->h_k_sid_sessid_len) == 1) + debug("%s: %s success", __func__, authctxt->method->name); + else { + debug("%s: confirmation mismatch", __func__); + /* XXX stash this so if auth succeeds then we can warn/kill */ + } + + userauth_jpake_cleanup(authctxt); +} +#endif /* JPAKE */ + static int identity_sign(Identity *id, u_char **sigp, u_int *lenp, u_char *data, u_int datalen) @@ -1425,6 +1653,76 @@ userauth_hostbased(Authctxt *authctxt) return 1; } +#ifdef JPAKE +int +userauth_jpake(Authctxt *authctxt) +{ + struct jpake_ctx *pctx; + u_char *x1_proof, *x2_proof; + u_int x1_proof_len, x2_proof_len; + static int attempt = 0; /* XXX share with userauth_password's? */ + + if (attempt++ >= options.number_of_password_prompts) + return 0; + if (attempt != 1) + error("Permission denied, please try again."); + + if (authctxt->methoddata != NULL) + fatal("%s: authctxt->methoddata already set (%p)", + __func__, authctxt->methoddata); + + authctxt->methoddata = pctx = jpake_new(); + + /* + * Send request immediately, to get the protocol going while + * we do the initial computations. + */ + packet_start(SSH2_MSG_USERAUTH_REQUEST); + packet_put_cstring(authctxt->server_user); + packet_put_cstring(authctxt->service); + packet_put_cstring(authctxt->method->name); + packet_send(); + packet_write_wait(); + + jpake_step1(pctx->grp, + &pctx->client_id, &pctx->client_id_len, + &pctx->x1, &pctx->x2, &pctx->g_x1, &pctx->g_x2, + &x1_proof, &x1_proof_len, + &x2_proof, &x2_proof_len); + + JPAKE_DEBUG_CTX((pctx, "step 1 sending in %s", __func__)); + + packet_start(SSH2_MSG_USERAUTH_JPAKE_CLIENT_STEP1); + packet_put_string(pctx->client_id, pctx->client_id_len); + packet_put_bignum2(pctx->g_x1); + packet_put_bignum2(pctx->g_x2); + packet_put_string(x1_proof, x1_proof_len); + packet_put_string(x2_proof, x2_proof_len); + packet_send(); + + bzero(x1_proof, x1_proof_len); + bzero(x2_proof, x2_proof_len); + xfree(x1_proof); + xfree(x2_proof); + + /* Expect step 1 packet from peer */ + dispatch_set(SSH2_MSG_USERAUTH_JPAKE_SERVER_STEP1, + input_userauth_jpake_server_step1); + + return 1; +} + +void +userauth_jpake_cleanup(Authctxt *authctxt) +{ + debug3("%s: clean up", __func__); + if (authctxt->methoddata != NULL) { + jpake_free(authctxt->methoddata); + authctxt->methoddata = NULL; + } +} +#endif /* JPAKE */ + /* find auth method */ /* @@ -1526,3 +1824,4 @@ authmethods_get(void) buffer_free(&b); return list; } + diff --git a/sshd_config.5 b/sshd_config.5 index 06fe5fd38..a4a4be6e5 100644 --- a/sshd_config.5 +++ b/sshd_config.5 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.97 2008/10/09 03:50:54 djm Exp $ -.Dd $Mdocdate: October 9 2008 $ +.\" $OpenBSD: sshd_config.5,v 1.98 2008/11/04 08:22:13 djm Exp $ +.Dd $Mdocdate: November 4 2008 $ .Dt SSHD_CONFIG 5 .Os .Sh NAME @@ -612,8 +612,9 @@ Available keywords are .Cm RSAAuthentication , .Cm X11DisplayOffset , .Cm X11Forwarding , +.Cm X11UseLocalHost , and -.Cm X11UseLocalHost . +.Cm ZeroKnowledgePasswordAuthentication . .It Cm MaxAuthTries Specifies the maximum number of authentication attempts permitted per connection. @@ -1004,6 +1005,17 @@ Specifies the full pathname of the program. The default is .Pa /usr/X11R6/bin/xauth . +.It Cm ZeroKnowledgePasswordAuthentication +Specifies whether to use zero knowledge password authentication. +This authentication method avoids exposure of password to untrusted +hosts. +The argument to this keyword must be +.Dq yes +or +.Dq no . +The default is currently +.Dq no +as this method is considered experimental. .El .Sh TIME FORMATS .Xr sshd 8 -- cgit v1.2.3 From 1a0442fce894dc09c50d882d9d19f8ed95977a3f Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 5 Nov 2008 16:30:06 +1100 Subject: - stevesk@cvs.openbsd.org 2008/11/04 19:18:00 [readconf.c] because parse_forward() is now used to parse all forward types (DLR), and it malloc's space for host variables, we don't need to malloc here. fixes small memory leaks. previously dynamic forwards were not parsed in parse_forward() and space was not malloc'd in that case. ok djm@ --- ChangeLog | 12 +++++++++++- readconf.c | 12 +++++------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 012749b0d..d49180e6e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,6 +26,16 @@ compiled-time disabled (turn on -DJPAKE in Makefile.inc). "just commit it. It isn't too intrusive." deraadt@ + - stevesk@cvs.openbsd.org 2008/11/04 19:18:00 + [readconf.c] + because parse_forward() is now used to parse all forward types (DLR), + and it malloc's space for host variables, we don't need to malloc + here. fixes small memory leaks. + + previously dynamic forwards were not parsed in parse_forward() and + space was not malloc'd in that case. + + ok djm@ 20081103 - OpenBSD CVS Sync @@ -4876,4 +4886,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5130 2008/11/05 05:20:46 djm Exp $ +$Id: ChangeLog,v 1.5131 2008/11/05 05:30:06 djm Exp $ diff --git a/readconf.c b/readconf.c index ba70d9da0..d1ffd84a8 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.171 2008/11/04 08:22:13 djm Exp $ */ +/* $OpenBSD: readconf.c,v 1.172 2008/11/04 19:18:00 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -256,10 +256,9 @@ add_local_forward(Options *options, const Forward *newfwd) fatal("Too many local forwards (max %d).", SSH_MAX_FORWARDS_PER_DIRECTION); fwd = &options->local_forwards[options->num_local_forwards++]; - fwd->listen_host = (newfwd->listen_host == NULL) ? - NULL : xstrdup(newfwd->listen_host); + fwd->listen_host = newfwd->listen_host; fwd->listen_port = newfwd->listen_port; - fwd->connect_host = xstrdup(newfwd->connect_host); + fwd->connect_host = newfwd->connect_host; fwd->connect_port = newfwd->connect_port; } @@ -277,10 +276,9 @@ add_remote_forward(Options *options, const Forward *newfwd) SSH_MAX_FORWARDS_PER_DIRECTION); fwd = &options->remote_forwards[options->num_remote_forwards++]; - fwd->listen_host = (newfwd->listen_host == NULL) ? - NULL : xstrdup(newfwd->listen_host); + fwd->listen_host = newfwd->listen_host; fwd->listen_port = newfwd->listen_port; - fwd->connect_host = xstrdup(newfwd->connect_host); + fwd->connect_host = newfwd->connect_host; fwd->connect_port = newfwd->connect_port; } -- cgit v1.2.3 From 0164cb8a87cf3060f13954ce4e842ecbe8316817 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 5 Nov 2008 16:30:31 +1100 Subject: - stevesk@cvs.openbsd.org 2008/11/05 03:23:09 [clientloop.c ssh.1] add dynamic forward escape command line; ok djm@ --- ChangeLog | 5 ++++- clientloop.c | 25 ++++++++++++++++--------- ssh.1 | 9 +++++---- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index d49180e6e..1b4594114 100644 --- a/ChangeLog +++ b/ChangeLog @@ -36,6 +36,9 @@ space was not malloc'd in that case. ok djm@ + - stevesk@cvs.openbsd.org 2008/11/05 03:23:09 + [clientloop.c ssh.1] + add dynamic forward escape command line; ok djm@ 20081103 - OpenBSD CVS Sync @@ -4886,4 +4889,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5131 2008/11/05 05:30:06 djm Exp $ +$Id: ChangeLog,v 1.5132 2008/11/05 05:30:31 djm Exp $ diff --git a/clientloop.c b/clientloop.c index 0ed4194a6..737807496 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.203 2008/11/01 17:40:33 stevesk Exp $ */ +/* $OpenBSD: clientloop.c,v 1.204 2008/11/05 03:23:09 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -764,7 +764,7 @@ process_cmdline(void) void (*handler)(int); char *s, *cmd, *cancel_host; int delete = 0; - int local = 0; + int local = 0, remote = 0, dynamic = 0; u_short cancel_port; Forward fwd; @@ -789,6 +789,8 @@ process_cmdline(void) "Request local forward"); logit(" -R[bind_address:]port:host:hostport " "Request remote forward"); + logit(" -D[bind_address:]port " + "Request dynamic forward"); logit(" -KR[bind_address:]port " "Cancel remote forward"); if (!options.permit_local_command) @@ -808,17 +810,22 @@ process_cmdline(void) delete = 1; s++; } - if (*s != 'L' && *s != 'R') { + if (*s == 'L') + local = 1; + else if (*s == 'R') + remote = 1; + else if (*s == 'D') + dynamic = 1; + else { logit("Invalid command."); goto out; } - if (*s == 'L') - local = 1; - if (local && delete) { + + if ((local || dynamic) && delete) { logit("Not supported."); goto out; } - if ((!local || delete) && !compat20) { + if (remote && delete && !compat20) { logit("Not supported for SSH protocol version 1."); goto out; } @@ -842,11 +849,11 @@ process_cmdline(void) } channel_request_rforward_cancel(cancel_host, cancel_port); } else { - if (!parse_forward(&fwd, s, 0)) { + if (!parse_forward(&fwd, s, dynamic ? 1 : 0)) { logit("Bad forwarding specification."); goto out; } - if (local) { + if (local || dynamic) { if (channel_setup_local_fwd_listener(fwd.listen_host, fwd.listen_port, fwd.connect_host, fwd.connect_port, options.gateway_ports) < 0) { diff --git a/ssh.1 b/ssh.1 index c8cd2136c..5f55dfe9d 100644 --- a/ssh.1 +++ b/ssh.1 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh.1,v 1.278 2008/10/08 23:34:03 djm Exp $ -.Dd $Mdocdate: October 8 2008 $ +.\" $OpenBSD: ssh.1,v 1.279 2008/11/05 03:23:09 stevesk Exp $ +.Dd $Mdocdate: November 5 2008 $ .Dt SSH 1 .Os .Sh NAME @@ -898,9 +898,10 @@ Send a BREAK to the remote system .It Cm ~C Open command line. Currently this allows the addition of port forwardings using the -.Fl L -and +.Fl L , .Fl R +and +.Fl D options (see above). It also allows the cancellation of existing remote port-forwardings using -- cgit v1.2.3 From ff4350e1b8b43bf55cfe91caa807574b02d9d02e Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Tue, 11 Nov 2008 16:31:05 +1100 Subject: - (dtucker) OpenBSD CVS Sync - jmc@cvs.openbsd.org 2008/11/05 11:22:54 [servconf.c] passord -> password; fixes user/5975 from Rene Maroufi --- ChangeLog | 9 ++++++++- servconf.c | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1b4594114..60004eb14 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +20081111 + - (dtucker) OpenBSD CVS Sync + - jmc@cvs.openbsd.org 2008/11/05 11:22:54 + [servconf.c] + passord -> password; + fixes user/5975 from Rene Maroufi + 20081105 - OpenBSD CVS Sync - djm@cvs.openbsd.org 2008/11/03 08:59:41 @@ -4889,4 +4896,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5132 2008/11/05 05:30:31 djm Exp $ +$Id: ChangeLog,v 1.5133 2008/11/11 05:31:05 dtucker Exp $ diff --git a/servconf.c b/servconf.c index c7d2d0b94..053e20a78 100644 --- a/servconf.c +++ b/servconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.c,v 1.190 2008/11/04 08:22:13 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.191 2008/11/05 11:22:54 jmc Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -1454,7 +1454,7 @@ fmt_intarg(ServerOpCodes code, int val) if (code == sPermitRootLogin) { switch (val) { case PERMIT_NO_PASSWD: - return "without-passord"; + return "without-password"; case PERMIT_FORCED_ONLY: return "forced-commands-only"; case PERMIT_YES: -- cgit v1.2.3 From e15fb09847aca6ffaed30eb443e97d82930d509c Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Tue, 11 Nov 2008 16:31:43 +1100 Subject: - stevesk@cvs.openbsd.org 2008/11/07 00:42:12 [ssh-keygen.c] spelling/typo in comment --- ChangeLog | 5 ++++- ssh-keygen.c | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 60004eb14..9ddc512fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,9 @@ [servconf.c] passord -> password; fixes user/5975 from Rene Maroufi + - stevesk@cvs.openbsd.org 2008/11/07 00:42:12 + [ssh-keygen.c] + spelling/typo in comment 20081105 - OpenBSD CVS Sync @@ -4896,4 +4899,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5133 2008/11/11 05:31:05 dtucker Exp $ +$Id: ChangeLog,v 1.5134 2008/11/11 05:31:43 dtucker Exp $ diff --git a/ssh-keygen.c b/ssh-keygen.c index f7e284062..a45499177 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.171 2008/07/13 21:22:52 sthen Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.172 2008/11/07 00:42:12 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -1426,7 +1426,7 @@ passphrase_again: if (identity_comment) { strlcpy(comment, identity_comment, sizeof(comment)); } else { - /* Create default commend field for the passphrase. */ + /* Create default comment field for the passphrase. */ snprintf(comment, sizeof comment, "%s@%s", pw->pw_name, hostname); } -- cgit v1.2.3 From b57fab6b0b7b30d279bea89409a684b2793fd924 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Tue, 11 Nov 2008 16:32:25 +1100 Subject: - stevesk@cvs.openbsd.org 2008/11/07 18:50:18 [nchan.c] add space to some log/debug messages for readability; ok djm@ markus@ --- ChangeLog | 5 ++++- nchan.c | 10 +++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9ddc512fb..e3a7190ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,9 @@ - stevesk@cvs.openbsd.org 2008/11/07 00:42:12 [ssh-keygen.c] spelling/typo in comment + - stevesk@cvs.openbsd.org 2008/11/07 18:50:18 + [nchan.c] + add space to some log/debug messages for readability; ok djm@ markus@ 20081105 - OpenBSD CVS Sync @@ -4899,4 +4902,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5134 2008/11/11 05:31:43 dtucker Exp $ +$Id: ChangeLog,v 1.5135 2008/11/11 05:32:25 dtucker Exp $ diff --git a/nchan.c b/nchan.c index b78d6a764..160445e5a 100644 --- a/nchan.c +++ b/nchan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nchan.c,v 1.61 2008/09/11 14:22:37 markus Exp $ */ +/* $OpenBSD: nchan.c,v 1.62 2008/11/07 18:50:18 stevesk Exp $ */ /* * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. * @@ -486,12 +486,12 @@ chan_shutdown_write(Channel *c) if (c->sock != -1) { if (shutdown(c->sock, SHUT_WR) < 0) debug2("channel %d: chan_shutdown_write: " - "shutdown() failed for fd%d: %.100s", + "shutdown() failed for fd %d: %.100s", c->self, c->sock, strerror(errno)); } else { if (channel_close_fd(&c->wfd) < 0) logit("channel %d: chan_shutdown_write: " - "close() failed for fd%d: %.100s", + "close() failed for fd %d: %.100s", c->self, c->wfd, strerror(errno)); } } @@ -510,13 +510,13 @@ chan_shutdown_read(Channel *c) if (shutdown(c->sock, SHUT_RD) < 0 && errno != ENOTCONN) error("channel %d: chan_shutdown_read: " - "shutdown() failed for fd%d [i%d o%d]: %.100s", + "shutdown() failed for fd %d [i%d o%d]: %.100s", c->self, c->sock, c->istate, c->ostate, strerror(errno)); } else { if (channel_close_fd(&c->rfd) < 0) logit("channel %d: chan_shutdown_read: " - "close() failed for fd%d: %.100s", + "close() failed for fd %d: %.100s", c->self, c->rfd, strerror(errno)); } } -- cgit v1.2.3 From c6d744e9cdce63c250da4f87279d7da459ff4423 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Tue, 11 Nov 2008 16:33:03 +1100 Subject: - dtucker@cvs.openbsd.org 2008/11/07 23:34:48 [auth2-jpake.c] Move JPAKE define to make life easier for portable. ok djm@ --- ChangeLog | 5 ++++- auth2-jpake.c | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index e3a7190ea..0ee6df733 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,6 +10,9 @@ - stevesk@cvs.openbsd.org 2008/11/07 18:50:18 [nchan.c] add space to some log/debug messages for readability; ok djm@ markus@ + - dtucker@cvs.openbsd.org 2008/11/07 23:34:48 + [auth2-jpake.c] + Move JPAKE define to make life easier for portable. ok djm@ 20081105 - OpenBSD CVS Sync @@ -4902,4 +4905,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5135 2008/11/11 05:32:25 dtucker Exp $ +$Id: ChangeLog,v 1.5136 2008/11/11 05:33:03 dtucker Exp $ diff --git a/auth2-jpake.c b/auth2-jpake.c index 0029ec26b..efe7ff2a3 100644 --- a/auth2-jpake.c +++ b/auth2-jpake.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2-jpake.c,v 1.1 2008/11/04 08:22:12 djm Exp $ */ +/* $OpenBSD: auth2-jpake.c,v 1.2 2008/11/07 23:34:48 dtucker Exp $ */ /* * Copyright (c) 2008 Damien Miller. All rights reserved. * @@ -25,6 +25,8 @@ * http://grouper.ieee.org/groups/1363/Research/contributions/hao-ryan-2008.pdf */ +#ifdef JPAKE + #include #include @@ -55,8 +57,6 @@ #include "jpake.h" -#ifdef JPAKE - /* * XXX options->permit_empty_passwd (at the moment, they will be refused * anyway because they will mismatch on fake salt. -- cgit v1.2.3 From 63917bd0dae6189147dc4cafaeaf6f1d91b14cfe Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Tue, 11 Nov 2008 16:33:48 +1100 Subject: - tobias@cvs.openbsd.org 2008/11/09 12:34:47 [session.c ssh.1] typo fixed (overriden -> overridden) ok espie, jmc --- ChangeLog | 6 +++++- session.c | 4 ++-- ssh.1 | 6 +++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0ee6df733..a167dfea1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -13,6 +13,10 @@ - dtucker@cvs.openbsd.org 2008/11/07 23:34:48 [auth2-jpake.c] Move JPAKE define to make life easier for portable. ok djm@ + - tobias@cvs.openbsd.org 2008/11/09 12:34:47 + [session.c ssh.1] + typo fixed (overriden -> overridden) + ok espie, jmc 20081105 - OpenBSD CVS Sync @@ -4905,4 +4909,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5136 2008/11/11 05:33:03 dtucker Exp $ +$Id: ChangeLog,v 1.5137 2008/11/11 05:33:48 dtucker Exp $ diff --git a/session.c b/session.c index 4bed28d7f..c61aeb711 100644 --- a/session.c +++ b/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.243 2008/10/02 14:39:35 millert Exp $ */ +/* $OpenBSD: session.c,v 1.244 2008/11/09 12:34:47 tobias Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -932,7 +932,7 @@ check_quietlogin(Session *s, const char *command) /* * Sets the value of the given variable in the environment. If the variable - * already exists, its value is overriden. + * already exists, its value is overridden. */ void child_set_env(char ***envp, u_int *envsizep, const char *name, diff --git a/ssh.1 b/ssh.1 index 5f55dfe9d..b66a1c342 100644 --- a/ssh.1 +++ b/ssh.1 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh.1,v 1.279 2008/11/05 03:23:09 stevesk Exp $ -.Dd $Mdocdate: November 5 2008 $ +.\" $OpenBSD: ssh.1,v 1.280 2008/11/09 12:34:47 tobias Exp $ +.Dd $Mdocdate: November 9 2008 $ .Dt SSH 1 .Os .Sh NAME @@ -550,7 +550,7 @@ using an alternative syntax: .Pp By default, the listening socket on the server will be bound to the loopback interface only. -This may be overriden by specifying a +This may be overridden by specifying a .Ar bind_address . An empty .Ar bind_address , -- cgit v1.2.3 From 49c31c42250e99af9170623094585d8851838a62 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Tue, 11 Nov 2008 16:39:44 +1100 Subject: - stevesk@cvs.openbsd.org 2008/11/11 02:58:09 [servconf.c] USE_AFS not referenced so remove #ifdef. fixes sshd -T not printing kerberosgetafstoken. ok dtucker@ (Id sync only, we still want the ifdef in portable) --- ChangeLog | 7 ++++++- servconf.c | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index a167dfea1..91eb0ef70 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,11 @@ [session.c ssh.1] typo fixed (overriden -> overridden) ok espie, jmc + - stevesk@cvs.openbsd.org 2008/11/11 02:58:09 + [servconf.c] + USE_AFS not referenced so remove #ifdef. fixes sshd -T not printing + kerberosgetafstoken. ok dtucker@ + (Id sync only, we still want the ifdef in portable) 20081105 - OpenBSD CVS Sync @@ -4909,4 +4914,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5137 2008/11/11 05:33:48 dtucker Exp $ +$Id: ChangeLog,v 1.5138 2008/11/11 05:39:44 dtucker Exp $ diff --git a/servconf.c b/servconf.c index 053e20a78..659a1eb21 100644 --- a/servconf.c +++ b/servconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.c,v 1.191 2008/11/05 11:22:54 jmc Exp $ */ +/* $OpenBSD: servconf.c,v 1.192 2008/11/11 02:58:09 stevesk Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved -- cgit v1.2.3 From 22662e880f9c61f00908fe3dc27a6988ac2cccd0 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Tue, 11 Nov 2008 16:40:22 +1100 Subject: - stevesk@cvs.openbsd.org 2008/11/11 03:55:11 [channels.c] for sshd -T print 'permitopen any' vs. 'permitopen' for case of no permitopen's; ok and input dtucker@ --- ChangeLog | 6 +++++- channels.c | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 91eb0ef70..8849616b6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22,6 +22,10 @@ USE_AFS not referenced so remove #ifdef. fixes sshd -T not printing kerberosgetafstoken. ok dtucker@ (Id sync only, we still want the ifdef in portable) + - stevesk@cvs.openbsd.org 2008/11/11 03:55:11 + [channels.c] + for sshd -T print 'permitopen any' vs. 'permitopen' for case of no + permitopen's; ok and input dtucker@ 20081105 - OpenBSD CVS Sync @@ -4914,4 +4918,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5138 2008/11/11 05:39:44 dtucker Exp $ +$Id: ChangeLog,v 1.5139 2008/11/11 05:40:22 dtucker Exp $ diff --git a/channels.c b/channels.c index 4af7df5db..225551e6a 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.287 2008/11/01 06:43:33 stevesk Exp $ */ +/* $OpenBSD: channels.c,v 1.288 2008/11/11 03:55:11 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -2791,6 +2791,10 @@ channel_print_adm_permitted_opens(void) { int i; + if (num_adm_permitted_opens == 0) { + printf(" any"); + return; + } for (i = 0; i < num_adm_permitted_opens; i++) if (permitted_adm_opens[i].host_to_connect != NULL) printf(" %s:%d", permitted_adm_opens[i].host_to_connect, -- cgit v1.2.3 From 4a6f62d4ae64ff8f868613a8e459720d4ebe263d Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Tue, 11 Nov 2008 16:55:25 +1100 Subject: - djm@cvs.openbsd.org 2008/11/10 02:06:35 [regress/putty-ciphers.sh] PuTTY supports AES CTR modes, so interop test against them too --- ChangeLog | 5 ++++- regress/putty-ciphers.sh | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8849616b6..b6a589ff0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,6 +26,9 @@ [channels.c] for sshd -T print 'permitopen any' vs. 'permitopen' for case of no permitopen's; ok and input dtucker@ + - djm@cvs.openbsd.org 2008/11/10 02:06:35 + [regress/putty-ciphers.sh] + PuTTY supports AES CTR modes, so interop test against them too 20081105 - OpenBSD CVS Sync @@ -4918,4 +4921,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5139 2008/11/11 05:40:22 dtucker Exp $ +$Id: ChangeLog,v 1.5140 2008/11/11 05:55:25 dtucker Exp $ diff --git a/regress/putty-ciphers.sh b/regress/putty-ciphers.sh index 40435ef41..441053627 100644 --- a/regress/putty-ciphers.sh +++ b/regress/putty-ciphers.sh @@ -1,4 +1,4 @@ -# $OpenBSD: putty-ciphers.sh,v 1.2 2008/06/30 10:31:11 djm Exp $ +# $OpenBSD: putty-ciphers.sh,v 1.3 2008/11/10 02:06:35 djm Exp $ # Placed in the Public Domain. tid="putty ciphers" @@ -10,7 +10,7 @@ if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then fatal "putty interop tests not enabled" fi -for c in aes blowfish 3des arcfour ; do +for c in aes blowfish 3des arcfour aes128-ctr aes192-ctr aes256-ctr ; do verbose "$tid: cipher $c" cp ${OBJ}/.putty/sessions/localhost_proxy \ ${OBJ}/.putty/sessions/cipher_$c -- cgit v1.2.3 From edecb37a4b7e1b31f69139344af927e602f31c11 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 19 Nov 2008 11:54:24 +1100 Subject: test commit --- ChangeLog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b6a589ff0..235c0f2ef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4921,4 +4921,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5140 2008/11/11 05:55:25 dtucker Exp $ +$Id: ChangeLog,v 1.5141 2008/11/19 00:54:24 djm Exp $ + -- cgit v1.2.3 From 0f4d2c02f275ad9f80ccd7435ffb407a8be61e9a Mon Sep 17 00:00:00 2001 From: Tim Rice Date: Tue, 18 Nov 2008 21:26:41 -0800 Subject: - (tim) [addrmatch.c configure.ac] Some platforms do not have sin6_scope_id member of sockaddr_in6. Also reported in Bug 1491 by David Leonard. OK and feedback by djm@ --- ChangeLog | 7 ++++++- addrmatch.c | 2 ++ configure.ac | 13 +++++++++++-- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 235c0f2ef..80e9b439d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20081118 + - (tim) [addrmatch.c configure.ac] Some platforms do not have sin6_scope_id + member of sockaddr_in6. Also reported in Bug 1491 by David Leonard. OK and + feedback by djm@ + 20081111 - (dtucker) OpenBSD CVS Sync - jmc@cvs.openbsd.org 2008/11/05 11:22:54 @@ -4921,5 +4926,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5141 2008/11/19 00:54:24 djm Exp $ +$Id: ChangeLog,v 1.5142 2008/11/19 05:26:41 tim Exp $ diff --git a/addrmatch.c b/addrmatch.c index 2086afe84..f3c861a1f 100644 --- a/addrmatch.c +++ b/addrmatch.c @@ -97,7 +97,9 @@ addr_sa_to_xaddr(struct sockaddr *sa, socklen_t slen, struct xaddr *xa) return -1; xa->af = AF_INET6; memcpy(&xa->v6, &in6->sin6_addr, sizeof(xa->v6)); +#ifdef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID xa->scope_id = in6->sin6_scope_id; +#endif break; default: return -1; diff --git a/configure.ac b/configure.ac index fcf7e416b..3e0821bae 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.409 2008/07/09 11:07:19 djm Exp $ +# $Id: configure.ac,v 1.410 2008/11/19 05:26:42 tim Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -15,7 +15,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) -AC_REVISION($Revision: 1.409 $) +AC_REVISION($Revision: 1.410 $) AC_CONFIG_SRCDIR([ssh.c]) AC_CONFIG_HEADER(config.h) @@ -2824,6 +2824,15 @@ AC_CACHE_CHECK([for struct in6_addr], ac_cv_have_struct_in6_addr, [ if test "x$ac_cv_have_struct_in6_addr" = "xyes" ; then AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, [define if you have struct in6_addr data type]) + +dnl Now check for sin6_scope_id + AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,, + [ +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#include + ]) fi AC_CACHE_CHECK([for struct addrinfo], ac_cv_have_struct_addrinfo, [ -- cgit v1.2.3 From 69087eae6d44c2266b1bea1a3b3de5a7b7e551e1 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sun, 23 Nov 2008 14:03:19 +1100 Subject: - (dtucker) [monitor_fdpass.c] Reduce diff vs OpenBSD by moving some declarations, removing an unnecessary union member and adding whitespace. ok djm some time ago. --- ChangeLog | 7 ++++++- monitor_fdpass.c | 17 +++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 80e9b439d..877f1acf9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20081123 + - (dtucker) [monitor_fdpass.c] Reduce diff vs OpenBSD by moving some + declarations, removing an unnecessary union member and adding whitespace. + ok djm some time ago. + 20081118 - (tim) [addrmatch.c configure.ac] Some platforms do not have sin6_scope_id member of sockaddr_in6. Also reported in Bug 1491 by David Leonard. OK and @@ -4926,5 +4931,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5142 2008/11/19 05:26:41 tim Exp $ +$Id: ChangeLog,v 1.5143 2008/11/23 03:03:19 dtucker Exp $ diff --git a/monitor_fdpass.c b/monitor_fdpass.c index cab538bc9..f68c3728a 100644 --- a/monitor_fdpass.c +++ b/monitor_fdpass.c @@ -45,17 +45,16 @@ mm_send_fd(int sock, int fd) { #if defined(HAVE_SENDMSG) && (defined(HAVE_ACCRIGHTS_IN_MSGHDR) || defined(HAVE_CONTROL_IN_MSGHDR)) struct msghdr msg; - struct iovec vec; - char ch = '\0'; - ssize_t n; #ifndef HAVE_ACCRIGHTS_IN_MSGHDR union { struct cmsghdr hdr; - char tmp[CMSG_SPACE(sizeof(int))]; char buf[CMSG_SPACE(sizeof(int))]; } cmsgbuf; struct cmsghdr *cmsg; #endif + struct iovec vec; + char ch = '\0'; + ssize_t n; memset(&msg, 0, sizeof(msg)); #ifdef HAVE_ACCRIGHTS_IN_MSGHDR @@ -99,10 +98,6 @@ mm_receive_fd(int sock) { #if defined(HAVE_RECVMSG) && (defined(HAVE_ACCRIGHTS_IN_MSGHDR) || defined(HAVE_CONTROL_IN_MSGHDR)) struct msghdr msg; - struct iovec vec; - ssize_t n; - char ch; - int fd; #ifndef HAVE_ACCRIGHTS_IN_MSGHDR union { struct cmsghdr hdr; @@ -110,6 +105,10 @@ mm_receive_fd(int sock) } cmsgbuf; struct cmsghdr *cmsg; #endif + struct iovec vec; + ssize_t n; + char ch; + int fd; memset(&msg, 0, sizeof(msg)); vec.iov_base = &ch; @@ -128,6 +127,7 @@ mm_receive_fd(int sock) error("%s: recvmsg: %s", __func__, strerror(errno)); return -1; } + if (n != 1) { error("%s: recvmsg: expected received 1 got %ld", __func__, (long)n); @@ -145,6 +145,7 @@ mm_receive_fd(int sock) error("%s: no message header", __func__); return -1; } + #ifndef BROKEN_CMSG_TYPE if (cmsg->cmsg_type != SCM_RIGHTS) { error("%s: expected type %d got %d", __func__, -- cgit v1.2.3 From d3782b4e76481aaa12a32b7f239b815916615650 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sun, 23 Nov 2008 19:05:53 +1100 Subject: cmsg thing was originally spotted by des --- ChangeLog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 877f1acf9..8fd643146 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ 20081123 - (dtucker) [monitor_fdpass.c] Reduce diff vs OpenBSD by moving some declarations, removing an unnecessary union member and adding whitespace. - ok djm some time ago. + cmsgbuf.tmp thing spotted by des at des no, ok djm some time ago. 20081118 - (tim) [addrmatch.c configure.ac] Some platforms do not have sin6_scope_id @@ -4931,5 +4931,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5143 2008/11/23 03:03:19 dtucker Exp $ +$Id: ChangeLog,v 1.5144 2008/11/23 08:05:53 dtucker Exp $ -- cgit v1.2.3 From 83795d61d277df3f090f12336ea3e21b6946ef4f Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Mon, 1 Dec 2008 21:34:28 +1100 Subject: - (dtucker) [contrib/cygwin/{Makefile,ssh-host-config}] Add new doc files and tweak the is-sshd-running check in ssh-host-config. Patch from vinschen at redhat com. --- ChangeLog | 7 ++++++- contrib/cygwin/Makefile | 4 +++- contrib/cygwin/ssh-host-config | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8fd643146..13fd17889 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20081201 + - (dtucker) [contrib/cygwin/{Makefile,ssh-host-config}] Add new doc files + and tweak the is-sshd-running check in ssh-host-config. Patch from + vinschen at redhat com. + 20081123 - (dtucker) [monitor_fdpass.c] Reduce diff vs OpenBSD by moving some declarations, removing an unnecessary union member and adding whitespace. @@ -4931,5 +4936,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5144 2008/11/23 08:05:53 dtucker Exp $ +$Id: ChangeLog,v 1.5145 2008/12/01 10:34:28 dtucker Exp $ diff --git a/contrib/cygwin/Makefile b/contrib/cygwin/Makefile index 3e2d26404..2ebd143dc 100644 --- a/contrib/cygwin/Makefile +++ b/contrib/cygwin/Makefile @@ -38,11 +38,13 @@ install-sshdoc: $(INSTALL) -m 644 $(srcdir)/ChangeLog $(DESTDIR)$(sshdocdir)/ChangeLog $(INSTALL) -m 644 $(srcdir)/LICENCE $(DESTDIR)$(sshdocdir)/LICENCE $(INSTALL) -m 644 $(srcdir)/OVERVIEW $(DESTDIR)$(sshdocdir)/OVERVIEW + $(INSTALL) -m 644 $(srcdir)/PROTOCOL $(DESTDIR)$(sshdocdir)/PROTOCOL + $(INSTALL) -m 644 $(srcdir)/PROTOCOL.agent $(DESTDIR)$(sshdocdir)/PROTOCOL.agent $(INSTALL) -m 644 $(srcdir)/README $(DESTDIR)$(sshdocdir)/README $(INSTALL) -m 644 $(srcdir)/README.dns $(DESTDIR)$(sshdocdir)/README.dns + $(INSTALL) -m 644 $(srcdir)/README.platform $(DESTDIR)$(sshdocdir)/README.platform $(INSTALL) -m 644 $(srcdir)/README.privsep $(DESTDIR)$(sshdocdir)/README.privsep $(INSTALL) -m 644 $(srcdir)/README.smartcard $(DESTDIR)$(sshdocdir)/README.smartcard - $(INSTALL) -m 644 $(srcdir)/RFC.nroff $(DESTDIR)$(sshdocdir)/RFC.nroff $(INSTALL) -m 644 $(srcdir)/TODO $(DESTDIR)$(sshdocdir)/TODO $(INSTALL) -m 644 $(srcdir)/WARNING.RNG $(DESTDIR)$(sshdocdir)/WARNING.RNG diff --git a/contrib/cygwin/ssh-host-config b/contrib/cygwin/ssh-host-config index bbb6da4c4..2d367d314 100644 --- a/contrib/cygwin/ssh-host-config +++ b/contrib/cygwin/ssh-host-config @@ -456,7 +456,7 @@ done # Check for running ssh/sshd processes first. Refuse to do anything while # some ssh processes are still running -if ps -ef | grep -v grep | grep -q ssh +if ps -ef | grep -q '/sshd\?$' then echo csih_error "There are still ssh processes running. Please shut them down first." -- cgit v1.2.3 From 99d11a3ed2eb13e2f3ba13280d416369c45a30a6 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Mon, 1 Dec 2008 21:40:48 +1100 Subject: - markus@cvs.openbsd.org 2008/11/21 15:47:38 [packet.c] packet_disconnect() on padding error, too. should reduce the success probability for the CPNI-957037 Plaintext Recovery Attack to 2^-18 ok djm@ --- ChangeLog | 8 +++++++- packet.c | 11 +++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 13fd17889..af6b99458 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,12 @@ - (dtucker) [contrib/cygwin/{Makefile,ssh-host-config}] Add new doc files and tweak the is-sshd-running check in ssh-host-config. Patch from vinschen at redhat com. + - (dtucker) OpenBSD CVS Sync + - markus@cvs.openbsd.org 2008/11/21 15:47:38 + [packet.c] + packet_disconnect() on padding error, too. should reduce the success + probability for the CPNI-957037 Plaintext Recovery Attack to 2^-18 + ok djm@ 20081123 - (dtucker) [monitor_fdpass.c] Reduce diff vs OpenBSD by moving some @@ -4936,5 +4942,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5145 2008/12/01 10:34:28 dtucker Exp $ +$Id: ChangeLog,v 1.5146 2008/12/01 10:40:48 dtucker Exp $ diff --git a/packet.c b/packet.c index 8abd43eb4..4ded17fac 100644 --- a/packet.c +++ b/packet.c @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.c,v 1.157 2008/07/10 18:08:11 markus Exp $ */ +/* $OpenBSD: packet.c,v 1.158 2008/11/21 15:47:38 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1152,7 +1152,8 @@ packet_read_poll2(u_int32_t *seqnr_p) #ifdef PACKET_DEBUG buffer_dump(&incoming_packet); #endif - packet_disconnect("Bad packet length %u.", packet_length); + packet_disconnect("Bad packet length %-10u", + packet_length); } DBG(debug("input: packet len %u", packet_length+4)); buffer_consume(&input, block_size); @@ -1161,9 +1162,11 @@ packet_read_poll2(u_int32_t *seqnr_p) need = 4 + packet_length - block_size; DBG(debug("partial packet %d, need %d, maclen %d", block_size, need, maclen)); - if (need % block_size != 0) - fatal("padding error: need %d block %d mod %d", + if (need % block_size != 0) { + logit("padding error: need %d block %d mod %d", need, block_size, need % block_size); + packet_disconnect("Bad packet length %-10u", packet_length); + } /* * check if the entire packet has been received and * decrypt into incoming_packet -- cgit v1.2.3 From 23645649bb97d510a7eab33d36882ef34d2e2d1f Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Mon, 1 Dec 2008 21:42:13 +1100 Subject: - dtucker@cvs.openbsd.org 2008/11/30 11:59:26 [monitor_fdpass.c] Retry sendmsg/recvmsg on EAGAIN and EINTR; ok djm@ --- ChangeLog | 5 ++++- monitor_fdpass.c | 12 +++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index af6b99458..8915d9a69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,9 @@ packet_disconnect() on padding error, too. should reduce the success probability for the CPNI-957037 Plaintext Recovery Attack to 2^-18 ok djm@ + - dtucker@cvs.openbsd.org 2008/11/30 11:59:26 + [monitor_fdpass.c] + Retry sendmsg/recvmsg on EAGAIN and EINTR; ok djm@ 20081123 - (dtucker) [monitor_fdpass.c] Reduce diff vs OpenBSD by moving some @@ -4942,5 +4945,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5146 2008/12/01 10:40:48 dtucker Exp $ +$Id: ChangeLog,v 1.5147 2008/12/01 10:42:13 dtucker Exp $ diff --git a/monitor_fdpass.c b/monitor_fdpass.c index f68c3728a..4b9a066bc 100644 --- a/monitor_fdpass.c +++ b/monitor_fdpass.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor_fdpass.c,v 1.17 2008/03/24 16:11:07 deraadt Exp $ */ +/* $OpenBSD: monitor_fdpass.c,v 1.18 2008/11/30 11:59:26 dtucker Exp $ */ /* * Copyright 2001 Niels Provos * All rights reserved. @@ -75,7 +75,10 @@ mm_send_fd(int sock, int fd) msg.msg_iov = &vec; msg.msg_iovlen = 1; - if ((n = sendmsg(sock, &msg, 0)) == -1) { + while ((n = sendmsg(sock, &msg, 0)) == -1 && (errno == EAGAIN || + errno == EINTR)) + debug3("%s: sendmsg(%d): %s", __func__, fd, strerror(errno)); + if (n == -1) { error("%s: sendmsg(%d): %s", __func__, fd, strerror(errno)); return -1; @@ -123,7 +126,10 @@ mm_receive_fd(int sock) msg.msg_controllen = sizeof(cmsgbuf.buf); #endif - if ((n = recvmsg(sock, &msg, 0)) == -1) { + while ((n = recvmsg(sock, &msg, 0)) == -1 && (errno == EAGAIN || + errno == EINTR)) + debug3("%s: recvmsg: %s", __func__, strerror(errno)); + if (n == -1) { error("%s: recvmsg: %s", __func__, strerror(errno)); return -1; } -- cgit v1.2.3 From 7df2e400745219a87f9a9e445a9b89661d6fec42 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 8 Dec 2008 09:35:36 +1100 Subject: - (djm) [configure.ac] bz#1538: better test for ProPolice/SSP: actually use some stack in main(). Report and suggested fix from vapier AT gentoo.org --- ChangeLog | 7 ++++++- configure.ac | 14 +++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8915d9a69..91fca57aa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20081208 + - (djm) [configure.ac] bz#1538: better test for ProPolice/SSP: actually + use some stack in main(). + Report and suggested fix from vapier AT gentoo.org + 20081201 - (dtucker) [contrib/cygwin/{Makefile,ssh-host-config}] Add new doc files and tweak the is-sshd-running check in ssh-host-config. Patch from @@ -4945,5 +4950,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5147 2008/12/01 10:42:13 dtucker Exp $ +$Id: ChangeLog,v 1.5148 2008/12/07 22:35:36 djm Exp $ diff --git a/configure.ac b/configure.ac index 3e0821bae..43732abb8 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.410 2008/11/19 05:26:42 tim Exp $ +# $Id: configure.ac,v 1.411 2008/12/07 22:35:36 djm Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -15,7 +15,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) -AC_REVISION($Revision: 1.410 $) +AC_REVISION($Revision: 1.411 $) AC_CONFIG_SRCDIR([ssh.c]) AC_CONFIG_HEADER(config.h) @@ -126,7 +126,7 @@ int main(void){char b[10]; memset(b, 0, sizeof(b));} # -fstack-protector-all doesn't always work for some GCC versions # and/or platforms, so we test if we can. If it's not supported - # on a give platform gcc will emit a warning so we use -Werror. + # on a given platform gcc will emit a warning so we use -Werror. if test "x$use_stack_protector" = "x1"; then for t in -fstack-protector-all -fstack-protector; do AC_MSG_CHECKING(if $CC supports $t) @@ -136,8 +136,8 @@ int main(void){char b[10]; memset(b, 0, sizeof(b));} LDFLAGS="$LDFLAGS $t -Werror" AC_LINK_IFELSE( [AC_LANG_SOURCE([ -#include -int main(void){return 0;} +#include +int main(void){char x[[256]]; snprintf(x, sizeof(x), "XXX"); return 0;} ])], [ AC_MSG_RESULT(yes) CFLAGS="$saved_CFLAGS $t" @@ -145,8 +145,8 @@ int main(void){return 0;} AC_MSG_CHECKING(if $t works) AC_RUN_IFELSE( [AC_LANG_SOURCE([ -#include -int main(void){exit(0);} +#include +int main(void){char x[[256]]; snprintf(x, sizeof(x), "XXX"); return 0;} ])], [ AC_MSG_RESULT(yes) break ], -- cgit v1.2.3 From 8533c7801d598fa048a7a0ef33d4404ae5d67b3e Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 8 Dec 2008 09:54:40 +1100 Subject: - markus@cvs.openbsd.org 2008/12/02 19:01:07 [clientloop.c] we have to use the recipient's channel number (RFC 4254) for SSH2_MSG_CHANNEL_SUCCESS/SSH2_MSG_CHANNEL_FAILURE messages, otherwise we trigger 'Non-public channel' error messages on sshd systems with clientkeepalive enabled; noticed by sturm; ok djm; --- ChangeLog | 9 ++++++++- clientloop.c | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 91fca57aa..92f61141f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,13 @@ - (djm) [configure.ac] bz#1538: better test for ProPolice/SSP: actually use some stack in main(). Report and suggested fix from vapier AT gentoo.org + - (djm) OpenBSD CVS Sync + - markus@cvs.openbsd.org 2008/12/02 19:01:07 + [clientloop.c] + we have to use the recipient's channel number (RFC 4254) for + SSH2_MSG_CHANNEL_SUCCESS/SSH2_MSG_CHANNEL_FAILURE messages, + otherwise we trigger 'Non-public channel' error messages on sshd + systems with clientkeepalive enabled; noticed by sturm; ok djm; 20081201 - (dtucker) [contrib/cygwin/{Makefile,ssh-host-config}] Add new doc files @@ -4950,5 +4957,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5148 2008/12/07 22:35:36 djm Exp $ +$Id: ChangeLog,v 1.5149 2008/12/07 22:54:40 djm Exp $ diff --git a/clientloop.c b/clientloop.c index 737807496..df4545828 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.204 2008/11/05 03:23:09 stevesk Exp $ */ +/* $OpenBSD: clientloop.c,v 1.205 2008/12/02 19:01:07 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1852,7 +1852,7 @@ client_input_channel_req(int type, u_int32_t seq, void *ctxt) if (reply) { packet_start(success ? SSH2_MSG_CHANNEL_SUCCESS : SSH2_MSG_CHANNEL_FAILURE); - packet_put_int(id); + packet_put_int(c->remote_id); packet_send(); } xfree(rtype); -- cgit v1.2.3 From 5a33ec68bc7cf35e4ad5f19e101fd41266ea9e18 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 8 Dec 2008 09:55:02 +1100 Subject: - markus@cvs.openbsd.org 2008/12/02 19:08:59 [serverloop.c] backout 1.149, since it's not necessary and openssh clients send broken CHANNEL_FAILURE/SUCCESS messages since about 2004; ok djm@ --- ChangeLog | 6 +++++- serverloop.c | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 92f61141f..d601d8d72 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,10 @@ SSH2_MSG_CHANNEL_SUCCESS/SSH2_MSG_CHANNEL_FAILURE messages, otherwise we trigger 'Non-public channel' error messages on sshd systems with clientkeepalive enabled; noticed by sturm; ok djm; + - markus@cvs.openbsd.org 2008/12/02 19:08:59 + [serverloop.c] + backout 1.149, since it's not necessary and openssh clients send + broken CHANNEL_FAILURE/SUCCESS messages since about 2004; ok djm@ 20081201 - (dtucker) [contrib/cygwin/{Makefile,ssh-host-config}] Add new doc files @@ -4957,5 +4961,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5149 2008/12/07 22:54:40 djm Exp $ +$Id: ChangeLog,v 1.5150 2008/12/07 22:55:02 djm Exp $ diff --git a/serverloop.c b/serverloop.c index 77d9dee75..6a3ae1665 100644 --- a/serverloop.c +++ b/serverloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: serverloop.c,v 1.153 2008/06/30 12:15:39 djm Exp $ */ +/* $OpenBSD: serverloop.c,v 1.154 2008/12/02 19:08:59 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1202,9 +1202,9 @@ server_init_dispatch_20(void) dispatch_set(SSH2_MSG_CHANNEL_REQUEST, &server_input_channel_req); dispatch_set(SSH2_MSG_CHANNEL_WINDOW_ADJUST, &channel_input_window_adjust); dispatch_set(SSH2_MSG_GLOBAL_REQUEST, &server_input_global_request); - dispatch_set(SSH2_MSG_CHANNEL_SUCCESS, &channel_input_status_confirm); - dispatch_set(SSH2_MSG_CHANNEL_FAILURE, &channel_input_status_confirm); /* client_alive */ + dispatch_set(SSH2_MSG_CHANNEL_SUCCESS, &server_input_keep_alive); + dispatch_set(SSH2_MSG_CHANNEL_FAILURE, &server_input_keep_alive); dispatch_set(SSH2_MSG_REQUEST_SUCCESS, &server_input_keep_alive); dispatch_set(SSH2_MSG_REQUEST_FAILURE, &server_input_keep_alive); /* rekeying */ -- cgit v1.2.3 From 16a73076b7a6e23989b76621e36c7adf8a587432 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 8 Dec 2008 09:55:25 +1100 Subject: - markus@cvs.openbsd.org 2008/12/02 19:09:38 [channels.c] s/remote_id/id/ to be more consistent with other code; ok djm@ --- ChangeLog | 5 ++++- channels.c | 12 ++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index d601d8d72..0c986d4c0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -13,6 +13,9 @@ [serverloop.c] backout 1.149, since it's not necessary and openssh clients send broken CHANNEL_FAILURE/SUCCESS messages since about 2004; ok djm@ + - markus@cvs.openbsd.org 2008/12/02 19:09:38 + [channels.c] + s/remote_id/id/ to be more consistent with other code; ok djm@ 20081201 - (dtucker) [contrib/cygwin/{Makefile,ssh-host-config}] Add new doc files @@ -4961,5 +4964,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5150 2008/12/07 22:55:02 djm Exp $ +$Id: ChangeLog,v 1.5151 2008/12/07 22:55:25 djm Exp $ diff --git a/channels.c b/channels.c index 225551e6a..5b7d6d649 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.288 2008/11/11 03:55:11 stevesk Exp $ */ +/* $OpenBSD: channels.c,v 1.289 2008/12/02 19:09:38 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -2377,18 +2377,18 @@ channel_input_status_confirm(int type, u_int32_t seq, void *ctxt) { Channel *c; struct channel_confirm *cc; - int remote_id; + int id; /* Reset keepalive timeout */ keep_alive_timeouts = 0; - remote_id = packet_get_int(); + id = packet_get_int(); packet_check_eom(); - debug2("channel_input_status_confirm: type %d id %d", type, remote_id); + debug2("channel_input_status_confirm: type %d id %d", type, id); - if ((c = channel_lookup(remote_id)) == NULL) { - logit("channel_input_status_confirm: %d: unknown", remote_id); + if ((c = channel_lookup(id)) == NULL) { + logit("channel_input_status_confirm: %d: unknown", id); return; } ; -- cgit v1.2.3 From 586b00532f89e6166e6a74bdf3e801cc59449b84 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 9 Dec 2008 14:11:32 +1100 Subject: - djm@cvs.openbsd.org 2008/12/09 02:38:18 [clientloop.c] The ~C escape handler does not work correctly for multiplexed sessions - it opens a commandline on the master session, instead of on the slave that requested it. Disable it on slave sessions until such time as it is fixed; bz#1543 report from Adrian Bridgett via Colin Watson ok markus@ --- ChangeLog | 12 +++++++++++- clientloop.c | 8 ++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0c986d4c0..8626eee63 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +20081209 + - (djm) OpenBSD CVS Sync + - djm@cvs.openbsd.org 2008/12/09 02:38:18 + [clientloop.c] + The ~C escape handler does not work correctly for multiplexed sessions - + it opens a commandline on the master session, instead of on the slave + that requested it. Disable it on slave sessions until such time as it + is fixed; bz#1543 report from Adrian Bridgett via Colin Watson + ok markus@ + 20081208 - (djm) [configure.ac] bz#1538: better test for ProPolice/SSP: actually use some stack in main(). @@ -4964,5 +4974,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5151 2008/12/07 22:55:25 djm Exp $ +$Id: ChangeLog,v 1.5152 2008/12/09 03:11:32 djm Exp $ diff --git a/clientloop.c b/clientloop.c index df4545828..0d228421c 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.205 2008/12/02 19:01:07 markus Exp $ */ +/* $OpenBSD: clientloop.c,v 1.206 2008/12/09 02:38:18 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1042,7 +1042,6 @@ process_escapes(Channel *c, Buffer *bin, Buffer *bout, Buffer *berr, Supported escape sequences:\r\n\ %c. - terminate session\r\n\ %cB - send a BREAK to the remote system\r\n\ - %cC - open a command line\r\n\ %cR - Request rekey (SSH protocol 2 only)\r\n\ %c# - list forwarded connections\r\n\ %c? - this message\r\n\ @@ -1051,8 +1050,7 @@ Supported escape sequences:\r\n\ escape_char, escape_char, escape_char, escape_char, escape_char, escape_char, - escape_char, escape_char, - escape_char); + escape_char, escape_char); } else { snprintf(string, sizeof string, "%c?\r\n\ @@ -1087,6 +1085,8 @@ Supported escape sequences:\r\n\ continue; case 'C': + if (c && c->ctl_fd != -1) + goto noescape; process_cmdline(); continue; -- cgit v1.2.3 From 1be2cc44961177897c3380ed7a8ec3641d5fd8ad Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 9 Dec 2008 14:11:49 +1100 Subject: - djm@cvs.openbsd.org 2008/12/09 02:39:59 [sftp.c] Deal correctly with failures in remote stat() operation in sftp, correcting fail-on-error behaviour in batchmode. bz#1541 report and fix from anedvedicky AT gmail.com; ok markus@ --- ChangeLog | 7 ++++++- sftp.c | 12 +++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8626eee63..2ea6a05da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,11 @@ that requested it. Disable it on slave sessions until such time as it is fixed; bz#1543 report from Adrian Bridgett via Colin Watson ok markus@ + - djm@cvs.openbsd.org 2008/12/09 02:39:59 + [sftp.c] + Deal correctly with failures in remote stat() operation in sftp, + correcting fail-on-error behaviour in batchmode. bz#1541 report and + fix from anedvedicky AT gmail.com; ok markus@ 20081208 - (djm) [configure.ac] bz#1538: better test for ProPolice/SSP: actually @@ -4974,5 +4979,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5152 2008/12/09 03:11:32 djm Exp $ +$Id: ChangeLog,v 1.5153 2008/12/09 03:11:49 djm Exp $ diff --git a/sftp.c b/sftp.c index e1aa49d0f..4e3c833f7 100644 --- a/sftp.c +++ b/sftp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp.c,v 1.103 2008/07/13 22:16:03 djm Exp $ */ +/* $OpenBSD: sftp.c,v 1.104 2008/12/09 02:39:59 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -1386,17 +1386,19 @@ parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd, remote_glob(conn, path1, GLOB_NOCHECK, NULL, &g); for (i = 0; g.gl_pathv[i] && !interrupted; i++) { if (!(aa = do_stat(conn, g.gl_pathv[i], 0))) { - if (err != 0 && err_abort) + if (err_abort) { + err = -1; break; - else + } else continue; } if (!(aa->flags & SSH2_FILEXFER_ATTR_UIDGID)) { error("Can't get current ownership of " "remote file \"%s\"", g.gl_pathv[i]); - if (err != 0 && err_abort) + if (err_abort) { + err = -1; break; - else + } else continue; } aa->flags &= SSH2_FILEXFER_ATTR_UIDGID; -- cgit v1.2.3 From 0d772d9d11ceedd9432383019a75859813149673 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 9 Dec 2008 14:12:05 +1100 Subject: - djm@cvs.openbsd.org 2008/12/09 02:58:16 [readconf.c] don't leave junk (free'd) pointers around in Forward *fwd argument on failure; avoids double-free in ~C -L handler when given an invalid forwarding specification; bz#1539 report from adejong AT debian.org via Colin Watson; ok markus@ dtucker@ --- ChangeLog | 8 +++++++- readconf.c | 10 +++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2ea6a05da..ab50a006a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,12 @@ Deal correctly with failures in remote stat() operation in sftp, correcting fail-on-error behaviour in batchmode. bz#1541 report and fix from anedvedicky AT gmail.com; ok markus@ + - djm@cvs.openbsd.org 2008/12/09 02:58:16 + [readconf.c] + don't leave junk (free'd) pointers around in Forward *fwd argument on + failure; avoids double-free in ~C -L handler when given an invalid + forwarding specification; bz#1539 report from adejong AT debian.org + via Colin Watson; ok markus@ dtucker@ 20081208 - (djm) [configure.ac] bz#1538: better test for ProPolice/SSP: actually @@ -4979,5 +4985,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5153 2008/12/09 03:11:49 djm Exp $ +$Id: ChangeLog,v 1.5154 2008/12/09 03:12:05 djm Exp $ diff --git a/readconf.c b/readconf.c index d1ffd84a8..ab89e0c05 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.172 2008/11/04 19:18:00 stevesk Exp $ */ +/* $OpenBSD: readconf.c,v 1.173 2008/12/09 02:58:16 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1293,9 +1293,13 @@ parse_forward(Forward *fwd, const char *fwdspec, int dynamicfwd) return (i); fail_free: - if (fwd->connect_host != NULL) + if (fwd->connect_host != NULL) { xfree(fwd->connect_host); - if (fwd->listen_host != NULL) + fwd->connect_host = NULL; + } + if (fwd->listen_host != NULL) { xfree(fwd->listen_host); + fwd->listen_host = NULL; + } return (0); } -- cgit v1.2.3 From 7ebfad789f4e739cf5269860722cd44aab2929fb Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 9 Dec 2008 14:12:33 +1100 Subject: - djm@cvs.openbsd.org 2008/12/09 03:02:37 [sftp.1 sftp.c] correct sftp(1) and corresponding usage syntax; bz#1518 patch from imorgan AT nas.nasa.gov; ok deraadt@ improved diff jmc@ --- ChangeLog | 6 +++++- sftp.1 | 13 ++++++------- sftp.c | 6 +++--- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index ab50a006a..93e72b3cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,10 @@ failure; avoids double-free in ~C -L handler when given an invalid forwarding specification; bz#1539 report from adejong AT debian.org via Colin Watson; ok markus@ dtucker@ + - djm@cvs.openbsd.org 2008/12/09 03:02:37 + [sftp.1 sftp.c] + correct sftp(1) and corresponding usage syntax; + bz#1518 patch from imorgan AT nas.nasa.gov; ok deraadt@ improved diff jmc@ 20081208 - (djm) [configure.ac] bz#1538: better test for ProPolice/SSP: actually @@ -4985,5 +4989,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5154 2008/12/09 03:12:05 djm Exp $ +$Id: ChangeLog,v 1.5155 2008/12/09 03:12:33 djm Exp $ diff --git a/sftp.1 b/sftp.1 index b4f9a6884..c44564a29 100644 --- a/sftp.1 +++ b/sftp.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: sftp.1,v 1.67 2008/07/15 02:23:14 djm Exp $ +.\" $OpenBSD: sftp.1,v 1.68 2008/12/09 03:02:37 djm Exp $ .\" .\" Copyright (c) 2001 Damien Miller. All rights reserved. .\" @@ -22,7 +22,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: July 15 2008 $ +.Dd $Mdocdate: December 9 2008 $ .Dt SFTP 1 .Os .Sh NAME @@ -43,13 +43,12 @@ .Ar host .Ek .Nm sftp -.Oo Oo Ar user Ns @ Oc Ns -.Ar host Ns Oo : Ns Ar file Oo -.Ar file Oc Oc Oc +.Oo Ar user Ns @ Oc Ns +.Ar host Ns Op : Ns Ar .Nm sftp -.Oo Oo Ar user Ns @ Oc Ns +.Oo Ar user Ns @ Oc Ns .Ar host Ns Oo : Ns Ar dir Ns -.Oo Ar / Oc Oc Oc +.Oo Ar / Oc Oc .Nm sftp .Fl b Ar batchfile .Oo Ar user Ns @ Oc Ns Ar host diff --git a/sftp.c b/sftp.c index 4e3c833f7..4d37f8569 100644 --- a/sftp.c +++ b/sftp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp.c,v 1.104 2008/12/09 02:39:59 djm Exp $ */ +/* $OpenBSD: sftp.c,v 1.105 2008/12/09 03:04:39 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -1670,8 +1670,8 @@ usage(void) "usage: %s [-1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config]\n" " [-o ssh_option] [-P sftp_server_path] [-R num_requests]\n" " [-S program] [-s subsystem | sftp_server] host\n" - " %s [[user@]host[:file [file]]]\n" - " %s [[user@]host[:dir[/]]]\n" + " %s [user@]host[:file ...]\n" + " %s [user@]host[:dir[/]]\n" " %s -b batchfile [user@]host\n", __progname, __progname, __progname, __progname); exit(1); } -- cgit v1.2.3 From 351529ce3089bbfdc65488961016153c4e8fee03 Mon Sep 17 00:00:00 2001 From: Tim Rice Date: Wed, 7 Jan 2009 10:04:12 -0800 Subject: - (tim) [configure.ac defines.h openbsd-compat/port-uw.c openbsd-compat/xcrypt.c] Add SECUREWARE support to OpenServer 6 SVR5 ABI. OK djm@ dtucker@ --- ChangeLog | 7 ++++++- configure.ac | 9 +++++++-- defines.h | 4 ++-- openbsd-compat/port-uw.c | 4 ++-- openbsd-compat/xcrypt.c | 2 +- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 93e72b3cd..6d7c7c538 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20090107 + - (tim) [configure.ac defines.h openbsd-compat/port-uw.c + openbsd-compat/xcrypt.c] Add SECUREWARE support to OpenServer 6 SVR5 ABI. + OK djm@ dtucker@ + 20081209 - (djm) OpenBSD CVS Sync - djm@cvs.openbsd.org 2008/12/09 02:38:18 @@ -4989,5 +4994,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5155 2008/12/09 03:12:33 djm Exp $ +$Id: ChangeLog,v 1.5156 2009/01/07 18:04:12 tim Exp $ diff --git a/configure.ac b/configure.ac index 43732abb8..df834baca 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.411 2008/12/07 22:35:36 djm Exp $ +# $Id: configure.ac,v 1.412 2009/01/07 18:04:12 tim Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -15,7 +15,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) -AC_REVISION($Revision: 1.411 $) +AC_REVISION($Revision: 1.412 $) AC_CONFIG_SRCDIR([ssh.c]) AC_CONFIG_HEADER(config.h) @@ -741,6 +741,11 @@ mips-sony-bsd|mips-sony-newsos4) AC_DEFINE(BROKEN_LIBIAF, 1, [ia_uinfo routines not supported by OS yet]) AC_DEFINE(BROKEN_UPDWTMPX) + AC_CHECK_LIB(prot, getluid,[ LIBS="$LIBS -lprot" + AC_CHECK_FUNCS(getluid setluid,,,-lprot) + AC_DEFINE(HAVE_SECUREWARE) + AC_DEFINE(DISABLE_SHADOW) + ],,) ;; *) AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*") ;; diff --git a/defines.h b/defines.h index a8203ebbb..610e149cf 100644 --- a/defines.h +++ b/defines.h @@ -25,7 +25,7 @@ #ifndef _DEFINES_H #define _DEFINES_H -/* $Id: defines.h,v 1.151 2008/07/04 13:10:49 djm Exp $ */ +/* $Id: defines.h,v 1.152 2009/01/07 18:04:12 tim Exp $ */ /* Constants */ @@ -698,7 +698,7 @@ struct winsize { # define CUSTOM_SYS_AUTH_PASSWD 1 #endif -#if defined(HAVE_LIBIAF) && defined(HAVE_SET_ID) +#if defined(HAVE_LIBIAF) && defined(HAVE_SET_ID) && !defined(HAVE_SECUREWARE) # define CUSTOM_SYS_AUTH_PASSWD 1 #endif #if defined(HAVE_LIBIAF) && defined(HAVE_SET_ID) && !defined(BROKEN_LIBIAF) diff --git a/openbsd-compat/port-uw.c b/openbsd-compat/port-uw.c index ebc229a6a..be9905a6a 100644 --- a/openbsd-compat/port-uw.c +++ b/openbsd-compat/port-uw.c @@ -25,7 +25,7 @@ #include "includes.h" -#ifdef HAVE_LIBIAF +#if defined(HAVE_LIBIAF) && !defined(HAVE_SECUREWARE) #include #ifdef HAVE_CRYPT_H # include @@ -145,5 +145,5 @@ get_iaf_password(struct passwd *pw) fatal("ia_openinfo: Unable to open the shadow passwd file"); } #endif /* USE_LIBIAF */ -#endif /* HAVE_LIBIAF */ +#endif /* HAVE_LIBIAF and not HAVE_SECUREWARE */ diff --git a/openbsd-compat/xcrypt.c b/openbsd-compat/xcrypt.c index d8636bb39..6291e2884 100644 --- a/openbsd-compat/xcrypt.c +++ b/openbsd-compat/xcrypt.c @@ -28,7 +28,7 @@ #include #include -# ifdef HAVE_CRYPT_H +# if defined(HAVE_CRYPT_H) && !defined(HAVE_SECUREWARE) # include # endif -- cgit v1.2.3 From 2676791c38e16497c3d078d86c0a7608c4d946f1 Mon Sep 17 00:00:00 2001 From: Tim Rice Date: Wed, 7 Jan 2009 20:50:08 -0800 Subject: - (tim) [configure.ac] Move check_for_libcrypt_later=1 in *-*-sysv5*) section. OpenServer 6 doesn't need libcrypt. --- ChangeLog | 4 +++- configure.ac | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6d7c7c538..04a70ed5f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,8 @@ - (tim) [configure.ac defines.h openbsd-compat/port-uw.c openbsd-compat/xcrypt.c] Add SECUREWARE support to OpenServer 6 SVR5 ABI. OK djm@ dtucker@ + - (tim) [configure.ac] Move check_for_libcrypt_later=1 in *-*-sysv5*) section. + OpenServer 6 doesn't need libcrypt. 20081209 - (djm) OpenBSD CVS Sync @@ -4994,5 +4996,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5156 2009/01/07 18:04:12 tim Exp $ +$Id: ChangeLog,v 1.5157 2009/01/08 04:50:08 tim Exp $ diff --git a/configure.ac b/configure.ac index df834baca..94589ddc7 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.412 2009/01/07 18:04:12 tim Exp $ +# $Id: configure.ac,v 1.413 2009/01/08 04:50:09 tim Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -15,7 +15,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) -AC_REVISION($Revision: 1.412 $) +AC_REVISION($Revision: 1.413 $) AC_CONFIG_SRCDIR([ssh.c]) AC_CONFIG_HEADER(config.h) @@ -728,7 +728,6 @@ mips-sony-bsd|mips-sony-newsos4) ;; # UnixWare 7.x, OpenUNIX 8 *-*-sysv5*) - check_for_libcrypt_later=1 AC_DEFINE(UNIXWARE_LONG_PASSWORDS, 1, [Support passwords > 8 chars]) AC_DEFINE(USE_PIPES) AC_DEFINE(SETEUID_BREAKS_SETUID) @@ -748,6 +747,7 @@ mips-sony-bsd|mips-sony-newsos4) ],,) ;; *) AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*") + check_for_libcrypt_later=1 ;; esac ;; -- cgit v1.2.3 From 1598d6bc559b766e1fde83d9d9e4929d2694b090 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 21 Jan 2009 16:04:24 +1100 Subject: - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. Patch based on one from vgiffin AT apple.com; ok dtucker@ --- ChangeLog | 6 +++++- uidswap.c | 10 ++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 04a70ed5f..c0204b068 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +20090107 + - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. + Patch based on one from vgiffin AT apple.com; ok dtucker@ + 20090107 - (tim) [configure.ac defines.h openbsd-compat/port-uw.c openbsd-compat/xcrypt.c] Add SECUREWARE support to OpenServer 6 SVR5 ABI. @@ -4996,5 +5000,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5157 2009/01/08 04:50:08 tim Exp $ +$Id: ChangeLog,v 1.5158 2009/01/21 05:04:24 djm Exp $ diff --git a/uidswap.c b/uidswap.c index 91d878c30..837648396 100644 --- a/uidswap.c +++ b/uidswap.c @@ -233,6 +233,16 @@ permanently_set_uid(struct passwd *pw) fatal("setgid %u: %.100s", (u_int)pw->pw_gid, strerror(errno)); #endif +#ifdef __APPLE__ + /* + * OS X requires initgroups after setgid to opt back into + * memberd support for >16 supplemental groups. + */ + if (initgroups(pw->pw_name, pw->pw_gid) < 0) + fatal("initgroups %.100s %u: %.100s", + pw->pw_name, (u_int)pw->pw_gid, strerror(errno)); +#endif + #if defined(HAVE_SETRESUID) && !defined(BROKEN_SETRESUID) if (setresuid(pw->pw_uid, pw->pw_uid, pw->pw_uid) < 0) fatal("setresuid %u: %.100s", (u_int)pw->pw_uid, strerror(errno)); -- cgit v1.2.3 From 819dbb633af6e1970c6b3275882c85d458441500 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 21 Jan 2009 16:46:26 +1100 Subject: - (djm) [channels.c] bz#1419: support "on demand" X11 forwarding via launchd on OS X; patch from vgiffin AT apple.com, slightly tweaked; ok dtucker@ --- ChangeLog | 5 ++++- channels.c | 23 +++++++++++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index c0204b068..f2c556c1a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,9 @@ 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. Patch based on one from vgiffin AT apple.com; ok dtucker@ + - (djm) [channels.c] bz#1419: support "on demand" X11 forwarding via + launchd on OS X; patch from vgiffin AT apple.com, slightly tweaked; + ok dtucker@ 20090107 - (tim) [configure.ac defines.h openbsd-compat/port-uw.c @@ -5000,5 +5003,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5158 2009/01/21 05:04:24 djm Exp $ +$Id: ChangeLog,v 1.5159 2009/01/21 05:46:26 djm Exp $ diff --git a/channels.c b/channels.c index 5b7d6d649..8fcba783e 100644 --- a/channels.c +++ b/channels.c @@ -3078,7 +3078,7 @@ x11_create_display_inet(int x11_display_offset, int x11_use_localhost, } static int -connect_local_xsocket(u_int dnr) +connect_local_xsocket_path(const char *pathname) { int sock; struct sockaddr_un addr; @@ -3088,7 +3088,7 @@ connect_local_xsocket(u_int dnr) error("socket: %.100s", strerror(errno)); memset(&addr, 0, sizeof(addr)); addr.sun_family = AF_UNIX; - snprintf(addr.sun_path, sizeof addr.sun_path, _PATH_UNIX_X, dnr); + strlcpy(addr.sun_path, pathname, sizeof addr.sun_path); if (connect(sock, (struct sockaddr *)&addr, sizeof(addr)) == 0) return sock; close(sock); @@ -3096,6 +3096,14 @@ connect_local_xsocket(u_int dnr) return -1; } +static int +connect_local_xsocket(u_int dnr) +{ + char buf[1024]; + snprintf(buf, sizeof buf, _PATH_UNIX_X, dnr); + return connect_local_xsocket_path(buf); +} + int x11_connect_display(void) { @@ -3117,6 +3125,17 @@ x11_connect_display(void) * connection to the real X server. */ + /* Check if the display is from launchd. */ +#ifdef __APPLE__ + if (strncmp(display, "/tmp/launch", 11) == 0) { + sock = connect_local_xsocket_path(display); + if (sock < 0) + return -1; + + /* OK, we now have a connection to the display. */ + return sock; + } +#endif /* * Check if it is a unix domain socket. Unix domain displays are in * one of the following formats: unix:d[.s], :d[.s], ::d[.s] -- cgit v1.2.3 From 0266677f0feb72b092f87480a4c8695c71db9684 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 21 Jan 2009 20:29:20 +1100 Subject: - (djm) [contrib/ssh-copy-id.1 contrib/ssh-copy-id] bz#1492: Make ssh-copy-id copy id_rsa.pub by default (instead of the legacy "identity" key). Patch from cjwatson AT debian.org --- ChangeLog | 5 ++++- contrib/ssh-copy-id | 4 ++-- contrib/ssh-copy-id.1 | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index f2c556c1a..d19ae7235 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,9 @@ - (djm) [channels.c] bz#1419: support "on demand" X11 forwarding via launchd on OS X; patch from vgiffin AT apple.com, slightly tweaked; ok dtucker@ + - (djm) [contrib/ssh-copy-id.1 contrib/ssh-copy-id] bz#1492: Make + ssh-copy-id copy id_rsa.pub by default (instead of the legacy "identity" + key). Patch from cjwatson AT debian.org 20090107 - (tim) [configure.ac defines.h openbsd-compat/port-uw.c @@ -5003,5 +5006,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5159 2009/01/21 05:46:26 djm Exp $ +$Id: ChangeLog,v 1.5160 2009/01/21 09:29:20 djm Exp $ diff --git a/contrib/ssh-copy-id b/contrib/ssh-copy-id index acd36d398..df74d25c8 100644 --- a/contrib/ssh-copy-id +++ b/contrib/ssh-copy-id @@ -1,11 +1,11 @@ #!/bin/sh -# Shell script to install your identity.pub on a remote machine +# Shell script to install your public key on a remote machine # Takes the remote machine name as an argument. # Obviously, the remote machine must accept password authentication, # or one of the other keys in your ssh-agent, for this to work. -ID_FILE="${HOME}/.ssh/identity.pub" +ID_FILE="${HOME}/.ssh/id_rsa.pub" if [ "-i" = "$1" ]; then shift diff --git a/contrib/ssh-copy-id.1 b/contrib/ssh-copy-id.1 index b331fa149..f25ed01f2 100644 --- a/contrib/ssh-copy-id.1 +++ b/contrib/ssh-copy-id.1 @@ -18,7 +18,7 @@ the original English. .. .TH SSH-COPY-ID 1 "14 November 1999" "OpenSSH" .SH NAME -ssh-copy-id \- install your identity.pub in a remote machine's authorized_keys +ssh-copy-id \- install your public key in a remote machine's authorized_keys .SH SYNOPSIS .B ssh-copy-id [-i [identity_file]] .I "[user@]machine" @@ -42,7 +42,7 @@ set in its configuration). If the .B -i option is given then the identity file (defaults to -.BR ~/.ssh/identity.pub ) +.BR ~/.ssh/id_rsa.pub ) is used, regardless of whether there are any keys in your .BR ssh-agent . Otherwise, if this: -- cgit v1.2.3 From b53d8a18823cfa689b6a2353c6f82aaf364047bf Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:13:04 +1100 Subject: - stevesk@cvs.openbsd.org 2008/12/09 03:20:42 [channels.c servconf.c] channel_print_adm_permitted_opens() should deal with all the printing for that config option. suggested by markus@; ok markus@ djm@ dtucker@ --- ChangeLog | 10 +++++++++- channels.c | 6 ++++-- servconf.c | 4 +--- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index d19ae7235..c099443d1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +20081228 + - (djm) OpenBSD CVS Sync + - stevesk@cvs.openbsd.org 2008/12/09 03:20:42 + [channels.c servconf.c] + channel_print_adm_permitted_opens() should deal with all the printing + for that config option. suggested by markus@; ok markus@ djm@ + dtucker@ + 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. Patch based on one from vgiffin AT apple.com; ok dtucker@ @@ -5006,5 +5014,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5160 2009/01/21 09:29:20 djm Exp $ +$Id: ChangeLog,v 1.5161 2009/01/28 05:13:04 djm Exp $ diff --git a/channels.c b/channels.c index 8fcba783e..c0d335921 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.289 2008/12/02 19:09:38 markus Exp $ */ +/* $OpenBSD: channels.c,v 1.290 2008/12/09 03:20:42 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -2791,14 +2791,16 @@ channel_print_adm_permitted_opens(void) { int i; + printf("permitopen"); if (num_adm_permitted_opens == 0) { - printf(" any"); + printf(" any\n"); return; } for (i = 0; i < num_adm_permitted_opens; i++) if (permitted_adm_opens[i].host_to_connect != NULL) printf(" %s:%d", permitted_adm_opens[i].host_to_connect, permitted_adm_opens[i].port_to_connect); + printf("\n"); } /* Try to start non-blocking connect to next host in cctx list */ diff --git a/servconf.c b/servconf.c index 659a1eb21..7d8851860 100644 --- a/servconf.c +++ b/servconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.c,v 1.192 2008/11/11 02:58:09 stevesk Exp $ */ +/* $OpenBSD: servconf.c,v 1.193 2008/12/09 03:20:42 stevesk Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -1655,7 +1655,5 @@ dump_config(ServerOptions *o) } dump_cfg_string(sPermitTunnel, s); - printf("permitopen"); channel_print_adm_permitted_opens(); - printf("\n"); } -- cgit v1.2.3 From c30def96e2c7cf3cb7f11182603d457fe8d093cf Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:13:39 +1100 Subject: - djm@cvs.openbsd.org 2008/12/09 04:32:22 [auth2-chall.c] replace by-hand string building with xasprinf(); ok deraadt@ --- ChangeLog | 5 ++++- auth2-chall.c | 10 +++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index c099443d1..066930714 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,9 @@ channel_print_adm_permitted_opens() should deal with all the printing for that config option. suggested by markus@; ok markus@ djm@ dtucker@ + - djm@cvs.openbsd.org 2008/12/09 04:32:22 + [auth2-chall.c] + replace by-hand string building with xasprinf(); ok deraadt@ 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5014,5 +5017,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5161 2009/01/28 05:13:04 djm Exp $ +$Id: ChangeLog,v 1.5162 2009/01/28 05:13:39 djm Exp $ diff --git a/auth2-chall.c b/auth2-chall.c index d816578c6..e6dbffe22 100644 --- a/auth2-chall.c +++ b/auth2-chall.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2-chall.c,v 1.33 2007/09/21 08:15:29 djm Exp $ */ +/* $OpenBSD: auth2-chall.c,v 1.34 2008/12/09 04:32:22 djm Exp $ */ /* * Copyright (c) 2001 Markus Friedl. All rights reserved. * Copyright (c) 2001 Per Allansson. All rights reserved. @@ -281,7 +281,7 @@ input_userauth_info_response(int type, u_int32_t seq, void *ctxt) { Authctxt *authctxt = ctxt; KbdintAuthctxt *kbdintctxt; - int authenticated = 0, res, len; + int authenticated = 0, res; u_int i, nresp; char **response = NULL, *method; @@ -330,11 +330,7 @@ input_userauth_info_response(int type, u_int32_t seq, void *ctxt) break; } - len = strlen("keyboard-interactive") + 2 + - strlen(kbdintctxt->device->name); - method = xmalloc(len); - snprintf(method, len, "keyboard-interactive/%s", - kbdintctxt->device->name); + xasprintf(&method, "keyboard-interactive/%s", kbdintctxt->device->name); if (!authctxt->postponed) { if (authenticated) { -- cgit v1.2.3 From 62fd18a2b7e840fa3b961dafefae4ffdc5efeba6 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:14:09 +1100 Subject: - sobrado@cvs.openbsd.org 2008/12/09 15:35:00 [sftp.1 sftp.c] update for the synopses displayed by the 'help' command, there are a few missing flags; add 'bye' to the output of 'help'; sorting and spacing. jmc@ suggested replacing .Oo/.Oc with a single .Op macro. ok jmc@ --- ChangeLog | 8 +++++++- sftp.1 | 6 +++--- sftp.c | 63 ++++++++++++++++++++++++++++++++------------------------------- 3 files changed, 42 insertions(+), 35 deletions(-) diff --git a/ChangeLog b/ChangeLog index 066930714..f3a1b0033 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,12 @@ - djm@cvs.openbsd.org 2008/12/09 04:32:22 [auth2-chall.c] replace by-hand string building with xasprinf(); ok deraadt@ + - sobrado@cvs.openbsd.org 2008/12/09 15:35:00 + [sftp.1 sftp.c] + update for the synopses displayed by the 'help' command, there are a + few missing flags; add 'bye' to the output of 'help'; sorting and spacing. + jmc@ suggested replacing .Oo/.Oc with a single .Op macro. + ok jmc@ 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5017,5 +5023,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5162 2009/01/28 05:13:39 djm Exp $ +$Id: ChangeLog,v 1.5163 2009/01/28 05:14:09 djm Exp $ diff --git a/sftp.1 b/sftp.1 index c44564a29..37ccb3a38 100644 --- a/sftp.1 +++ b/sftp.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: sftp.1,v 1.68 2008/12/09 03:02:37 djm Exp $ +.\" $OpenBSD: sftp.1,v 1.69 2008/12/09 15:35:00 sobrado Exp $ .\" .\" Copyright (c) 2001 Damien Miller. All rights reserved. .\" @@ -48,7 +48,7 @@ .Nm sftp .Oo Ar user Ns @ Oc Ns .Ar host Ns Oo : Ns Ar dir Ns -.Oo Ar / Oc Oc +.Op Ar / Oc .Nm sftp .Fl b Ar batchfile .Oo Ar user Ns @ Oc Ns Ar host @@ -441,7 +441,7 @@ to Display the .Nm protocol version. -.It Ic \&! Ar command +.It Ic \&! Ns Ar command Execute .Ar command in local shell. diff --git a/sftp.c b/sftp.c index 4d37f8569..01077a7a7 100644 --- a/sftp.c +++ b/sftp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp.c,v 1.105 2008/12/09 03:04:39 djm Exp $ */ +/* $OpenBSD: sftp.c,v 1.106 2008/12/09 15:35:00 sobrado Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -207,36 +207,37 @@ cmd_interrupt(int signo) static void help(void) { - printf("Available commands:\n"); - printf("cd path Change remote directory to 'path'\n"); - printf("lcd path Change local directory to 'path'\n"); - printf("chgrp grp path Change group of file 'path' to 'grp'\n"); - printf("chmod mode path Change permissions of file 'path' to 'mode'\n"); - printf("chown own path Change owner of file 'path' to 'own'\n"); - printf("df [path] Display statistics for current directory or\n"); - printf(" filesystem containing 'path'\n"); - printf("help Display this help text\n"); - printf("get remote-path [local-path] Download file\n"); - printf("lls [ls-options [path]] Display local directory listing\n"); - printf("ln oldpath newpath Symlink remote file\n"); - printf("lmkdir path Create local directory\n"); - printf("lpwd Print local working directory\n"); - printf("ls [path] Display remote directory listing\n"); - printf("lumask umask Set local umask to 'umask'\n"); - printf("mkdir path Create remote directory\n"); - printf("progress Toggle display of progress meter\n"); - printf("put local-path [remote-path] Upload file\n"); - printf("pwd Display remote working directory\n"); - printf("exit Quit sftp\n"); - printf("quit Quit sftp\n"); - printf("rename oldpath newpath Rename remote file\n"); - printf("rmdir path Remove remote directory\n"); - printf("rm path Delete remote file\n"); - printf("symlink oldpath newpath Symlink remote file\n"); - printf("version Show SFTP version\n"); - printf("!command Execute 'command' in local shell\n"); - printf("! Escape to local shell\n"); - printf("? Synonym for help\n"); + printf("Available commands:\n" + "bye Quit sftp\n" + "cd path Change remote directory to 'path'\n" + "chgrp grp path Change group of file 'path' to 'grp'\n" + "chmod mode path Change permissions of file 'path' to 'mode'\n" + "chown own path Change owner of file 'path' to 'own'\n" + "df [-hi] [path] Display statistics for current directory or\n" + " filesystem containing 'path'\n" + "exit Quit sftp\n" + "get [-P] remote-path [local-path] Download file\n" + "help Display this help text\n" + "lcd path Change local directory to 'path'\n" + "lls [ls-options [path]] Display local directory listing\n" + "lmkdir path Create local directory\n" + "ln oldpath newpath Symlink remote file\n" + "lpwd Print local working directory\n" + "ls [-1aflnrSt] [path] Display remote directory listing\n" + "lumask umask Set local umask to 'umask'\n" + "mkdir path Create remote directory\n" + "progress Toggle display of progress meter\n" + "put [-P] local-path [remote-path] Upload file\n" + "pwd Display remote working directory\n" + "quit Quit sftp\n" + "rename oldpath newpath Rename remote file\n" + "rm path Delete remote file\n" + "rmdir path Remove remote directory\n" + "symlink oldpath newpath Symlink remote file\n" + "version Show SFTP version\n" + "!command Execute 'command' in local shell\n" + "! Escape to local shell\n" + "? Synonym for help\n"); } static void -- cgit v1.2.3 From b3f2c9fcaf082077ba42f86272011fe08ece3afa Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:15:30 +1100 Subject: - stevesk@cvs.openbsd.org 2008/12/09 22:37:33 [clientloop.c] fix typo in error message --- ChangeLog | 5 ++++- clientloop.c | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f3a1b0033..482bd6bed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,9 @@ few missing flags; add 'bye' to the output of 'help'; sorting and spacing. jmc@ suggested replacing .Oo/.Oc with a single .Op macro. ok jmc@ + - stevesk@cvs.openbsd.org 2008/12/09 22:37:33 + [clientloop.c] + fix typo in error message 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5023,5 +5026,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5163 2009/01/28 05:14:09 djm Exp $ +$Id: ChangeLog,v 1.5164 2009/01/28 05:15:30 djm Exp $ diff --git a/clientloop.c b/clientloop.c index 0d228421c..fdeedc351 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.206 2008/12/09 02:38:18 djm Exp $ */ +/* $OpenBSD: clientloop.c,v 1.207 2008/12/09 22:37:33 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1728,7 +1728,7 @@ client_request_tun_fwd(int tun_mode, int local_tun, int remote_tun) return 0; if (!compat20) { - error("Tunnel forwarding is not support for protocol 1"); + error("Tunnel forwarding is not supported for protocol 1"); return -1; } -- cgit v1.2.3 From 7375fe2c6d42e62b30a90e7a874f188c891061d5 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:16:00 +1100 Subject: - stevesk@cvs.openbsd.org 2008/12/10 03:55:20 [addrmatch.c] o cannot be NULL here but use xfree() to be consistent; ok djm@ --- ChangeLog | 5 ++++- addrmatch.c | 5 +++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 482bd6bed..012a66514 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,9 @@ - stevesk@cvs.openbsd.org 2008/12/09 22:37:33 [clientloop.c] fix typo in error message + - stevesk@cvs.openbsd.org 2008/12/10 03:55:20 + [addrmatch.c] + o cannot be NULL here but use xfree() to be consistent; ok djm@ 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5026,5 +5029,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5164 2009/01/28 05:15:30 djm Exp $ +$Id: ChangeLog,v 1.5165 2009/01/28 05:16:00 djm Exp $ diff --git a/addrmatch.c b/addrmatch.c index f3c861a1f..d39885b7b 100644 --- a/addrmatch.c +++ b/addrmatch.c @@ -1,4 +1,4 @@ -/* $OpenBSD: addrmatch.c,v 1.3 2008/06/10 23:06:19 djm Exp $ */ +/* $OpenBSD: addrmatch.c,v 1.4 2008/12/10 03:55:20 stevesk Exp $ */ /* * Copyright (c) 2004-2008 Damien Miller @@ -31,6 +31,7 @@ #include "match.h" #include "log.h" +#include "xmalloc.h" struct xaddr { sa_family_t af; @@ -417,7 +418,7 @@ addr_match_list(const char *addr, const char *_list) goto foundit; } } - free(o); + xfree(o); return ret; } -- cgit v1.2.3 From b2c17d4b173103fa8621f5a11de0ba56840e86af Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:18:03 +1100 Subject: - stevesk@cvs.openbsd.org 2008/12/29 01:12:36 [ssh-keyscan.1] fix example, default key type is rsa for 3+ years; from frederic.perrin@resel.fr --- ChangeLog | 6 +++++- ssh-keyscan.1 | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 012a66514..7dcd78087 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,10 @@ - stevesk@cvs.openbsd.org 2008/12/10 03:55:20 [addrmatch.c] o cannot be NULL here but use xfree() to be consistent; ok djm@ + - stevesk@cvs.openbsd.org 2008/12/29 01:12:36 + [ssh-keyscan.1] + fix example, default key type is rsa for 3+ years; from + frederic.perrin@resel.fr 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5029,5 +5033,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5165 2009/01/28 05:16:00 djm Exp $ +$Id: ChangeLog,v 1.5166 2009/01/28 05:18:03 djm Exp $ diff --git a/ssh-keyscan.1 b/ssh-keyscan.1 index 299a6cc94..4a5864566 100644 --- a/ssh-keyscan.1 +++ b/ssh-keyscan.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keyscan.1,v 1.25 2008/11/01 11:14:36 sobrado Exp $ +.\" $OpenBSD: ssh-keyscan.1,v 1.26 2008/12/29 01:12:36 stevesk Exp $ .\" .\" Copyright 1995, 1996 by David Mazieres . .\" @@ -6,7 +6,7 @@ .\" permitted provided that due credit is given to the author and the .\" OpenBSD project by leaving this copyright notice intact. .\" -.Dd $Mdocdate: November 1 2008 $ +.Dd $Mdocdate: December 29 2008 $ .Dt SSH-KEYSCAN 1 .Os .Sh NAME @@ -137,7 +137,7 @@ or .Pa /etc/ssh/ssh_known_hosts .Sh EXAMPLES Print the -.Pa rsa1 +.Pa rsa host key for machine .Pa hostname : .Bd -literal -- cgit v1.2.3 From a70ac76a87a7e45488fbc4cdc0d538b4c8483078 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:19:52 +1100 Subject: - stevesk@cvs.openbsd.org 2008/12/29 02:23:26 [pathnames.h] no need to escape single quotes in comments --- ChangeLog | 5 ++++- pathnames.h | 10 +++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7dcd78087..dee0e703a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24,6 +24,9 @@ [ssh-keyscan.1] fix example, default key type is rsa for 3+ years; from frederic.perrin@resel.fr + - stevesk@cvs.openbsd.org 2008/12/29 02:23:26 + [pathnames.h] + no need to escape single quotes in comments 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5033,5 +5036,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5166 2009/01/28 05:18:03 djm Exp $ +$Id: ChangeLog,v 1.5167 2009/01/28 05:19:52 djm Exp $ diff --git a/pathnames.h b/pathnames.h index f2571e274..80c5d9cbb 100644 --- a/pathnames.h +++ b/pathnames.h @@ -1,4 +1,4 @@ -/* $OpenBSD: pathnames.h,v 1.16 2006/03/25 22:22:43 djm Exp $ */ +/* $OpenBSD: pathnames.h,v 1.17 2008/12/29 02:23:26 stevesk Exp $ */ /* * Author: Tatu Ylonen @@ -54,7 +54,7 @@ #define _PATH_SSH_DAEMON_PID_FILE _PATH_SSH_PIDDIR "/sshd.pid" /* - * The directory in user\'s home directory in which the files reside. The + * The directory in user's home directory in which the files reside. The * directory should be world-readable (though not all files are). */ #define _PATH_SSH_USER_DIR ".ssh" @@ -77,9 +77,9 @@ #define _PATH_SSH_CLIENT_ID_RSA ".ssh/id_rsa" /* - * Configuration file in user\'s home directory. This file need not be + * Configuration file in user's home directory. This file need not be * readable by anyone but the user him/herself, but does not contain anything - * particularly secret. If the user\'s home directory resides on an NFS + * particularly secret. If the user's home directory resides on an NFS * volume where root is mapped to nobody, this may need to be world-readable. */ #define _PATH_SSH_USER_CONFFILE ".ssh/config" @@ -87,7 +87,7 @@ /* * File containing a list of those rsa keys that permit logging in as this * user. This file need not be readable by anyone but the user him/herself, - * but does not contain anything particularly secret. If the user\'s home + * but does not contain anything particularly secret. If the user's home * directory resides on an NFS volume where root is mapped to nobody, this * may need to be world-readable. (This file is read by the daemon which is * running as root.) -- cgit v1.2.3 From 17819015f0debf7dc6a4e908b6e830ff105e4685 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:20:17 +1100 Subject: - okan@cvs.openbsd.org 2008/12/30 00:46:56 [sshd_config.5] add AllowAgentForwarding to available Match keywords list ok djm --- ChangeLog | 6 +++++- sshd_config.5 | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index dee0e703a..0abbd02eb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -27,6 +27,10 @@ - stevesk@cvs.openbsd.org 2008/12/29 02:23:26 [pathnames.h] no need to escape single quotes in comments + - okan@cvs.openbsd.org 2008/12/30 00:46:56 + [sshd_config.5] + add AllowAgentForwarding to available Match keywords list + ok djm 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5036,5 +5040,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5167 2009/01/28 05:19:52 djm Exp $ +$Id: ChangeLog,v 1.5168 2009/01/28 05:20:17 djm Exp $ diff --git a/sshd_config.5 b/sshd_config.5 index a4a4be6e5..1829b330d 100644 --- a/sshd_config.5 +++ b/sshd_config.5 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.98 2008/11/04 08:22:13 djm Exp $ -.Dd $Mdocdate: November 4 2008 $ +.\" $OpenBSD: sshd_config.5,v 1.99 2008/12/30 00:46:56 okan Exp $ +.Dd $Mdocdate: December 30 2008 $ .Dt SSHD_CONFIG 5 .Os .Sh NAME @@ -593,6 +593,7 @@ Only a subset of keywords may be used on the lines following a .Cm Match keyword. Available keywords are +.Cm AllowAgentForwarding , .Cm AllowTcpForwarding , .Cm Banner , .Cm ChrootDirectory , -- cgit v1.2.3 From 7a60621d13de221d3de77784ea14baf72e0233f4 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:22:34 +1100 Subject: - djm@cvs.openbsd.org 2009/01/01 21:14:35 [channels.c] call channel destroy callbacks on receipt of open failure messages. fixes client hangs when connecting to a server that has MaxSessions=0 set spotted by imorgan AT nas.nasa.gov; ok markus@ --- ChangeLog | 7 ++++++- channels.c | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0abbd02eb..ebefbd48f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -31,6 +31,11 @@ [sshd_config.5] add AllowAgentForwarding to available Match keywords list ok djm + - djm@cvs.openbsd.org 2009/01/01 21:14:35 + [channels.c] + call channel destroy callbacks on receipt of open failure messages. + fixes client hangs when connecting to a server that has MaxSessions=0 + set spotted by imorgan AT nas.nasa.gov; ok markus@ 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5040,5 +5045,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5168 2009/01/28 05:20:17 djm Exp $ +$Id: ChangeLog,v 1.5169 2009/01/28 05:22:34 djm Exp $ diff --git a/channels.c b/channels.c index c0d335921..d138882b3 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.290 2008/12/09 03:20:42 stevesk Exp $ */ +/* $OpenBSD: channels.c,v 1.291 2009/01/01 21:14:35 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -2311,8 +2311,8 @@ channel_input_open_failure(int type, u_int32_t seq, void *ctxt) xfree(lang); } packet_check_eom(); - /* Free the channel. This will also close the socket. */ - channel_free(c); + /* Schedule the channel for cleanup/deletion. */ + chan_mark_dead(c); } /* ARGSUSED */ -- cgit v1.2.3 From ccf7e224ab73a8134175504ff09d72655ba50fb2 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:23:06 +1100 Subject: - djm@cvs.openbsd.org 2009/01/01 21:17:36 [kexgexs.c] fix hash calculation for KEXGEX: hash over the original client-supplied values and not the sanity checked versions that we acutally use; bz#1540 reported by john.smith AT arrows.demon.co.uk ok markus@ --- ChangeLog | 8 +++++++- kexgexs.c | 27 +++++++++++++++------------ 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index ebefbd48f..4e6a18f43 100644 --- a/ChangeLog +++ b/ChangeLog @@ -36,6 +36,12 @@ call channel destroy callbacks on receipt of open failure messages. fixes client hangs when connecting to a server that has MaxSessions=0 set spotted by imorgan AT nas.nasa.gov; ok markus@ + - djm@cvs.openbsd.org 2009/01/01 21:17:36 + [kexgexs.c] + fix hash calculation for KEXGEX: hash over the original client-supplied + values and not the sanity checked versions that we acutally use; + bz#1540 reported by john.smith AT arrows.demon.co.uk + ok markus@ 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5045,5 +5051,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5169 2009/01/28 05:22:34 djm Exp $ +$Id: ChangeLog,v 1.5170 2009/01/28 05:23:06 djm Exp $ diff --git a/kexgexs.c b/kexgexs.c index a037f57f2..76a0f8ca7 100644 --- a/kexgexs.c +++ b/kexgexs.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kexgexs.c,v 1.10 2006/11/06 21:25:28 markus Exp $ */ +/* $OpenBSD: kexgexs.c,v 1.11 2009/01/01 21:17:36 djm Exp $ */ /* * Copyright (c) 2000 Niels Provos. All rights reserved. * Copyright (c) 2001 Markus Friedl. All rights reserved. @@ -56,7 +56,8 @@ kexgex_server(Kex *kex) DH *dh; u_char *kbuf, *hash, *signature = NULL, *server_host_key_blob = NULL; u_int sbloblen, klen, slen, hashlen; - int min = -1, max = -1, nbits = -1, type, kout; + int omin = -1, min = -1, omax = -1, max = -1, onbits = -1, nbits = -1; + int type, kout; if (kex->load_host_key == NULL) fatal("Cannot load hostkey"); @@ -68,27 +69,29 @@ kexgex_server(Kex *kex) switch (type) { case SSH2_MSG_KEX_DH_GEX_REQUEST: debug("SSH2_MSG_KEX_DH_GEX_REQUEST received"); - min = packet_get_int(); - nbits = packet_get_int(); - max = packet_get_int(); + omin = min = packet_get_int(); + onbits = nbits = packet_get_int(); + omax = max = packet_get_int(); min = MAX(DH_GRP_MIN, min); max = MIN(DH_GRP_MAX, max); + nbits = MAX(DH_GRP_MIN, nbits); + nbits = MIN(DH_GRP_MAX, nbits); break; case SSH2_MSG_KEX_DH_GEX_REQUEST_OLD: debug("SSH2_MSG_KEX_DH_GEX_REQUEST_OLD received"); - nbits = packet_get_int(); - min = DH_GRP_MIN; - max = DH_GRP_MAX; + onbits = nbits = packet_get_int(); /* unused for old GEX */ + omin = min = DH_GRP_MIN; + omax = max = DH_GRP_MAX; break; default: fatal("protocol error during kex, no DH_GEX_REQUEST: %d", type); } packet_check_eom(); - if (max < min || nbits < min || max < nbits) + if (omax < omin || onbits < omin || omax < onbits) fatal("DH_GEX_REQUEST, bad parameters: %d !< %d !< %d", - min, nbits, max); + omin, onbits, omax); /* Contact privileged parent */ dh = PRIVSEP(choose_dh(min, nbits, max)); @@ -149,7 +152,7 @@ kexgex_server(Kex *kex) key_to_blob(server_host_key, &server_host_key_blob, &sbloblen); if (type == SSH2_MSG_KEX_DH_GEX_REQUEST_OLD) - min = max = -1; + omin = min = omax = max = -1; /* calc H */ kexgex_hash( @@ -159,7 +162,7 @@ kexgex_server(Kex *kex) buffer_ptr(&kex->peer), buffer_len(&kex->peer), buffer_ptr(&kex->my), buffer_len(&kex->my), server_host_key_blob, sbloblen, - min, nbits, max, + omin, onbits, omax, dh->p, dh->g, dh_client_pub, dh->pub_key, -- cgit v1.2.3 From 1781f53d7540778fa50991d9b5aaf8f4b4a2eafd Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:24:41 +1100 Subject: - djm@cvs.openbsd.org 2009/01/14 01:38:06 [channels.c] support SOCKS4A protocol, from dwmw2 AT infradead.org via bz#1482; "looks ok" markus@ --- ChangeLog | 6 +++++- channels.c | 50 +++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4e6a18f43..332dacce3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -42,6 +42,10 @@ values and not the sanity checked versions that we acutally use; bz#1540 reported by john.smith AT arrows.demon.co.uk ok markus@ + - djm@cvs.openbsd.org 2009/01/14 01:38:06 + [channels.c] + support SOCKS4A protocol, from dwmw2 AT infradead.org via bz#1482; + "looks ok" markus@ 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5051,5 +5055,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5170 2009/01/28 05:23:06 djm Exp $ +$Id: ChangeLog,v 1.5171 2009/01/28 05:24:41 djm Exp $ diff --git a/channels.c b/channels.c index d138882b3..2319afd4b 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.291 2009/01/01 21:14:35 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.292 2009/01/14 01:38:06 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -980,7 +980,7 @@ static int channel_decode_socks4(Channel *c, fd_set *readset, fd_set *writeset) { char *p, *host; - u_int len, have, i, found; + u_int len, have, i, found, need; char username[256]; struct { u_int8_t version; @@ -996,10 +996,20 @@ channel_decode_socks4(Channel *c, fd_set *readset, fd_set *writeset) if (have < len) return 0; p = buffer_ptr(&c->input); + + need = 1; + /* SOCKS4A uses an invalid IP address 0.0.0.x */ + if (p[4] == 0 && p[5] == 0 && p[6] == 0 && p[7] != 0) { + debug2("channel %d: socks4a request", c->self); + /* ... and needs an extra string (the hostname) */ + need = 2; + } + /* Check for terminating NUL on the string(s) */ for (found = 0, i = len; i < have; i++) { if (p[i] == '\0') { - found = 1; - break; + found++; + if (found == need) + break; } if (i > 1024) { /* the peer is probably sending garbage */ @@ -1008,7 +1018,7 @@ channel_decode_socks4(Channel *c, fd_set *readset, fd_set *writeset) return -1; } } - if (!found) + if (found < need) return 0; buffer_get(&c->input, (char *)&s4_req.version, 1); buffer_get(&c->input, (char *)&s4_req.command, 1); @@ -1018,23 +1028,41 @@ channel_decode_socks4(Channel *c, fd_set *readset, fd_set *writeset) p = buffer_ptr(&c->input); len = strlen(p); debug2("channel %d: decode socks4: user %s/%d", c->self, p, len); + len++; /* trailing '\0' */ if (len > have) fatal("channel %d: decode socks4: len %d > have %d", c->self, len, have); strlcpy(username, p, sizeof(username)); buffer_consume(&c->input, len); - buffer_consume(&c->input, 1); /* trailing '\0' */ - host = inet_ntoa(s4_req.dest_addr); - strlcpy(c->path, host, sizeof(c->path)); + if (need == 1) { /* SOCKS4: one string */ + host = inet_ntoa(s4_req.dest_addr); + strlcpy(c->path, host, sizeof(c->path)); + } else { /* SOCKS4A: two strings */ + have = buffer_len(&c->input); + p = buffer_ptr(&c->input); + len = strlen(p); + debug2("channel %d: decode socks4a: host %s/%d", + c->self, p, len); + len++; /* trailing '\0' */ + if (len > have) + fatal("channel %d: decode socks4a: len %d > have %d", + c->self, len, have); + if (strlcpy(c->path, p, sizeof(c->path)) >= sizeof(c->path)) { + error("channel %d: hostname \"%.100s\" too long", + c->self, p); + return -1; + } + buffer_consume(&c->input, len); + } c->host_port = ntohs(s4_req.dest_port); debug2("channel %d: dynamic request: socks4 host %s port %u command %u", - c->self, host, c->host_port, s4_req.command); + c->self, c->path, c->host_port, s4_req.command); if (s4_req.command != 1) { - debug("channel %d: cannot handle: socks4 cn %d", - c->self, s4_req.command); + debug("channel %d: cannot handle: %s cn %d", + c->self, need == 1 ? "SOCKS4" : "SOCKS4A", s4_req.command); return -1; } s4_rsp.version = 0; /* vn: 0 for reply */ -- cgit v1.2.3 From 5bc6aae3dbeda2e6b23361238b16fbadbfcd2ce5 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:27:31 +1100 Subject: - stevesk@cvs.openbsd.org 2009/01/15 17:38:43 [readconf.c] 1) use obsolete instead of alias for consistency 2) oUserKnownHostsFile not obsolete but oGlobalKnownHostsFile2 is so move the comment. 3) reorder so like options are together ok djm@ --- ChangeLog | 9 ++++++++- readconf.c | 8 ++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 332dacce3..50cf16d5f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -46,6 +46,13 @@ [channels.c] support SOCKS4A protocol, from dwmw2 AT infradead.org via bz#1482; "looks ok" markus@ + - stevesk@cvs.openbsd.org 2009/01/15 17:38:43 + [readconf.c] + 1) use obsolete instead of alias for consistency + 2) oUserKnownHostsFile not obsolete but oGlobalKnownHostsFile2 is + so move the comment. + 3) reorder so like options are together + ok djm@ 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5055,5 +5062,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5171 2009/01/28 05:24:41 djm Exp $ +$Id: ChangeLog,v 1.5172 2009/01/28 05:27:31 djm Exp $ diff --git a/readconf.c b/readconf.c index ab89e0c05..f63a00c47 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.173 2008/12/09 02:58:16 djm Exp $ */ +/* $OpenBSD: readconf.c,v 1.174 2009/01/15 17:38:43 stevesk Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -172,7 +172,7 @@ static struct { { "fallbacktorsh", oDeprecated }, { "usersh", oDeprecated }, { "identityfile", oIdentityFile }, - { "identityfile2", oIdentityFile }, /* alias */ + { "identityfile2", oIdentityFile }, /* obsolete */ { "identitiesonly", oIdentitiesOnly }, { "hostname", oHostName }, { "hostkeyalias", oHostKeyAlias }, @@ -188,8 +188,8 @@ static struct { { "host", oHost }, { "escapechar", oEscapeChar }, { "globalknownhostsfile", oGlobalKnownHostsFile }, - { "userknownhostsfile", oUserKnownHostsFile }, /* obsolete */ - { "globalknownhostsfile2", oGlobalKnownHostsFile2 }, + { "globalknownhostsfile2", oGlobalKnownHostsFile2 }, /* obsolete */ + { "userknownhostsfile", oUserKnownHostsFile }, { "userknownhostsfile2", oUserKnownHostsFile2 }, /* obsolete */ { "connectionattempts", oConnectionAttempts }, { "batchmode", oBatchMode }, -- cgit v1.2.3 From a1c1b6c86d506c10daac0161f7fc56368cc6ef6e Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:29:49 +1100 Subject: - djm@cvs.openbsd.org 2009/01/22 09:46:01 [channels.c channels.h session.c] make Channel->path an allocated string, saving a few bytes here and there and fixing bz#1380 in the process; ok markus@ --- ChangeLog | 6 +++++- channels.c | 48 +++++++++++++++++++++++++++++++++++------------- channels.h | 6 ++---- session.c | 4 ++-- 4 files changed, 44 insertions(+), 20 deletions(-) diff --git a/ChangeLog b/ChangeLog index 50cf16d5f..56121d466 100644 --- a/ChangeLog +++ b/ChangeLog @@ -53,6 +53,10 @@ so move the comment. 3) reorder so like options are together ok djm@ + - djm@cvs.openbsd.org 2009/01/22 09:46:01 + [channels.c channels.h session.c] + make Channel->path an allocated string, saving a few bytes here and + there and fixing bz#1380 in the process; ok markus@ 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5062,5 +5066,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5172 2009/01/28 05:27:31 djm Exp $ +$Id: ChangeLog,v 1.5173 2009/01/28 05:29:49 djm Exp $ diff --git a/channels.c b/channels.c index 2319afd4b..e6c08b62b 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.292 2009/01/14 01:38:06 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.293 2009/01/22 09:46:01 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -296,6 +296,7 @@ channel_new(char *ctype, int type, int rfd, int wfd, int efd, buffer_init(&c->input); buffer_init(&c->output); buffer_init(&c->extended); + c->path = NULL; c->ostate = CHAN_OUTPUT_OPEN; c->istate = CHAN_INPUT_OPEN; c->flags = 0; @@ -402,6 +403,10 @@ channel_free(Channel *c) xfree(c->remote_name); c->remote_name = NULL; } + if (c->path) { + xfree(c->path); + c->path = NULL; + } while ((cc = TAILQ_FIRST(&c->status_confirms)) != NULL) { if (cc->abandon_cb != NULL) cc->abandon_cb(c, cc->ctx); @@ -1035,9 +1040,13 @@ channel_decode_socks4(Channel *c, fd_set *readset, fd_set *writeset) strlcpy(username, p, sizeof(username)); buffer_consume(&c->input, len); + if (c->path != NULL) { + xfree(c->path); + c->path = NULL; + } if (need == 1) { /* SOCKS4: one string */ host = inet_ntoa(s4_req.dest_addr); - strlcpy(c->path, host, sizeof(c->path)); + c->path = xstrdup(host); } else { /* SOCKS4A: two strings */ have = buffer_len(&c->input); p = buffer_ptr(&c->input); @@ -1048,11 +1057,12 @@ channel_decode_socks4(Channel *c, fd_set *readset, fd_set *writeset) if (len > have) fatal("channel %d: decode socks4a: len %d > have %d", c->self, len, have); - if (strlcpy(c->path, p, sizeof(c->path)) >= sizeof(c->path)) { + if (len > NI_MAXHOST) { error("channel %d: hostname \"%.100s\" too long", c->self, p); return -1; } + c->path = xstrdup(p); buffer_consume(&c->input, len); } c->host_port = ntohs(s4_req.dest_port); @@ -1093,7 +1103,7 @@ channel_decode_socks5(Channel *c, fd_set *readset, fd_set *writeset) u_int8_t atyp; } s5_req, s5_rsp; u_int16_t dest_port; - u_char *p, dest_addr[255+1]; + u_char *p, dest_addr[255+1], ntop[INET6_ADDRSTRLEN]; u_int have, need, i, found, nmethods, addrlen, af; debug2("channel %d: decode socks5", c->self); @@ -1166,10 +1176,22 @@ channel_decode_socks5(Channel *c, fd_set *readset, fd_set *writeset) buffer_get(&c->input, (char *)&dest_addr, addrlen); buffer_get(&c->input, (char *)&dest_port, 2); dest_addr[addrlen] = '\0'; - if (s5_req.atyp == SSH_SOCKS5_DOMAIN) - strlcpy(c->path, (char *)dest_addr, sizeof(c->path)); - else if (inet_ntop(af, dest_addr, c->path, sizeof(c->path)) == NULL) - return -1; + if (c->path != NULL) { + xfree(c->path); + c->path = NULL; + } + if (s5_req.atyp == SSH_SOCKS5_DOMAIN) { + if (addrlen > NI_MAXHOST - 1) { + error("channel %d: dynamic request: socks5 hostname " + "\"%.100s\" too long", c->self, dest_addr); + return -1; + } + c->path = xstrdup(dest_addr); + } else { + if (inet_ntop(af, dest_addr, ntop, sizeof(ntop)) == NULL) + return -1; + c->path = xstrdup(ntop); + } c->host_port = ntohs(dest_port); debug2("channel %d: dynamic request: socks5 host %s port %u command %u", @@ -1398,7 +1420,8 @@ channel_post_port_listener(Channel *c, fd_set *readset, fd_set *writeset) c->local_window_max, c->local_maxpacket, 0, rtype, 1); nc->listening_port = c->listening_port; nc->host_port = c->host_port; - strlcpy(nc->path, c->path, sizeof(nc->path)); + if (c->path != NULL) + nc->path = xstrdup(c->path); if (nextstate == SSH_CHANNEL_DYNAMIC) { /* @@ -2454,7 +2477,7 @@ channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_por error("No forward host name."); return 0; } - if (strlen(host) > SSH_CHANNEL_PATH_LEN - 1) { + if (strlen(host) > NI_MAXHOST) { error("Forward host name too long."); return 0; } @@ -2555,7 +2578,7 @@ channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_por c = channel_new("port listener", type, sock, sock, -1, CHAN_TCP_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, 0, "port listener", 1); - strlcpy(c->path, host, sizeof(c->path)); + c->path = xstrdup(host); c->host_port = port_to_connect; c->listening_port = listen_port; success = 1; @@ -2577,8 +2600,7 @@ channel_cancel_rport_listener(const char *host, u_short port) Channel *c = channels[i]; if (c != NULL && c->type == SSH_CHANNEL_RPORT_LISTENER && - strncmp(c->path, host, sizeof(c->path)) == 0 && - c->listening_port == port) { + strcmp(c->path, host) == 0 && c->listening_port == port) { debug2("%s: close channel %d", __func__, i); channel_free(c); found = 1; diff --git a/channels.h b/channels.h index 108b36068..19fee769c 100644 --- a/channels.h +++ b/channels.h @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.h,v 1.96 2008/06/15 20:06:26 djm Exp $ */ +/* $OpenBSD: channels.h,v 1.97 2009/01/22 09:46:01 djm Exp $ */ /* * Author: Tatu Ylonen @@ -55,8 +55,6 @@ #define SSH_CHANNEL_ZOMBIE 14 /* Almost dead. */ #define SSH_CHANNEL_MAX_TYPE 15 -#define SSH_CHANNEL_PATH_LEN 256 - struct Channel; typedef struct Channel Channel; @@ -105,7 +103,7 @@ struct Channel { Buffer output; /* data received over encrypted connection for * send on socket */ Buffer extended; - char path[SSH_CHANNEL_PATH_LEN]; + char *path; /* path for unix domain sockets, or host name for forwards */ int listening_port; /* port being listened for forwards */ int host_port; /* remote port to connect for forwards */ diff --git a/session.c b/session.c index c61aeb711..f2549e0cd 100644 --- a/session.c +++ b/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.244 2008/11/09 12:34:47 tobias Exp $ */ +/* $OpenBSD: session.c,v 1.245 2009/01/22 09:46:01 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -234,7 +234,7 @@ auth_input_request_forwarding(struct passwd * pw) SSH_CHANNEL_AUTH_SOCKET, sock, sock, -1, CHAN_X11_WINDOW_DEFAULT, CHAN_X11_PACKET_DEFAULT, 0, "auth socket", 1); - strlcpy(nc->path, auth_sock_name, sizeof(nc->path)); + nc->path = xstrdup(auth_sock_name); return 1; authsock_err: -- cgit v1.2.3 From 9576ac4afc7124415183dd9fe73d410165dbfe82 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:30:33 +1100 Subject: - djm@cvs.openbsd.org 2009/01/22 09:49:57 [channels.c] oops! I committed the wrong version of the Channel->path diff, it was missing some tweaks suggested by stevesk@ --- ChangeLog | 6 +++++- channels.c | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 56121d466..6b109e5be 100644 --- a/ChangeLog +++ b/ChangeLog @@ -57,6 +57,10 @@ [channels.c channels.h session.c] make Channel->path an allocated string, saving a few bytes here and there and fixing bz#1380 in the process; ok markus@ + - djm@cvs.openbsd.org 2009/01/22 09:49:57 + [channels.c] + oops! I committed the wrong version of the Channel->path diff, + it was missing some tweaks suggested by stevesk@ 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5066,5 +5070,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5173 2009/01/28 05:29:49 djm Exp $ +$Id: ChangeLog,v 1.5174 2009/01/28 05:30:33 djm Exp $ diff --git a/channels.c b/channels.c index e6c08b62b..0b1c34c83 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.293 2009/01/22 09:46:01 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.294 2009/01/22 09:49:57 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1181,7 +1181,7 @@ channel_decode_socks5(Channel *c, fd_set *readset, fd_set *writeset) c->path = NULL; } if (s5_req.atyp == SSH_SOCKS5_DOMAIN) { - if (addrlen > NI_MAXHOST - 1) { + if (addrlen >= NI_MAXHOST) { error("channel %d: dynamic request: socks5 hostname " "\"%.100s\" too long", c->self, dest_addr); return -1; @@ -2477,7 +2477,7 @@ channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_por error("No forward host name."); return 0; } - if (strlen(host) > NI_MAXHOST) { + if (strlen(host) >= NI_MAXHOST) { error("Forward host name too long."); return 0; } -- cgit v1.2.3 From 3dc71ad8653bab5591fc75bb1d3e6aa8fb9360df Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:31:22 +1100 Subject: - djm@cvs.openbsd.org 2009/01/22 10:02:34 [clientloop.c misc.c readconf.c readconf.h servconf.c servconf.h] [serverloop.c ssh-keyscan.c ssh.c sshd.c] make a2port() return -1 when it encounters an invalid port number rather than 0, which it will now treat as valid (needed for future work) adjust current consumers of a2port() to check its return value is <= 0, which in turn required some things to be converted from u_short => int make use of int vs. u_short consistent in some other places too feedback & ok markus@ --- ChangeLog | 11 ++++++++++- clientloop.c | 10 +++++----- misc.c | 22 +++++++++------------- readconf.c | 6 +++--- readconf.h | 6 +++--- servconf.c | 20 ++++++++++---------- servconf.h | 8 ++++---- serverloop.c | 4 ++-- ssh-keyscan.c | 4 ++-- ssh.c | 4 ++-- sshd.c | 4 ++-- 11 files changed, 52 insertions(+), 47 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6b109e5be..2b371d11e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -61,6 +61,15 @@ [channels.c] oops! I committed the wrong version of the Channel->path diff, it was missing some tweaks suggested by stevesk@ + - djm@cvs.openbsd.org 2009/01/22 10:02:34 + [clientloop.c misc.c readconf.c readconf.h servconf.c servconf.h] + [serverloop.c ssh-keyscan.c ssh.c sshd.c] + make a2port() return -1 when it encounters an invalid port number + rather than 0, which it will now treat as valid (needed for future work) + adjust current consumers of a2port() to check its return value is <= 0, + which in turn required some things to be converted from u_short => int + make use of int vs. u_short consistent in some other places too + feedback & ok markus@ 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5070,5 +5079,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5174 2009/01/28 05:30:33 djm Exp $ +$Id: ChangeLog,v 1.5175 2009/01/28 05:31:22 djm Exp $ diff --git a/clientloop.c b/clientloop.c index fdeedc351..1b5badb71 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.207 2008/12/09 22:37:33 stevesk Exp $ */ +/* $OpenBSD: clientloop.c,v 1.208 2009/01/22 10:02:34 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -765,7 +765,7 @@ process_cmdline(void) char *s, *cmd, *cancel_host; int delete = 0; int local = 0, remote = 0, dynamic = 0; - u_short cancel_port; + int cancel_port; Forward fwd; bzero(&fwd, sizeof(fwd)); @@ -843,7 +843,7 @@ process_cmdline(void) cancel_port = a2port(cancel_host); cancel_host = NULL; } - if (cancel_port == 0) { + if (cancel_port <= 0) { logit("Bad forwarding close port"); goto out; } @@ -1638,7 +1638,7 @@ client_request_forwarded_tcpip(const char *request_type, int rchan) { Channel *c = NULL; char *listen_address, *originator_address; - int listen_port, originator_port; + u_short listen_port, originator_port; /* Get rest of the packet */ listen_address = packet_get_string(NULL); @@ -1664,7 +1664,7 @@ client_request_x11(const char *request_type, int rchan) { Channel *c = NULL; char *originator; - int originator_port; + u_short originator_port; int sock; if (!options.forward_x11) { diff --git a/misc.c b/misc.c index 8b303f16f..755eda105 100644 --- a/misc.c +++ b/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.69 2008/06/13 01:38:23 dtucker Exp $ */ +/* $OpenBSD: misc.c,v 1.70 2009/01/22 10:02:34 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005,2006 Damien Miller. All rights reserved. @@ -221,23 +221,19 @@ pwcopy(struct passwd *pw) /* * Convert ASCII string to TCP/IP port number. - * Port must be >0 and <=65535. - * Return 0 if invalid. + * Port must be >=0 and <=65535. + * Return -1 if invalid. */ int a2port(const char *s) { - long port; - char *endp; - - errno = 0; - port = strtol(s, &endp, 0); - if (s == endp || *endp != '\0' || - (errno == ERANGE && (port == LONG_MIN || port == LONG_MAX)) || - port <= 0 || port > 65535) - return 0; + long long port; + const char *errstr; - return port; + port = strtonum(s, 0, 65535, &errstr); + if (errstr != NULL) + return -1; + return (int)port; } int diff --git a/readconf.c b/readconf.c index f63a00c47..0a8be1400 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.174 2009/01/15 17:38:43 stevesk Exp $ */ +/* $OpenBSD: readconf.c,v 1.175 2009/01/22 10:02:34 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1279,11 +1279,11 @@ parse_forward(Forward *fwd, const char *fwdspec, int dynamicfwd) } else { if (!(i == 3 || i == 4)) goto fail_free; - if (fwd->connect_port == 0) + if (fwd->connect_port <= 0) goto fail_free; } - if (fwd->listen_port == 0) + if (fwd->listen_port <= 0) goto fail_free; if (fwd->connect_host != NULL && diff --git a/readconf.h b/readconf.h index c9e5f6a41..d94d65890 100644 --- a/readconf.h +++ b/readconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.h,v 1.76 2008/11/04 08:22:13 djm Exp $ */ +/* $OpenBSD: readconf.h,v 1.77 2009/01/22 10:02:34 djm Exp $ */ /* * Author: Tatu Ylonen @@ -20,9 +20,9 @@ typedef struct { char *listen_host; /* Host (address) to listen on. */ - u_short listen_port; /* Port to forward. */ + int listen_port; /* Port to forward. */ char *connect_host; /* Host to connect. */ - u_short connect_port; /* Port to connect on connect_host. */ + int connect_port; /* Port to connect on connect_host. */ } Forward; /* Data structure for representing option data. */ diff --git a/servconf.c b/servconf.c index 7d8851860..e7fc2a781 100644 --- a/servconf.c +++ b/servconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.c,v 1.193 2008/12/09 03:20:42 stevesk Exp $ */ +/* $OpenBSD: servconf.c,v 1.194 2009/01/22 10:02:34 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -42,8 +42,8 @@ #include "channels.h" #include "groupaccess.h" -static void add_listen_addr(ServerOptions *, char *, u_short); -static void add_one_listen_addr(ServerOptions *, char *, u_short); +static void add_listen_addr(ServerOptions *, char *, int); +static void add_one_listen_addr(ServerOptions *, char *, int); /* Use of privilege separation or not */ extern int use_privsep; @@ -460,7 +460,7 @@ parse_token(const char *cp, const char *filename, } static void -add_listen_addr(ServerOptions *options, char *addr, u_short port) +add_listen_addr(ServerOptions *options, char *addr, int port) { u_int i; @@ -476,7 +476,7 @@ add_listen_addr(ServerOptions *options, char *addr, u_short port) } static void -add_one_listen_addr(ServerOptions *options, char *addr, u_short port) +add_one_listen_addr(ServerOptions *options, char *addr, int port) { struct addrinfo hints, *ai, *aitop; char strport[NI_MAXSERV]; @@ -486,7 +486,7 @@ add_one_listen_addr(ServerOptions *options, char *addr, u_short port) hints.ai_family = options->address_family; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = (addr == NULL) ? AI_PASSIVE : 0; - snprintf(strport, sizeof strport, "%u", port); + snprintf(strport, sizeof strport, "%d", port); if ((gaierr = getaddrinfo(addr, strport, &hints, &aitop)) != 0) fatal("bad addr or host: %s (%s)", addr ? addr : "", @@ -642,7 +642,7 @@ process_server_config_line(ServerOptions *options, char *line, SyslogFacility *log_facility_ptr; LogLevel *log_level_ptr; ServerOpCodes opcode; - u_short port; + int port; u_int i, flags = 0; size_t len; @@ -699,7 +699,7 @@ process_server_config_line(ServerOptions *options, char *line, fatal("%s line %d: missing port number.", filename, linenum); options->ports[options->num_ports++] = a2port(arg); - if (options->ports[options->num_ports-1] == 0) + if (options->ports[options->num_ports-1] <= 0) fatal("%s line %d: Badly formatted port number.", filename, linenum); break; @@ -752,7 +752,7 @@ process_server_config_line(ServerOptions *options, char *line, p = cleanhostname(p); if (arg == NULL) port = 0; - else if ((port = a2port(arg)) == 0) + else if ((port = a2port(arg)) <= 0) fatal("%s line %d: bad port number", filename, linenum); add_listen_addr(options, p, port); @@ -1265,7 +1265,7 @@ process_server_config_line(ServerOptions *options, char *line, fatal("%s line %d: missing host in PermitOpen", filename, linenum); p = cleanhostname(p); - if (arg == NULL || (port = a2port(arg)) == 0) + if (arg == NULL || (port = a2port(arg)) <= 0) fatal("%s line %d: bad port number in " "PermitOpen", filename, linenum); if (*activep && n == -1) diff --git a/servconf.h b/servconf.h index 1d4c3a01a..b3ac7da4b 100644 --- a/servconf.h +++ b/servconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.h,v 1.86 2008/11/04 08:22:13 djm Exp $ */ +/* $OpenBSD: servconf.h,v 1.87 2009/01/22 10:02:34 djm Exp $ */ /* * Author: Tatu Ylonen @@ -41,9 +41,9 @@ #define INTERNAL_SFTP_NAME "internal-sftp" typedef struct { - u_int num_ports; - u_int ports_from_cmdline; - u_short ports[MAX_PORTS]; /* Port number to listen on. */ + u_int num_ports; + u_int ports_from_cmdline; + int ports[MAX_PORTS]; /* Port number to listen on. */ char *listen_addr; /* Address on which the server listens. */ struct addrinfo *listen_addrs; /* Addresses on which the server listens. */ int address_family; /* Address family used by the server. */ diff --git a/serverloop.c b/serverloop.c index 6a3ae1665..931779e30 100644 --- a/serverloop.c +++ b/serverloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: serverloop.c,v 1.154 2008/12/02 19:08:59 markus Exp $ */ +/* $OpenBSD: serverloop.c,v 1.155 2009/01/22 10:02:34 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -942,7 +942,7 @@ server_request_direct_tcpip(void) { Channel *c; char *target, *originator; - int target_port, originator_port; + u_short target_port, originator_port; target = packet_get_string(NULL); target_port = packet_get_int(); diff --git a/ssh-keyscan.c b/ssh-keyscan.c index c6ec3507e..9a91be499 100644 --- a/ssh-keyscan.c +++ b/ssh-keyscan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keyscan.c,v 1.77 2008/11/01 11:14:36 sobrado Exp $ */ +/* $OpenBSD: ssh-keyscan.c,v 1.78 2009/01/22 10:02:34 djm Exp $ */ /* * Copyright 1995, 1996 by David Mazieres . * @@ -748,7 +748,7 @@ main(int argc, char **argv) break; case 'p': ssh_port = a2port(optarg); - if (ssh_port == 0) { + if (ssh_port <= 0) { fprintf(stderr, "Bad port '%s'\n", optarg); exit(1); } diff --git a/ssh.c b/ssh.c index 5bb67c5b1..26f070f3e 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.322 2008/11/01 17:40:33 stevesk Exp $ */ +/* $OpenBSD: ssh.c,v 1.323 2009/01/22 10:02:34 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -443,7 +443,7 @@ main(int ac, char **av) break; case 'p': options.port = a2port(optarg); - if (options.port == 0) { + if (options.port <= 0) { fprintf(stderr, "Bad port '%s'\n", optarg); exit(255); } diff --git a/sshd.c b/sshd.c index fa314b8a7..3b5cd3cfd 100644 --- a/sshd.c +++ b/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.365 2008/10/30 19:31:16 stevesk Exp $ */ +/* $OpenBSD: sshd.c,v 1.366 2009/01/22 10:02:34 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1333,7 +1333,7 @@ main(int ac, char **av) exit(1); } options.ports[options.num_ports++] = a2port(optarg); - if (options.ports[options.num_ports-1] == 0) { + if (options.ports[options.num_ports-1] <= 0) { fprintf(stderr, "Bad port number.\n"); exit(1); } -- cgit v1.2.3 From e37dde06a6a1ce6c2d2ce853d9834b715af82d47 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:33:01 +1100 Subject: - djm@cvs.openbsd.org 2009/01/22 10:09:16 [auth-options.c] another chunk of a2port() diff that got away. wtfdjm?? --- ChangeLog | 5 ++++- auth-options.c | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2b371d11e..7d7de3dd9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -70,6 +70,9 @@ which in turn required some things to be converted from u_short => int make use of int vs. u_short consistent in some other places too feedback & ok markus@ + - djm@cvs.openbsd.org 2009/01/22 10:09:16 + [auth-options.c] + another chunk of a2port() diff that got away. wtfdjm?? 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5079,5 +5082,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5175 2009/01/28 05:31:22 djm Exp $ +$Id: ChangeLog,v 1.5176 2009/01/28 05:33:01 djm Exp $ diff --git a/auth-options.c b/auth-options.c index 25361455e..ab085c233 100644 --- a/auth-options.c +++ b/auth-options.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth-options.c,v 1.43 2008/06/10 23:06:19 djm Exp $ */ +/* $OpenBSD: auth-options.c,v 1.44 2009/01/22 10:09:16 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -255,7 +255,7 @@ auth_parse_options(struct passwd *pw, char *opts, char *file, u_long linenum) cp = "permitopen=\""; if (strncasecmp(opts, cp, strlen(cp)) == 0) { char *host, *p; - u_short port; + int port; char *patterns = xmalloc(strlen(opts) + 1); opts += strlen(cp); @@ -293,7 +293,7 @@ auth_parse_options(struct passwd *pw, char *opts, char *file, u_long linenum) goto bad_option; } host = cleanhostname(host); - if (p == NULL || (port = a2port(p)) == 0) { + if (p == NULL || (port = a2port(p)) <= 0) { debug("%.100s, line %lu: Bad permitopen port " "<%.100s>", file, linenum, p ? p : ""); auth_debug_add("%.100s, line %lu: " -- cgit v1.2.3 From 67081b5148f73c9af21e933b460f5bc1affb5661 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:33:31 +1100 Subject: - djm@cvs.openbsd.org 2009/01/23 07:58:11 [myproposal.h] prefer CTR modes and revised arcfour (i.e w/ discard) modes to CBC modes; ok markus@ --- ChangeLog | 6 +++++- myproposal.h | 9 +++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7d7de3dd9..adb1e3817 100644 --- a/ChangeLog +++ b/ChangeLog @@ -73,6 +73,10 @@ - djm@cvs.openbsd.org 2009/01/22 10:09:16 [auth-options.c] another chunk of a2port() diff that got away. wtfdjm?? + - djm@cvs.openbsd.org 2009/01/23 07:58:11 + [myproposal.h] + prefer CTR modes and revised arcfour (i.e w/ discard) modes to CBC + modes; ok markus@ 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5082,5 +5086,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5176 2009/01/28 05:33:01 djm Exp $ +$Id: ChangeLog,v 1.5177 2009/01/28 05:33:31 djm Exp $ diff --git a/myproposal.h b/myproposal.h index 87a9e5820..7bca3bcae 100644 --- a/myproposal.h +++ b/myproposal.h @@ -1,4 +1,4 @@ -/* $OpenBSD: myproposal.h,v 1.22 2007/06/07 19:37:34 pvalchev Exp $ */ +/* $OpenBSD: myproposal.h,v 1.23 2009/01/23 07:58:11 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. @@ -41,11 +41,12 @@ #endif #define KEX_DEFAULT_PK_ALG "ssh-rsa,ssh-dss" + #define KEX_DEFAULT_ENCRYPT \ + "aes128-ctr,aes192-ctr,aes256-ctr," \ + "arcfour256,arcfour128," \ "aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc," \ - "arcfour128,arcfour256,arcfour," \ - "aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se," \ - "aes128-ctr,aes192-ctr,aes256-ctr" + "aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se" #define KEX_DEFAULT_MAC \ "hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160," \ "hmac-ripemd160@openssh.com," \ -- cgit v1.2.3 From 9aa72ba57af907af8f7228f64fca8a474797898f Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:34:00 +1100 Subject: - naddy@cvs.openbsd.org 2009/01/24 17:10:22 [ssh_config.5 sshd_config.5] sync list of preferred ciphers; ok djm@ --- ChangeLog | 5 ++++- ssh_config.5 | 10 +++++----- sshd_config.5 | 10 +++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index adb1e3817..1ce3a84b8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -77,6 +77,9 @@ [myproposal.h] prefer CTR modes and revised arcfour (i.e w/ discard) modes to CBC modes; ok markus@ + - naddy@cvs.openbsd.org 2009/01/24 17:10:22 + [ssh_config.5 sshd_config.5] + sync list of preferred ciphers; ok djm@ 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5086,5 +5089,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5177 2009/01/28 05:33:31 djm Exp $ +$Id: ChangeLog,v 1.5178 2009/01/28 05:34:00 djm Exp $ diff --git a/ssh_config.5 b/ssh_config.5 index abc3b0b16..376d928a1 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.115 2008/11/04 08:22:13 djm Exp $ -.Dd $Mdocdate: November 4 2008 $ +.\" $OpenBSD: ssh_config.5,v 1.116 2009/01/24 17:10:22 naddy Exp $ +.Dd $Mdocdate: January 24 2009 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -204,9 +204,9 @@ and .Dq cast128-cbc . The default is: .Bd -literal -offset 3n -aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, -arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, -aes192-ctr,aes256-ctr +aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128, +aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc, +aes256-cbc,arcfour .Ed .It Cm ClearAllForwardings Specifies that all local, remote, and dynamic port forwardings diff --git a/sshd_config.5 b/sshd_config.5 index 1829b330d..033ae8d3d 100644 --- a/sshd_config.5 +++ b/sshd_config.5 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.99 2008/12/30 00:46:56 okan Exp $ -.Dd $Mdocdate: December 30 2008 $ +.\" $OpenBSD: sshd_config.5,v 1.100 2009/01/24 17:10:22 naddy Exp $ +.Dd $Mdocdate: January 24 2009 $ .Dt SSHD_CONFIG 5 .Os .Sh NAME @@ -240,9 +240,9 @@ and .Dq cast128-cbc . The default is: .Bd -literal -offset 3n -aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128, -arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr, -aes192-ctr,aes256-ctr +aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128, +aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc, +aes256-cbc,arcfour .Ed .It Cm ClientAliveCountMax Sets the number of client alive messages (see below) which may be -- cgit v1.2.3 From 13ae44ce5865b720708aae9cb1d2e2f08a0d90cb Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 28 Jan 2009 16:38:41 +1100 Subject: - markus@cvs.openbsd.org 2009/01/26 09:58:15 [cipher.c cipher.h packet.c] Work around the CPNI-957037 Plaintext Recovery Attack by always reading 256K of data on packet size or HMAC errors (in CBC mode only). Help, feedback and ok djm@ Feedback from Martin Albrecht and Paterson Kenny --- ChangeLog | 8 ++++++- cipher.c | 49 ++++++++++++++++++++++++------------------- cipher.h | 3 ++- packet.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- 4 files changed, 102 insertions(+), 30 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1ce3a84b8..8584ff316 100644 --- a/ChangeLog +++ b/ChangeLog @@ -80,6 +80,12 @@ - naddy@cvs.openbsd.org 2009/01/24 17:10:22 [ssh_config.5 sshd_config.5] sync list of preferred ciphers; ok djm@ + - markus@cvs.openbsd.org 2009/01/26 09:58:15 + [cipher.c cipher.h packet.c] + Work around the CPNI-957037 Plaintext Recovery Attack by always + reading 256K of data on packet size or HMAC errors (in CBC mode only). + Help, feedback and ok djm@ + Feedback from Martin Albrecht and Paterson Kenny 20090107 - (djm) [uidswap.c] bz#1412: Support >16 supplemental groups in OS X. @@ -5089,5 +5095,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5178 2009/01/28 05:34:00 djm Exp $ +$Id: ChangeLog,v 1.5179 2009/01/28 05:38:41 djm Exp $ diff --git a/cipher.c b/cipher.c index b264063c4..bb5c0ac3a 100644 --- a/cipher.c +++ b/cipher.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cipher.c,v 1.81 2006/08/03 03:34:42 deraadt Exp $ */ +/* $OpenBSD: cipher.c,v 1.82 2009/01/26 09:58:15 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -63,31 +63,32 @@ struct Cipher { u_int block_size; u_int key_len; u_int discard_len; + u_int cbc_mode; const EVP_CIPHER *(*evptype)(void); } ciphers[] = { - { "none", SSH_CIPHER_NONE, 8, 0, 0, EVP_enc_null }, - { "des", SSH_CIPHER_DES, 8, 8, 0, EVP_des_cbc }, - { "3des", SSH_CIPHER_3DES, 8, 16, 0, evp_ssh1_3des }, - { "blowfish", SSH_CIPHER_BLOWFISH, 8, 32, 0, evp_ssh1_bf }, - - { "3des-cbc", SSH_CIPHER_SSH2, 8, 24, 0, EVP_des_ede3_cbc }, - { "blowfish-cbc", SSH_CIPHER_SSH2, 8, 16, 0, EVP_bf_cbc }, - { "cast128-cbc", SSH_CIPHER_SSH2, 8, 16, 0, EVP_cast5_cbc }, - { "arcfour", SSH_CIPHER_SSH2, 8, 16, 0, EVP_rc4 }, - { "arcfour128", SSH_CIPHER_SSH2, 8, 16, 1536, EVP_rc4 }, - { "arcfour256", SSH_CIPHER_SSH2, 8, 32, 1536, EVP_rc4 }, - { "aes128-cbc", SSH_CIPHER_SSH2, 16, 16, 0, EVP_aes_128_cbc }, - { "aes192-cbc", SSH_CIPHER_SSH2, 16, 24, 0, EVP_aes_192_cbc }, - { "aes256-cbc", SSH_CIPHER_SSH2, 16, 32, 0, EVP_aes_256_cbc }, + { "none", SSH_CIPHER_NONE, 8, 0, 0, 0, EVP_enc_null }, + { "des", SSH_CIPHER_DES, 8, 8, 0, 1, EVP_des_cbc }, + { "3des", SSH_CIPHER_3DES, 8, 16, 0, 1, evp_ssh1_3des }, + { "blowfish", SSH_CIPHER_BLOWFISH, 8, 32, 0, 1, evp_ssh1_bf }, + + { "3des-cbc", SSH_CIPHER_SSH2, 8, 24, 0, 1, EVP_des_ede3_cbc }, + { "blowfish-cbc", SSH_CIPHER_SSH2, 8, 16, 0, 1, EVP_bf_cbc }, + { "cast128-cbc", SSH_CIPHER_SSH2, 8, 16, 0, 1, EVP_cast5_cbc }, + { "arcfour", SSH_CIPHER_SSH2, 8, 16, 0, 0, EVP_rc4 }, + { "arcfour128", SSH_CIPHER_SSH2, 8, 16, 1536, 0, EVP_rc4 }, + { "arcfour256", SSH_CIPHER_SSH2, 8, 32, 1536, 0, EVP_rc4 }, + { "aes128-cbc", SSH_CIPHER_SSH2, 16, 16, 0, 1, EVP_aes_128_cbc }, + { "aes192-cbc", SSH_CIPHER_SSH2, 16, 24, 0, 1, EVP_aes_192_cbc }, + { "aes256-cbc", SSH_CIPHER_SSH2, 16, 32, 0, 1, EVP_aes_256_cbc }, { "rijndael-cbc@lysator.liu.se", - SSH_CIPHER_SSH2, 16, 32, 0, EVP_aes_256_cbc }, - { "aes128-ctr", SSH_CIPHER_SSH2, 16, 16, 0, evp_aes_128_ctr }, - { "aes192-ctr", SSH_CIPHER_SSH2, 16, 24, 0, evp_aes_128_ctr }, - { "aes256-ctr", SSH_CIPHER_SSH2, 16, 32, 0, evp_aes_128_ctr }, + SSH_CIPHER_SSH2, 16, 32, 0, 1, EVP_aes_256_cbc }, + { "aes128-ctr", SSH_CIPHER_SSH2, 16, 16, 0, 0, evp_aes_128_ctr }, + { "aes192-ctr", SSH_CIPHER_SSH2, 16, 24, 0, 0, evp_aes_128_ctr }, + { "aes256-ctr", SSH_CIPHER_SSH2, 16, 32, 0, 0, evp_aes_128_ctr }, #ifdef USE_CIPHER_ACSS - { "acss@openssh.org", SSH_CIPHER_SSH2, 16, 5, 0, EVP_acss }, + { "acss@openssh.org", SSH_CIPHER_SSH2, 16, 5, 0, 0, EVP_acss }, #endif - { NULL, SSH_CIPHER_INVALID, 0, 0, 0, NULL } + { NULL, SSH_CIPHER_INVALID, 0, 0, 0, 0, NULL } }; /*--*/ @@ -110,6 +111,12 @@ cipher_get_number(const Cipher *c) return (c->number); } +u_int +cipher_is_cbc(const Cipher *c) +{ + return (c->cbc_mode); +} + u_int cipher_mask_ssh1(int client) { diff --git a/cipher.h b/cipher.h index 49bbc1682..3dd2270bb 100644 --- a/cipher.h +++ b/cipher.h @@ -1,4 +1,4 @@ -/* $OpenBSD: cipher.h,v 1.36 2006/03/25 22:22:42 djm Exp $ */ +/* $OpenBSD: cipher.h,v 1.37 2009/01/26 09:58:15 markus Exp $ */ /* * Author: Tatu Ylonen @@ -81,6 +81,7 @@ void cipher_cleanup(CipherContext *); void cipher_set_key_string(CipherContext *, Cipher *, const char *, int); u_int cipher_blocksize(const Cipher *); u_int cipher_keylen(const Cipher *); +u_int cipher_is_cbc(const Cipher *); u_int cipher_get_number(const Cipher *); void cipher_get_keyiv(CipherContext *, u_char *, u_int); diff --git a/packet.c b/packet.c index 4ded17fac..33559cd4f 100644 --- a/packet.c +++ b/packet.c @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.c,v 1.158 2008/11/21 15:47:38 markus Exp $ */ +/* $OpenBSD: packet.c,v 1.159 2009/01/26 09:58:15 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -84,6 +84,8 @@ #define DBG(x) #endif +#define PACKET_MAX_SIZE (256 * 1024) + /* * This variable contains the file descriptors used for communicating with * the other side. connection_in is used for reading; connection_out for @@ -160,6 +162,10 @@ static u_int ssh1_keylen; /* roundup current message to extra_pad bytes */ static u_char extra_pad = 0; +/* XXX discard incoming data after MAC error */ +static u_int packet_discard = 0; +static Mac *packet_discard_mac = NULL; + struct packet { TAILQ_ENTRY(packet) next; u_char type; @@ -209,6 +215,36 @@ packet_set_timeout(int timeout, int count) packet_timeout_ms = timeout * count * 1000; } +static void +packet_stop_discard(void) +{ + if (packet_discard_mac) { + char buf[1024]; + + memset(buf, 'a', sizeof(buf)); + while (buffer_len(&incoming_packet) < PACKET_MAX_SIZE) + buffer_append(&incoming_packet, buf, sizeof(buf)); + (void) mac_compute(packet_discard_mac, + p_read.seqnr, + buffer_ptr(&incoming_packet), + PACKET_MAX_SIZE); + } + logit("Finished discarding for %.200s", get_remote_ipaddr()); + cleanup_exit(255); +} + +static void +packet_start_discard(Enc *enc, Mac *mac, u_int packet_length, u_int discard) +{ + if (!cipher_is_cbc(enc->cipher)) + packet_disconnect("Packet corrupt"); + if (packet_length != PACKET_MAX_SIZE && mac && mac->enabled) + packet_discard_mac = mac; + if (buffer_len(&input) >= discard) + packet_stop_discard(); + packet_discard = discard - buffer_len(&input); +} + /* Returns 1 if remote host is connected via socket, 0 if not. */ int @@ -1127,6 +1163,9 @@ packet_read_poll2(u_int32_t *seqnr_p) Mac *mac = NULL; Comp *comp = NULL; + if (packet_discard) + return SSH_MSG_NONE; + if (newkeys[MODE_IN] != NULL) { enc = &newkeys[MODE_IN]->enc; mac = &newkeys[MODE_IN]->mac; @@ -1148,12 +1187,14 @@ packet_read_poll2(u_int32_t *seqnr_p) block_size); cp = buffer_ptr(&incoming_packet); packet_length = get_u32(cp); - if (packet_length < 1 + 4 || packet_length > 256 * 1024) { + if (packet_length < 1 + 4 || packet_length > PACKET_MAX_SIZE) { #ifdef PACKET_DEBUG buffer_dump(&incoming_packet); #endif - packet_disconnect("Bad packet length %-10u", - packet_length); + logit("Bad packet length %u.", packet_length); + packet_start_discard(enc, mac, packet_length, + PACKET_MAX_SIZE); + return SSH_MSG_NONE; } DBG(debug("input: packet len %u", packet_length+4)); buffer_consume(&input, block_size); @@ -1165,7 +1206,9 @@ packet_read_poll2(u_int32_t *seqnr_p) if (need % block_size != 0) { logit("padding error: need %d block %d mod %d", need, block_size, need % block_size); - packet_disconnect("Bad packet length %-10u", packet_length); + packet_start_discard(enc, mac, packet_length, + PACKET_MAX_SIZE - block_size); + return SSH_MSG_NONE; } /* * check if the entire packet has been received and @@ -1188,11 +1231,19 @@ packet_read_poll2(u_int32_t *seqnr_p) macbuf = mac_compute(mac, p_read.seqnr, buffer_ptr(&incoming_packet), buffer_len(&incoming_packet)); - if (memcmp(macbuf, buffer_ptr(&input), mac->mac_len) != 0) - packet_disconnect("Corrupted MAC on input."); + if (memcmp(macbuf, buffer_ptr(&input), mac->mac_len) != 0) { + logit("Corrupted MAC on input."); + if (need > PACKET_MAX_SIZE) + fatal("internal error need %d", need); + packet_start_discard(enc, mac, packet_length, + PACKET_MAX_SIZE - need); + return SSH_MSG_NONE; + } + DBG(debug("MAC #%d ok", p_read.seqnr)); buffer_consume(&input, mac->mac_len); } + /* XXX now it's safe to use fatal/packet_disconnect */ if (seqnr_p != NULL) *seqnr_p = p_read.seqnr; if (++p_read.seqnr == 0) @@ -1325,6 +1376,13 @@ packet_read_poll(void) void packet_process_incoming(const char *buf, u_int len) { + if (packet_discard) { + keep_alive_timeouts = 0; /* ?? */ + if (len >= packet_discard) + packet_stop_discard(); + packet_discard -= len; + return; + } buffer_append(&input, buf, len); } -- cgit v1.2.3 From ca3692d1a9f8c384d3cf799369dcb9c54bb5ec55 Mon Sep 17 00:00:00 2001 From: Tim Rice Date: Wed, 28 Jan 2009 12:50:04 -0800 Subject: - (tim) [contrib/cygwin/ssh-host-config] Patch from Corinna Vinschen. Changes to work on Cygwin 1.5.x as well as on the new Cygwin 1.7.x. The information given for the setting of the CYGWIN environment variable is wrong for both releases so I just removed it, together with the unnecessary (Cygwin 1.5.x) or wrong (Cygwin 1.7.x) default setting. --- ChangeLog | 9 ++++++++- contrib/cygwin/ssh-host-config | 6 ++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8584ff316..25ce43ed1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +20090128 + - (tim) [contrib/cygwin/ssh-host-config] Patch from Corinna Vinschen. + Changes to work on Cygwin 1.5.x as well as on the new Cygwin 1.7.x. + The information given for the setting of the CYGWIN environment variable + is wrong for both releases so I just removed it, together with the + unnecessary (Cygwin 1.5.x) or wrong (Cygwin 1.7.x) default setting. + 20081228 - (djm) OpenBSD CVS Sync - stevesk@cvs.openbsd.org 2008/12/09 03:20:42 @@ -5095,5 +5102,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5179 2009/01/28 05:38:41 djm Exp $ +$Id: ChangeLog,v 1.5180 2009/01/28 20:50:04 tim Exp $ diff --git a/contrib/cygwin/ssh-host-config b/contrib/cygwin/ssh-host-config index 2d367d314..d4f5f32d0 100644 --- a/contrib/cygwin/ssh-host-config +++ b/contrib/cygwin/ssh-host-config @@ -25,7 +25,7 @@ source ${CSIH_SCRIPT} port_number=22 privsep_configured=no privsep_used=yes -cygwin_value="ntsec" +cygwin_value="" password_value= # ====================================================================== @@ -76,7 +76,7 @@ update_services_file() { fi _serv_tmp="${_my_etcdir}/srv.out.$$" - mount -t -f "${_win_etcdir}" "${_my_etcdir}" + mount -o text -f "${_win_etcdir}" "${_my_etcdir}" # Depends on the above mount _wservices=`cygpath -w "${_services}"` @@ -278,8 +278,6 @@ install_service() { echo -e "${_csih_QUERY_STR} Do you want to install sshd as a service?" if csih_request "(Say \"no\" if it is already installed as a service)" then - csih_inform "Note that the CYGWIN variable must contain at least \"ntsec\"" - csih_inform "for sshd to be able to change user context without password." csih_get_cygenv "${cygwin_value}" if ( csih_is_nt2003 || [ "$csih_FORCE_PRIVILEGED_USER" = "yes" ] ) -- cgit v1.2.3 From 6a3253496843abf7b10d1aadb46847e8b11039ec Mon Sep 17 00:00:00 2001 From: Tim Rice Date: Thu, 29 Jan 2009 12:30:01 -0800 Subject: - (tim) [contrib/cygwin/ssh-host-config] Patch from Corinna Vinschen. If the CYGWIN environment variable is empty, the installer script should not install the service with an empty CYGWIN variable, but rather without setting CYGWNI entirely. --- ChangeLog | 8 +++++++- contrib/cygwin/ssh-host-config | 13 +++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 25ce43ed1..affb5e501 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +20090129 + - (tim) [contrib/cygwin/ssh-host-config] Patch from Corinna Vinschen. + If the CYGWIN environment variable is empty, the installer script + should not install the service with an empty CYGWIN variable, but + rather without setting CYGWNI entirely. + 20090128 - (tim) [contrib/cygwin/ssh-host-config] Patch from Corinna Vinschen. Changes to work on Cygwin 1.5.x as well as on the new Cygwin 1.7.x. @@ -5102,5 +5108,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5180 2009/01/28 20:50:04 tim Exp $ +$Id: ChangeLog,v 1.5181 2009/01/29 20:30:01 tim Exp $ diff --git a/contrib/cygwin/ssh-host-config b/contrib/cygwin/ssh-host-config index d4f5f32d0..ec03f163d 100644 --- a/contrib/cygwin/ssh-host-config +++ b/contrib/cygwin/ssh-host-config @@ -314,10 +314,14 @@ install_service() { csih_check_user "${run_service_as}" + if [ -n "${csih_cygenv}" ] + then + cygwin_env="-e CYGWIN=\"${csih_cygenv}\"" + fi if [ -z "${password}" ] then - if cygrunsrv -I sshd -d "CYGWIN sshd" -p /usr/sbin/sshd -a "-D" -y tcpip \ - -e CYGWIN="${csih_cygenv}" + if eval cygrunsrv -I sshd -d \"CYGWIN sshd\" -p /usr/sbin/sshd \ + -a "-D" -y tcpip ${cygwin_env} then echo csih_inform "The sshd service has been installed under the LocalSystem" @@ -326,8 +330,9 @@ install_service() { csih_inform "will start automatically after the next reboot." fi else - if cygrunsrv -I sshd -d "CYGWIN sshd" -p /usr/sbin/sshd -a "-D" -y tcpip \ - -e CYGWIN="${csih_cygenv}" -u "${run_service_as}" -w "${password}" + if eval cygrunsrv -I sshd -d \"CYGWIN sshd\" -p /usr/sbin/sshd \ + -a "-D" -y tcpip ${cygwin_env} \ + -u "${run_service_as}" -w "${password}" then echo csih_inform "The sshd service has been installed under the '${run_service_as}'" -- cgit v1.2.3 From 0d8f2f3afa1663386ac80a0b7835b6776d5bcae1 Mon Sep 17 00:00:00 2001 From: Tim Rice Date: Thu, 29 Jan 2009 12:40:30 -0800 Subject: - (tim) [contrib/cygwin/ssh-host-config] Whitespace cleanup. No code changes. --- ChangeLog | 3 +- contrib/cygwin/ssh-host-config | 218 ++++++++++++++++++++--------------------- 2 files changed, 111 insertions(+), 110 deletions(-) diff --git a/ChangeLog b/ChangeLog index affb5e501..abb2f7bf5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,7 @@ If the CYGWIN environment variable is empty, the installer script should not install the service with an empty CYGWIN variable, but rather without setting CYGWNI entirely. + - (tim) [contrib/cygwin/ssh-host-config] Whitespace cleanup. No code changes. 20090128 - (tim) [contrib/cygwin/ssh-host-config] Patch from Corinna Vinschen. @@ -5108,5 +5109,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5181 2009/01/29 20:30:01 tim Exp $ +$Id: ChangeLog,v 1.5182 2009/01/29 20:40:30 tim Exp $ diff --git a/contrib/cygwin/ssh-host-config b/contrib/cygwin/ssh-host-config index ec03f163d..57e728fbc 100644 --- a/contrib/cygwin/ssh-host-config +++ b/contrib/cygwin/ssh-host-config @@ -37,13 +37,13 @@ create_host_keys() { csih_inform "Generating ${SYSCONFDIR}/ssh_host_key" ssh-keygen -t rsa1 -f ${SYSCONFDIR}/ssh_host_key -N '' > /dev/null fi - + if [ ! -f "${SYSCONFDIR}/ssh_host_rsa_key" ] then csih_inform "Generating ${SYSCONFDIR}/ssh_host_rsa_key" ssh-keygen -t rsa -f ${SYSCONFDIR}/ssh_host_rsa_key -N '' > /dev/null fi - + if [ ! -f "${SYSCONFDIR}/ssh_host_dsa_key" ] then csih_inform "Generating ${SYSCONFDIR}/ssh_host_dsa_key" @@ -75,12 +75,12 @@ update_services_file() { _spaces=" # " fi _serv_tmp="${_my_etcdir}/srv.out.$$" - + mount -o text -f "${_win_etcdir}" "${_my_etcdir}" - + # Depends on the above mount _wservices=`cygpath -w "${_services}"` - + # Remove sshd 22/port from services if [ `grep -q 'sshd[ \t][ \t]*22' "${_services}"; echo $?` -eq 0 ] then @@ -89,16 +89,16 @@ update_services_file() { then if mv "${_serv_tmp}" "${_services}" then - csih_inform "Removing sshd from ${_wservices}" + csih_inform "Removing sshd from ${_wservices}" else - csih_warning "Removing sshd from ${_wservices} failed!" + csih_warning "Removing sshd from ${_wservices} failed!" fi rm -f "${_serv_tmp}" else csih_warning "Removing sshd from ${_wservices} failed!" fi fi - + # Add ssh 22/tcp and ssh 22/udp to services if [ `grep -q 'ssh[ \t][ \t]*22' "${_services}"; echo $?` -ne 0 ] then @@ -106,9 +106,9 @@ update_services_file() { then if mv "${_serv_tmp}" "${_services}" then - csih_inform "Added ssh to ${_wservices}" + csih_inform "Added ssh to ${_wservices}" else - csih_warning "Adding ssh to ${_wservices} failed!" + csih_warning "Adding ssh to ${_wservices} failed!" fi rm -f "${_serv_tmp}" else @@ -134,16 +134,16 @@ sshd_privsep() { csih_inform "For more info on privilege separation read /usr/share/doc/openssh/README.privsep." if csih_request "Should privilege separation be used?" then - privsep_used=yes - if ! csih_create_unprivileged_user sshd - then + privsep_used=yes + if ! csih_create_unprivileged_user sshd + then csih_warning "Couldn't create user 'sshd'!" - csih_warning "Privilege separation set to 'no' again!" - csih_warning "Check your ${SYSCONFDIR}/sshd_config file!" + csih_warning "Privilege separation set to 'no' again!" + csih_warning "Check your ${SYSCONFDIR}/sshd_config file!" privsep_used=no - fi + fi else - privsep_used=no + privsep_used=no fi else # On 9x don't use privilege separation. Since security isn't @@ -151,7 +151,7 @@ sshd_privsep() { privsep_used=no fi fi - + # Create default sshd_config from skeleton files in /etc/defaults/etc or # modify to add the missing privsep configuration option if cmp "${SYSCONFDIR}/sshd_config" "${SYSCONFDIR}/defaults/${SYSCONFDIR}/sshd_config" >/dev/null 2>&1 @@ -161,8 +161,8 @@ sshd_privsep() { sed -e "s/^#UsePrivilegeSeparation yes/UsePrivilegeSeparation ${privsep_used}/ s/^#Port 22/Port ${port_number}/ s/^#StrictModes yes/StrictModes no/" \ - < ${SYSCONFDIR}/sshd_config \ - > "${sshdconfig_tmp}" + < ${SYSCONFDIR}/sshd_config \ + > "${sshdconfig_tmp}" mv "${sshdconfig_tmp}" ${SYSCONFDIR}/sshd_config elif [ "${privsep_configured}" != "yes" ] then @@ -193,19 +193,19 @@ update_inetd_conf() { # will be replaced by a file in inetd.d/ if [ `grep -q '^[# \t]*ssh' "${_inetcnf}"; echo $?` -eq 0 ] then - grep -v '^[# \t]*ssh' "${_inetcnf}" >> "${_inetcnf_tmp}" - if [ -f "${_inetcnf_tmp}" ] - then - if mv "${_inetcnf_tmp}" "${_inetcnf}" - then + grep -v '^[# \t]*ssh' "${_inetcnf}" >> "${_inetcnf_tmp}" + if [ -f "${_inetcnf_tmp}" ] + then + if mv "${_inetcnf_tmp}" "${_inetcnf}" + then csih_inform "Removed ssh[d] from ${_inetcnf}" - else + else csih_warning "Removing ssh[d] from ${_inetcnf} failed!" - fi - rm -f "${_inetcnf_tmp}" - else - csih_warning "Removing ssh[d] from ${_inetcnf} failed!" - fi + fi + rm -f "${_inetcnf_tmp}" + else + csih_warning "Removing ssh[d] from ${_inetcnf} failed!" + fi fi fi @@ -214,13 +214,13 @@ update_inetd_conf() { then if [ "${_with_comment}" -eq 0 ] then - sed -e 's/@COMMENT@[ \t]*//' < "${_sshd_inetd_conf}" > "${_sshd_inetd_conf_tmp}" + sed -e 's/@COMMENT@[ \t]*//' < "${_sshd_inetd_conf}" > "${_sshd_inetd_conf_tmp}" else - sed -e 's/@COMMENT@[ \t]*/# /' < "${_sshd_inetd_conf}" > "${_sshd_inetd_conf_tmp}" + sed -e 's/@COMMENT@[ \t]*/# /' < "${_sshd_inetd_conf}" > "${_sshd_inetd_conf_tmp}" fi mv "${_sshd_inetd_conf_tmp}" "${_sshd_inetd_conf}" csih_inform "Updated ${_sshd_inetd_conf}" - fi + fi elif [ -f "${_inetcnf}" ] then @@ -233,26 +233,26 @@ update_inetd_conf() { grep -v '^[# \t]*sshd' "${_inetcnf}" >> "${_inetcnf_tmp}" if [ -f "${_inetcnf_tmp}" ] then - if mv "${_inetcnf_tmp}" "${_inetcnf}" - then + if mv "${_inetcnf_tmp}" "${_inetcnf}" + then csih_inform "Removed sshd from ${_inetcnf}" - else + else csih_warning "Removing sshd from ${_inetcnf} failed!" - fi - rm -f "${_inetcnf_tmp}" + fi + rm -f "${_inetcnf_tmp}" else - csih_warning "Removing sshd from ${_inetcnf} failed!" + csih_warning "Removing sshd from ${_inetcnf} failed!" fi fi - + # Add ssh line to inetd.conf if [ `grep -q '^[# \t]*ssh' "${_inetcnf}"; echo $?` -ne 0 ] then if [ "${_with_comment}" -eq 0 ] then - echo 'ssh stream tcp nowait root /usr/sbin/sshd sshd -i' >> "${_inetcnf}" + echo 'ssh stream tcp nowait root /usr/sbin/sshd sshd -i' >> "${_inetcnf}" else - echo '# ssh stream tcp nowait root /usr/sbin/sshd sshd -i' >> "${_inetcnf}" + echo '# ssh stream tcp nowait root /usr/sbin/sshd sshd -i' >> "${_inetcnf}" fi csih_inform "Added ssh to ${_inetcnf}" fi @@ -278,83 +278,83 @@ install_service() { echo -e "${_csih_QUERY_STR} Do you want to install sshd as a service?" if csih_request "(Say \"no\" if it is already installed as a service)" then - csih_get_cygenv "${cygwin_value}" - - if ( csih_is_nt2003 || [ "$csih_FORCE_PRIVILEGED_USER" = "yes" ] ) - then - csih_inform "On Windows Server 2003, Windows Vista, and above, the" - csih_inform "SYSTEM account cannot setuid to other users -- a capability" - csih_inform "sshd requires. You need to have or to create a privileged" - csih_inform "account. This script will help you do so." - echo - if ! csih_create_privileged_user "${password_value}" - then - csih_error_recoverable "There was a serious problem creating a privileged user." - csih_request "Do you want to proceed anyway?" || exit 1 - fi - fi - - # never returns empty if NT or above - run_service_as=$(csih_service_should_run_as) - - if [ "${run_service_as}" = "${csih_PRIVILEGED_USERNAME}" ] - then - password="${csih_PRIVILEGED_PASSWORD}" - if [ -z "${password}" ] - then - csih_get_value "Please enter the password for user '${run_service_as}':" "-s" - password="${csih_value}" - fi - fi - - # at this point, we either have $run_service_as = "system" and $password is empty, - # or $run_service_as is some privileged user and (hopefully) $password contains - # the correct password. So, from here out, we use '-z "${password}"' to discriminate - # the two cases. - - csih_check_user "${run_service_as}" + csih_get_cygenv "${cygwin_value}" + + if ( csih_is_nt2003 || [ "$csih_FORCE_PRIVILEGED_USER" = "yes" ] ) + then + csih_inform "On Windows Server 2003, Windows Vista, and above, the" + csih_inform "SYSTEM account cannot setuid to other users -- a capability" + csih_inform "sshd requires. You need to have or to create a privileged" + csih_inform "account. This script will help you do so." + echo + if ! csih_create_privileged_user "${password_value}" + then + csih_error_recoverable "There was a serious problem creating a privileged user." + csih_request "Do you want to proceed anyway?" || exit 1 + fi + fi + + # never returns empty if NT or above + run_service_as=$(csih_service_should_run_as) + + if [ "${run_service_as}" = "${csih_PRIVILEGED_USERNAME}" ] + then + password="${csih_PRIVILEGED_PASSWORD}" + if [ -z "${password}" ] + then + csih_get_value "Please enter the password for user '${run_service_as}':" "-s" + password="${csih_value}" + fi + fi + + # at this point, we either have $run_service_as = "system" and $password is empty, + # or $run_service_as is some privileged user and (hopefully) $password contains + # the correct password. So, from here out, we use '-z "${password}"' to discriminate + # the two cases. + + csih_check_user "${run_service_as}" if [ -n "${csih_cygenv}" ] then cygwin_env="-e CYGWIN=\"${csih_cygenv}\"" fi - if [ -z "${password}" ] - then + if [ -z "${password}" ] + then if eval cygrunsrv -I sshd -d \"CYGWIN sshd\" -p /usr/sbin/sshd \ -a "-D" -y tcpip ${cygwin_env} - then - echo - csih_inform "The sshd service has been installed under the LocalSystem" - csih_inform "account (also known as SYSTEM). To start the service now, call" - csih_inform "\`net start sshd' or \`cygrunsrv -S sshd'. Otherwise, it" - csih_inform "will start automatically after the next reboot." - fi - else + then + echo + csih_inform "The sshd service has been installed under the LocalSystem" + csih_inform "account (also known as SYSTEM). To start the service now, call" + csih_inform "\`net start sshd' or \`cygrunsrv -S sshd'. Otherwise, it" + csih_inform "will start automatically after the next reboot." + fi + else if eval cygrunsrv -I sshd -d \"CYGWIN sshd\" -p /usr/sbin/sshd \ -a "-D" -y tcpip ${cygwin_env} \ -u "${run_service_as}" -w "${password}" - then + then echo csih_inform "The sshd service has been installed under the '${run_service_as}'" csih_inform "account. To start the service now, call \`net start sshd' or" - csih_inform "\`cygrunsrv -S sshd'. Otherwise, it will start automatically" - csih_inform "after the next reboot." - fi - fi - - # now, if successfully installed, set ownership of the affected files - if cygrunsrv -Q sshd >/dev/null 2>&1 - then - chown "${run_service_as}" ${SYSCONFDIR}/ssh* - chown "${run_service_as}".544 ${LOCALSTATEDIR}/empty - chown "${run_service_as}".544 ${LOCALSTATEDIR}/log/lastlog - if [ -f ${LOCALSTATEDIR}/log/sshd.log ] - then + csih_inform "\`cygrunsrv -S sshd'. Otherwise, it will start automatically" + csih_inform "after the next reboot." + fi + fi + + # now, if successfully installed, set ownership of the affected files + if cygrunsrv -Q sshd >/dev/null 2>&1 + then + chown "${run_service_as}" ${SYSCONFDIR}/ssh* + chown "${run_service_as}".544 ${LOCALSTATEDIR}/empty + chown "${run_service_as}".544 ${LOCALSTATEDIR}/log/lastlog + if [ -f ${LOCALSTATEDIR}/log/sshd.log ] + then chown "${run_service_as}".544 ${LOCALSTATEDIR}/log/sshd.log - fi - else - csih_warning "Something went wrong installing the sshd service." - fi + fi + else + csih_warning "Something went wrong installing the sshd service." + fi fi # user allowed us to install as service fi # service not yet installed fi # csih_is_nt @@ -478,9 +478,9 @@ setfacl -m u:system:rwx "${LOCALSTATEDIR}/log" # Create /var/log/lastlog if not already exists if [ -e ${LOCALSTATEDIR}/log/lastlog -a ! -f ${LOCALSTATEDIR}/log/lastlog ] then - echo + echo csih_error_multi "${LOCALSTATEDIR}/log/lastlog exists, but is not a file." \ - "Cannot create ssh host configuration." + "Cannot create ssh host configuration." fi if [ ! -e ${LOCALSTATEDIR}/log/lastlog ] then @@ -523,7 +523,7 @@ sshd_privsep -update_services_file +update_services_file update_inetd_conf install_service -- cgit v1.2.3 From 642ebe5b51112862f4c041abf6064fe711f56009 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sun, 1 Feb 2009 22:19:54 +1100 Subject: - (dtucker) [defines.h sshconnect.c] INET6_ADDRSTRLEN is now needed in channels.c too, so move the definition for non-IP6 platforms to defines.h where it can be shared. --- ChangeLog | 7 ++++++- defines.h | 6 +++++- sshconnect.c | 4 ---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index abb2f7bf5..5e7570484 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20090201 + - (dtucker) [defines.h sshconnect.c] INET6_ADDRSTRLEN is now needed in + channels.c too, so move the definition for non-IP6 platforms to defines.h + where it can be shared. + 20090129 - (tim) [contrib/cygwin/ssh-host-config] Patch from Corinna Vinschen. If the CYGWIN environment variable is empty, the installer script @@ -5109,5 +5114,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5182 2009/01/29 20:40:30 tim Exp $ +$Id: ChangeLog,v 1.5183 2009/02/01 11:19:54 dtucker Exp $ diff --git a/defines.h b/defines.h index 610e149cf..536ec4978 100644 --- a/defines.h +++ b/defines.h @@ -25,7 +25,7 @@ #ifndef _DEFINES_H #define _DEFINES_H -/* $Id: defines.h,v 1.152 2009/01/07 18:04:12 tim Exp $ */ +/* $Id: defines.h,v 1.153 2009/02/01 11:19:54 dtucker Exp $ */ /* Constants */ @@ -738,4 +738,8 @@ struct winsize { # define EWOULDBLOCK EAGAIN #endif +#ifndef INET6_ADDRSTRLEN /* for non IPv6 machines */ +#define INET6_ADDRSTRLEN 46 +#endif + #endif /* _DEFINES_H */ diff --git a/sshconnect.c b/sshconnect.c index 1c4c744ec..c04aa1057 100644 --- a/sshconnect.c +++ b/sshconnect.c @@ -70,10 +70,6 @@ extern uid_t original_real_uid; extern uid_t original_effective_uid; extern pid_t proxy_command_pid; -#ifndef INET6_ADDRSTRLEN /* for non IPv6 machines */ -#define INET6_ADDRSTRLEN 46 -#endif - static int show_other_keys(const char *, Key *); static void warn_changed_key(Key *); -- cgit v1.2.3 From 2de762456e8cdb92b85c1e573cbf2b4b70eee847 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Thu, 12 Feb 2009 12:19:20 +1100 Subject: - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically set ownership and modes, so avoid explicitly setting them --- ChangeLog | 6 +++++- sshpty.c | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 5e7570484..8bec9d153 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +20090212 + - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically + set ownership and modes, so avoid explicitly setting them + 20090201 - (dtucker) [defines.h sshconnect.c] INET6_ADDRSTRLEN is now needed in channels.c too, so move the definition for non-IP6 platforms to defines.h @@ -5114,5 +5118,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5183 2009/02/01 11:19:54 dtucker Exp $ +$Id: ChangeLog,v 1.5184 2009/02/12 01:19:20 djm Exp $ diff --git a/sshpty.c b/sshpty.c index 5a0d1a7ad..bbbc0fefe 100644 --- a/sshpty.c +++ b/sshpty.c @@ -46,6 +46,13 @@ #define O_NOCTTY 0 #endif +#ifdef __APPLE__ +# include +# if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) +# define __APPLE_PRIVPTY__ +# endif +#endif + /* * Allocates and opens a pty. Returns 0 if no pty could be allocated, or * nonzero if a pty was successfully allocated. On success, open file @@ -78,10 +85,12 @@ pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, size_t namebuflen) void pty_release(const char *tty) { +#ifndef __APPLE_PRIVPTY__ if (chown(tty, (uid_t) 0, (gid_t) 0) < 0) error("chown %.100s 0 0 failed: %.100s", tty, strerror(errno)); if (chmod(tty, (mode_t) 0666) < 0) error("chmod %.100s 0666 failed: %.100s", tty, strerror(errno)); +#endif /* __APPLE_PRIVPTY__ */ } /* Makes the tty the process's controlling tty and sets it to sane modes. */ -- cgit v1.2.3 From 20e231f9f8445ad072b319c9c47f3d9897a1f284 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Thu, 12 Feb 2009 13:12:21 +1100 Subject: - (djm) [configure.ac loginrec.c] bz#1421: fix lastlog support for OSX. OSX provides a getlastlogxbyname function that automates the reading of a lastlog file. Also, the pututxline function will update lastlog so there is no need for loginrec.c to do it explicitly. Collapse some overly verbose code while I'm in there. --- ChangeLog | 9 +++- configure.ac | 8 +++- loginrec.c | 139 ++++++++++++++++++++++++++++------------------------------- 3 files changed, 79 insertions(+), 77 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8bec9d153..124924b71 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,11 @@ -20090212 +20090205 - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically set ownership and modes, so avoid explicitly setting them + - (djm) [configure.ac loginrec.c] bz#1421: fix lastlog support for OSX. + OSX provides a getlastlogxbyname function that automates the reading of + a lastlog file. Also, the pututxline function will update lastlog so + there is no need for loginrec.c to do it explicitly. Collapse some + overly verbose code while I'm in there. 20090201 - (dtucker) [defines.h sshconnect.c] INET6_ADDRSTRLEN is now needed in @@ -5118,5 +5123,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5184 2009/02/12 01:19:20 djm Exp $ +$Id: ChangeLog,v 1.5185 2009/02/12 02:12:21 djm Exp $ diff --git a/configure.ac b/configure.ac index 94589ddc7..242dea0dc 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.413 2009/01/08 04:50:09 tim Exp $ +# $Id: configure.ac,v 1.414 2009/02/12 02:12:22 djm Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -15,7 +15,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) -AC_REVISION($Revision: 1.413 $) +AC_REVISION($Revision: 1.414 $) AC_CONFIG_SRCDIR([ssh.c]) AC_CONFIG_HEADER(config.h) @@ -477,6 +477,8 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) AC_CHECK_DECL(AU_IPv4, [], AC_DEFINE(AU_IPv4, 0, [System only supports IPv4 audit records]) [#include ] + AC_DEFINE(LASTLOG_WRITE_PUTUTXLINE, 1, + [Define if pututxline updates lastlog too]) ) ;; *-*-dragonfly*) @@ -1508,6 +1510,8 @@ AC_CHECK_FUNCS(utmpname) dnl Checks for utmpx functions AC_CHECK_FUNCS(endutxent getutxent getutxid getutxline pututxline ) AC_CHECK_FUNCS(setutxent utmpxname) +dnl Checks for lastlog functions +AC_CHECK_FUNCS(getlastlogxbyname) AC_CHECK_FUNC(daemon, [AC_DEFINE(HAVE_DAEMON, 1, [Define if your libraries define daemon()])], diff --git a/loginrec.c b/loginrec.c index b41114198..f4af06736 100644 --- a/loginrec.c +++ b/loginrec.c @@ -1456,25 +1456,14 @@ syslogin_write_entry(struct logininfo *li) **/ #ifdef USE_LASTLOG -#define LL_FILE 1 -#define LL_DIR 2 -#define LL_OTHER 3 - -static void -lastlog_construct(struct logininfo *li, struct lastlog *last) -{ - /* clear the structure */ - memset(last, '\0', sizeof(*last)); - - line_stripname(last->ll_line, li->line, sizeof(last->ll_line)); - strlcpy(last->ll_host, li->hostname, - MIN_SIZEOF(last->ll_host, li->hostname)); - last->ll_time = li->tv_sec; -} +#if !defined(LASTLOG_WRITE_PUTUTXLINE) || !defined(HAVE_GETLASTLOGXBYNAME) +/* open the file (using filemode) and seek to the login entry */ static int -lastlog_filetype(char *filename) +lastlog_openseek(struct logininfo *li, int *fd, int filemode) { + off_t offset; + char lastlog_file[1024]; struct stat st; if (stat(LASTLOG_FILE, &st) != 0) { @@ -1482,34 +1471,12 @@ lastlog_filetype(char *filename) LASTLOG_FILE, strerror(errno)); return (0); } - if (S_ISDIR(st.st_mode)) - return (LL_DIR); - else if (S_ISREG(st.st_mode)) - return (LL_FILE); - else - return (LL_OTHER); -} - - -/* open the file (using filemode) and seek to the login entry */ -static int -lastlog_openseek(struct logininfo *li, int *fd, int filemode) -{ - off_t offset; - int type; - char lastlog_file[1024]; - - type = lastlog_filetype(LASTLOG_FILE); - switch (type) { - case LL_FILE: - strlcpy(lastlog_file, LASTLOG_FILE, - sizeof(lastlog_file)); - break; - case LL_DIR: + if (S_ISDIR(st.st_mode)) { snprintf(lastlog_file, sizeof(lastlog_file), "%s/%s", LASTLOG_FILE, li->username); - break; - default: + } else if (S_ISREG(st.st_mode)) { + strlcpy(lastlog_file, LASTLOG_FILE, sizeof(lastlog_file)); + } else { logit("%s: %.100s is not a file or directory!", __func__, LASTLOG_FILE); return (0); @@ -1522,7 +1489,7 @@ lastlog_openseek(struct logininfo *li, int *fd, int filemode) return (0); } - if (type == LL_FILE) { + if (S_ISREG(st.st_mode)) { /* find this uid's offset in the lastlog file */ offset = (off_t) ((long)li->uid * sizeof(struct lastlog)); @@ -1535,52 +1502,74 @@ lastlog_openseek(struct logininfo *li, int *fd, int filemode) return (1); } +#endif /* !LASTLOG_WRITE_PUTUTXLINE || !HAVE_GETLASTLOGXBYNAME */ -static int -lastlog_perform_login(struct logininfo *li) +#ifdef LASTLOG_WRITE_PUTUTXLINE +int +lastlog_write_entry(struct logininfo *li) { - struct lastlog last; - int fd; - - /* create our struct lastlog */ - lastlog_construct(li, &last); - - if (!lastlog_openseek(li, &fd, O_RDWR|O_CREAT)) - return (0); - - /* write the entry */ - if (atomicio(vwrite, fd, &last, sizeof(last)) != sizeof(last)) { - close(fd); - logit("%s: Error writing to %s: %s", __func__, - LASTLOG_FILE, strerror(errno)); - return (0); + switch(li->type) { + case LTYPE_LOGIN: + return 1; /* lastlog written by pututxline */ + default: + logit("lastlog_write_entry: Invalid type field"); + return 0; } - - close(fd); - return (1); } - +#else /* LASTLOG_WRITE_PUTUTXLINE */ int lastlog_write_entry(struct logininfo *li) { + struct lastlog last; + int fd; + switch(li->type) { case LTYPE_LOGIN: - return (lastlog_perform_login(li)); + /* create our struct lastlog */ + memset(&last, '\0', sizeof(last)); + line_stripname(last.ll_line, li->line, sizeof(last.ll_line)); + strlcpy(last.ll_host, li->hostname, + MIN_SIZEOF(last.ll_host, li->hostname)); + last.ll_time = li->tv_sec; + + if (!lastlog_openseek(li, &fd, O_RDWR|O_CREAT)) + return (0); + + /* write the entry */ + if (atomicio(vwrite, fd, &last, sizeof(last)) != sizeof(last)) { + close(fd); + logit("%s: Error writing to %s: %s", __func__, + LASTLOG_FILE, strerror(errno)); + return (0); + } + + close(fd); + return (1); default: logit("%s: Invalid type field", __func__); return (0); } } +#endif /* LASTLOG_WRITE_PUTUTXLINE */ -static void -lastlog_populate_entry(struct logininfo *li, struct lastlog *last) +#ifdef HAVE_GETLASTLOGXBYNAME +int +lastlog_get_entry(struct logininfo *li) { - line_fullname(li->line, last->ll_line, sizeof(li->line)); - strlcpy(li->hostname, last->ll_host, - MIN_SIZEOF(li->hostname, last->ll_host)); - li->tv_sec = last->ll_time; -} + struct lastlogx l, *ll; + if ((ll = getlastlogxbyname(li->username, &l)) == NULL) { + memset(&l, '\0', sizeof(l)); + ll = &l; + } + line_fullname(li->line, ll->ll_line, sizeof(li->line)); + strlcpy(li->hostname, ll->ll_host, + MIN_SIZEOF(li->hostname, ll->ll_host)); + li->tv_sec = ll->ll_tv.tv_sec; + li->tv_usec = ll->ll_tv.tv_usec; + return (1); +} +#else /* HAVE_GETLASTLOGXBYNAME */ int lastlog_get_entry(struct logininfo *li) { @@ -1598,7 +1587,10 @@ lastlog_get_entry(struct logininfo *li) memset(&last, '\0', sizeof(last)); /* FALLTHRU */ case sizeof(last): - lastlog_populate_entry(li, &last); + line_fullname(li->line, last.ll_line, sizeof(li->line)); + strlcpy(li->hostname, last.ll_host, + MIN_SIZEOF(li->hostname, last.ll_host)); + li->tv_sec = last.ll_time; return (1); case -1: error("%s: Error reading from %s: %s", __func__, @@ -1613,6 +1605,7 @@ lastlog_get_entry(struct logininfo *li) /* NOTREACHED */ return (0); } +#endif /* HAVE_GETLASTLOGXBYNAME */ #endif /* USE_LASTLOG */ #ifdef USE_BTMP -- cgit v1.2.3 From fdd66fc750228b5d040c45bc36565299374b72c8 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 14 Feb 2009 16:26:19 +1100 Subject: - dtucker@cvs.openbsd.org 2009/02/02 11:15:14 [sftp.c] Initialize a few variables to prevent spurious "may be used uninitialized" warnings from newer gcc's. ok djm@ --- ChangeLog | 11 +++++++++-- sftp.c | 6 +++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 124924b71..cdcd1aced 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,11 @@ -20090205 +20090214 + - (djm) OpenBSD CVS Sync + - dtucker@cvs.openbsd.org 2009/02/02 11:15:14 + [sftp.c] + Initialize a few variables to prevent spurious "may be used + uninitialized" warnings from newer gcc's. ok djm@ + +20090212 - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically set ownership and modes, so avoid explicitly setting them - (djm) [configure.ac loginrec.c] bz#1421: fix lastlog support for OSX. @@ -5123,5 +5130,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5185 2009/02/12 02:12:21 djm Exp $ +$Id: ChangeLog,v 1.5186 2009/02/14 05:26:19 djm Exp $ diff --git a/sftp.c b/sftp.c index 01077a7a7..66bd111b1 100644 --- a/sftp.c +++ b/sftp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp.c,v 1.106 2008/12/09 15:35:00 sobrado Exp $ */ +/* $OpenBSD: sftp.c,v 1.107 2009/02/02 11:15:14 dtucker Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -1235,8 +1235,8 @@ parse_dispatch_command(struct sftp_conn *conn, const char *cmd, char **pwd, int err_abort) { char *path1, *path2, *tmp; - int pflag, lflag, iflag, hflag, cmdnum, i; - unsigned long n_arg; + int pflag = 0, lflag = 0, iflag = 0, hflag = 0, cmdnum, i; + unsigned long n_arg = 0; Attrib a, *aa; char path_buf[MAXPATHLEN]; int err = 0; -- cgit v1.2.3 From 4bf648f7766ba764d7a78b1dbb26df4f0d42a8c9 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 14 Feb 2009 16:28:21 +1100 Subject: - djm@cvs.openbsd.org 2009/02/12 03:00:56 [canohost.c canohost.h channels.c channels.h clientloop.c readconf.c] [readconf.h serverloop.c ssh.c] support remote port forwarding with a zero listen port (-R0:...) to dyamically allocate a listen port at runtime (this is actually specified in rfc4254); bz#1003 ok markus@ --- ChangeLog | 8 +++++++- canohost.c | 4 ++-- canohost.h | 4 +++- channels.c | 52 ++++++++++++++++++++++++++++++++++++++++++++-------- channels.h | 4 ++-- clientloop.c | 4 ++-- readconf.c | 13 +++++++++---- readconf.h | 4 ++-- serverloop.c | 9 ++++++--- ssh.c | 15 +++++++++++---- 10 files changed, 88 insertions(+), 29 deletions(-) diff --git a/ChangeLog b/ChangeLog index cdcd1aced..d8f8f2610 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,12 @@ [sftp.c] Initialize a few variables to prevent spurious "may be used uninitialized" warnings from newer gcc's. ok djm@ + - djm@cvs.openbsd.org 2009/02/12 03:00:56 + [canohost.c canohost.h channels.c channels.h clientloop.c readconf.c] + [readconf.h serverloop.c ssh.c] + support remote port forwarding with a zero listen port (-R0:...) to + dyamically allocate a listen port at runtime (this is actually + specified in rfc4254); bz#1003 ok markus@ 20090212 - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically @@ -5130,5 +5136,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5186 2009/02/14 05:26:19 djm Exp $ +$Id: ChangeLog,v 1.5187 2009/02/14 05:28:21 djm Exp $ diff --git a/canohost.c b/canohost.c index 42011fd0a..7138f48d0 100644 --- a/canohost.c +++ b/canohost.c @@ -1,4 +1,4 @@ -/* $OpenBSD: canohost.c,v 1.63 2008/06/12 00:03:49 dtucker Exp $ */ +/* $OpenBSD: canohost.c,v 1.64 2009/02/12 03:00:56 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -342,7 +342,7 @@ get_remote_name_or_ip(u_int utmp_len, int use_dns) /* Returns the local/remote port for the socket. */ -static int +int get_sock_port(int sock, int local) { struct sockaddr_storage from; diff --git a/canohost.h b/canohost.h index e33e8941b..d9b41ffe5 100644 --- a/canohost.h +++ b/canohost.h @@ -1,4 +1,4 @@ -/* $OpenBSD: canohost.h,v 1.9 2006/03/25 22:22:42 djm Exp $ */ +/* $OpenBSD: canohost.h,v 1.10 2009/02/12 03:00:56 djm Exp $ */ /* * Author: Tatu Ylonen @@ -23,5 +23,7 @@ char *get_local_name(int); int get_remote_port(void); int get_local_port(void); +int get_sock_port(int, int); + void ipv64_normalise_mapped(struct sockaddr_storage *, socklen_t *); diff --git a/channels.c b/channels.c index 0b1c34c83..dea60ba24 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.294 2009/01/22 09:49:57 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.295 2009/02/12 03:00:56 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -2460,7 +2460,8 @@ channel_set_af(int af) } static int -channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_port, +channel_setup_fwd_listener(int type, const char *listen_addr, + u_short listen_port, int *allocated_listen_port, const char *host_to_connect, u_short port_to_connect, int gateway_ports) { Channel *c; @@ -2468,6 +2469,7 @@ channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_por struct addrinfo hints, *ai, *aitop; const char *host, *addr; char ntop[NI_MAXHOST], strport[NI_MAXSERV]; + in_port_t *lport_p; host = (type == SSH_CHANNEL_RPORT_LISTENER) ? listen_addr : host_to_connect; @@ -2536,10 +2538,29 @@ channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_por } return 0; } - + if (allocated_listen_port != NULL) + *allocated_listen_port = 0; for (ai = aitop; ai; ai = ai->ai_next) { - if (ai->ai_family != AF_INET && ai->ai_family != AF_INET6) + switch (ai->ai_family) { + case AF_INET: + lport_p = &((struct sockaddr_in *)ai->ai_addr)-> + sin_port; + break; + case AF_INET6: + lport_p = &((struct sockaddr_in6 *)ai->ai_addr)-> + sin6_port; + break; + default: continue; + } + /* + * If allocating a port for -R forwards, then use the + * same port for all address families. + */ + if (type == SSH_CHANNEL_RPORT_LISTENER && listen_port == 0 && + allocated_listen_port != NULL && *allocated_listen_port > 0) + *lport_p = htons(*allocated_listen_port); + if (getnameinfo(ai->ai_addr, ai->ai_addrlen, ntop, sizeof(ntop), strport, sizeof(strport), NI_NUMERICHOST|NI_NUMERICSERV) != 0) { error("channel_setup_fwd_listener: getnameinfo failed"); @@ -2555,7 +2576,8 @@ channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_por channel_set_reuseaddr(sock); - debug("Local forwarding listening on %s port %s.", ntop, strport); + debug("Local forwarding listening on %s port %s.", + ntop, strport); /* Bind the socket to the address. */ if (bind(sock, ai->ai_addr, ai->ai_addrlen) < 0) { @@ -2574,6 +2596,19 @@ channel_setup_fwd_listener(int type, const char *listen_addr, u_short listen_por close(sock); continue; } + + /* + * listen_port == 0 requests a dynamically allocated port - + * record what we got. + */ + if (type == SSH_CHANNEL_RPORT_LISTENER && listen_port == 0 && + allocated_listen_port != NULL && + *allocated_listen_port == 0) { + *allocated_listen_port = get_sock_port(sock, 1); + debug("Allocated listen port %d", + *allocated_listen_port); + } + /* Allocate a channel number for the socket. */ c = channel_new("port listener", type, sock, sock, -1, CHAN_TCP_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, @@ -2616,17 +2651,18 @@ channel_setup_local_fwd_listener(const char *listen_host, u_short listen_port, const char *host_to_connect, u_short port_to_connect, int gateway_ports) { return channel_setup_fwd_listener(SSH_CHANNEL_PORT_LISTENER, - listen_host, listen_port, host_to_connect, port_to_connect, + listen_host, listen_port, NULL, host_to_connect, port_to_connect, gateway_ports); } /* protocol v2 remote port fwd, used by sshd */ int channel_setup_remote_fwd_listener(const char *listen_address, - u_short listen_port, int gateway_ports) + u_short listen_port, int *allocated_listen_port, int gateway_ports) { return channel_setup_fwd_listener(SSH_CHANNEL_RPORT_LISTENER, - listen_address, listen_port, NULL, 0, gateway_ports); + listen_address, listen_port, allocated_listen_port, + NULL, 0, gateway_ports); } /* diff --git a/channels.h b/channels.h index 19fee769c..1488ed7e5 100644 --- a/channels.h +++ b/channels.h @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.h,v 1.97 2009/01/22 09:46:01 djm Exp $ */ +/* $OpenBSD: channels.h,v 1.98 2009/02/12 03:00:56 djm Exp $ */ /* * Author: Tatu Ylonen @@ -245,7 +245,7 @@ int channel_request_remote_forwarding(const char *, u_short, int channel_setup_local_fwd_listener(const char *, u_short, const char *, u_short, int); void channel_request_rforward_cancel(const char *host, u_short port); -int channel_setup_remote_fwd_listener(const char *, u_short, int); +int channel_setup_remote_fwd_listener(const char *, u_short, int *, int); int channel_cancel_rport_listener(const char *, u_short); /* x11 forwarding */ diff --git a/clientloop.c b/clientloop.c index 1b5badb71..a2d2d1d07 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.208 2009/01/22 10:02:34 djm Exp $ */ +/* $OpenBSD: clientloop.c,v 1.209 2009/02/12 03:00:56 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -849,7 +849,7 @@ process_cmdline(void) } channel_request_rforward_cancel(cancel_host, cancel_port); } else { - if (!parse_forward(&fwd, s, dynamic ? 1 : 0)) { + if (!parse_forward(&fwd, s, dynamic, remote)) { logit("Bad forwarding specification."); goto out; } diff --git a/readconf.c b/readconf.c index 0a8be1400..53fc6c7ba 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.175 2009/01/22 10:02:34 djm Exp $ */ +/* $OpenBSD: readconf.c,v 1.176 2009/02/12 03:00:56 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -735,7 +735,8 @@ parse_int: } if (parse_forward(&fwd, fwdarg, - opcode == oDynamicForward ? 1 : 0) == 0) + opcode == oDynamicForward ? 1 : 0, + opcode == oRemoteForward ? 1 : 0) == 0) fatal("%.200s line %d: Bad forwarding specification.", filename, linenum); @@ -1220,7 +1221,7 @@ fill_default_options(Options * options) * returns number of arguments parsed or zero on error */ int -parse_forward(Forward *fwd, const char *fwdspec, int dynamicfwd) +parse_forward(Forward *fwd, const char *fwdspec, int dynamicfwd, int remotefwd) { int i; char *p, *cp, *fwdarg[4]; @@ -1283,12 +1284,16 @@ parse_forward(Forward *fwd, const char *fwdspec, int dynamicfwd) goto fail_free; } - if (fwd->listen_port <= 0) + if (fwd->listen_port < 0 || (!remotefwd && fwd->listen_port == 0)) goto fail_free; if (fwd->connect_host != NULL && strlen(fwd->connect_host) >= NI_MAXHOST) goto fail_free; + if (fwd->listen_host != NULL && + strlen(fwd->listen_host) >= NI_MAXHOST) + goto fail_free; + return (i); diff --git a/readconf.h b/readconf.h index d94d65890..8fb3a8528 100644 --- a/readconf.h +++ b/readconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.h,v 1.77 2009/01/22 10:02:34 djm Exp $ */ +/* $OpenBSD: readconf.h,v 1.78 2009/02/12 03:00:56 djm Exp $ */ /* * Author: Tatu Ylonen @@ -134,7 +134,7 @@ typedef struct { void initialize_options(Options *); void fill_default_options(Options *); int read_config_file(const char *, const char *, Options *, int); -int parse_forward(Forward *, const char *, int); +int parse_forward(Forward *, const char *, int, int); int process_config_line(Options *, const char *, char *, const char *, int, int *); diff --git a/serverloop.c b/serverloop.c index 931779e30..6244ad71c 100644 --- a/serverloop.c +++ b/serverloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: serverloop.c,v 1.155 2009/01/22 10:02:34 djm Exp $ */ +/* $OpenBSD: serverloop.c,v 1.156 2009/02/12 03:00:56 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1095,7 +1095,7 @@ server_input_global_request(int type, u_int32_t seq, void *ctxt) { char *rtype; int want_reply; - int success = 0; + int success = 0, allocated_listen_port = 0; rtype = packet_get_string(NULL); want_reply = packet_get_char(); @@ -1119,7 +1119,8 @@ server_input_global_request(int type, u_int32_t seq, void *ctxt) if (!options.allow_tcp_forwarding || no_port_forwarding_flag #ifndef NO_IPPORT_RESERVED_CONCEPT - || (listen_port < IPPORT_RESERVED && pw->pw_uid != 0) + || (listen_port != 0 && + listen_port < IPPORT_RESERVED && pw->pw_uid != 0) #endif ) { success = 0; @@ -1149,6 +1150,8 @@ server_input_global_request(int type, u_int32_t seq, void *ctxt) if (want_reply) { packet_start(success ? SSH2_MSG_REQUEST_SUCCESS : SSH2_MSG_REQUEST_FAILURE); + if (success && allocated_listen_port > 0) + packet_put_int(allocated_listen_port); packet_send(); packet_write_wait(); } diff --git a/ssh.c b/ssh.c index 26f070f3e..9d43bb74f 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.323 2009/01/22 10:02:34 djm Exp $ */ +/* $OpenBSD: ssh.c,v 1.324 2009/02/12 03:00:56 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -453,7 +453,7 @@ main(int ac, char **av) break; case 'L': - if (parse_forward(&fwd, optarg, 0)) + if (parse_forward(&fwd, optarg, 0, 0)) add_local_forward(&options, &fwd); else { fprintf(stderr, @@ -464,7 +464,7 @@ main(int ac, char **av) break; case 'R': - if (parse_forward(&fwd, optarg, 0)) { + if (parse_forward(&fwd, optarg, 0, 1)) { add_remote_forward(&options, &fwd); } else { fprintf(stderr, @@ -475,7 +475,7 @@ main(int ac, char **av) break; case 'D': - if (parse_forward(&fwd, optarg, 1)) { + if (parse_forward(&fwd, optarg, 1, 0)) { add_local_forward(&options, &fwd); } else { fprintf(stderr, @@ -837,9 +837,16 @@ ssh_confirm_remote_forward(int type, u_int32_t seq, void *ctxt) { Forward *rfwd = (Forward *)ctxt; + /* XXX verbose() on failure? */ debug("remote forward %s for: listen %d, connect %s:%d", type == SSH2_MSG_REQUEST_SUCCESS ? "success" : "failure", rfwd->listen_port, rfwd->connect_host, rfwd->connect_port); + if (type == SSH2_MSG_REQUEST_SUCCESS && rfwd->listen_port == 0) { + logit("Allocated port %u for remote forward to %s:%d", + packet_get_int(), + rfwd->connect_host, rfwd->connect_port); + } + if (type == SSH2_MSG_REQUEST_FAILURE) { if (options.exit_on_forward_failure) fatal("Error: remote port forwarding failed for " -- cgit v1.2.3 From 330d58587f05fd34f3b1d20a64d254ea0470a6cc Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 14 Feb 2009 16:33:09 +1100 Subject: - djm@cvs.openbsd.org 2009/02/12 03:16:01 [serverloop.c] tighten check for -R0:... forwarding: only allow dynamic allocation if want_reply is set in the packet --- ChangeLog | 6 +++++- serverloop.c | 11 ++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index d8f8f2610..e296e0441 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,6 +10,10 @@ support remote port forwarding with a zero listen port (-R0:...) to dyamically allocate a listen port at runtime (this is actually specified in rfc4254); bz#1003 ok markus@ + - djm@cvs.openbsd.org 2009/02/12 03:16:01 + [serverloop.c] + tighten check for -R0:... forwarding: only allow dynamic allocation + if want_reply is set in the packet 20090212 - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically @@ -5136,5 +5140,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5187 2009/02/14 05:28:21 djm Exp $ +$Id: ChangeLog,v 1.5188 2009/02/14 05:33:09 djm Exp $ diff --git a/serverloop.c b/serverloop.c index 6244ad71c..81cafe6ad 100644 --- a/serverloop.c +++ b/serverloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: serverloop.c,v 1.156 2009/02/12 03:00:56 djm Exp $ */ +/* $OpenBSD: serverloop.c,v 1.157 2009/02/12 03:16:01 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1117,10 +1117,10 @@ server_input_global_request(int type, u_int32_t seq, void *ctxt) /* check permissions */ if (!options.allow_tcp_forwarding || - no_port_forwarding_flag + no_port_forwarding_flag || + (!want_reply && listen_port == 0) #ifndef NO_IPPORT_RESERVED_CONCEPT - || (listen_port != 0 && - listen_port < IPPORT_RESERVED && pw->pw_uid != 0) + || (listen_port < IPPORT_RESERVED && pw->pw_uid != 0) #endif ) { success = 0; @@ -1128,7 +1128,8 @@ server_input_global_request(int type, u_int32_t seq, void *ctxt) } else { /* Start listening on the port */ success = channel_setup_remote_fwd_listener( - listen_address, listen_port, options.gateway_ports); + listen_address, listen_port, + &allocated_listen_port, options.gateway_ports); } xfree(listen_address); } else if (strcmp(rtype, "cancel-tcpip-forward") == 0) { -- cgit v1.2.3 From 923e8bb7dc921b3136320f126976bfeee11c9e41 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 14 Feb 2009 16:33:31 +1100 Subject: - djm@cvs.openbsd.org 2009/02/12 03:26:22 [monitor.c] some paranoia: check that the serialised key is really KEY_RSA before diddling its internals --- ChangeLog | 6 +++++- monitor.c | 6 ++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index e296e0441..5e9a177d9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,10 @@ [serverloop.c] tighten check for -R0:... forwarding: only allow dynamic allocation if want_reply is set in the packet + - djm@cvs.openbsd.org 2009/02/12 03:26:22 + [monitor.c] + some paranoia: check that the serialised key is really KEY_RSA before + diddling its internals 20090212 - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically @@ -5140,5 +5144,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5188 2009/02/14 05:33:09 djm Exp $ +$Id: ChangeLog,v 1.5189 2009/02/14 05:33:31 djm Exp $ diff --git a/monitor.c b/monitor.c index 39deedc8f..f57e74ba5 100644 --- a/monitor.c +++ b/monitor.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor.c,v 1.100 2008/11/04 08:22:13 djm Exp $ */ +/* $OpenBSD: monitor.c,v 1.101 2009/02/12 03:26:22 djm Exp $ */ /* * Copyright 2002 Niels Provos * Copyright 2002 Markus Friedl @@ -1500,7 +1500,9 @@ mm_answer_rsa_challenge(int sock, Buffer *m) fatal("%s: key type mismatch", __func__); if ((key = key_from_blob(blob, blen)) == NULL) fatal("%s: received bad key", __func__); - + if (key->type != KEY_RSA) + fatal("%s: received bad key type %d", __func__, key->type); + key->type = KEY_RSA1; if (ssh1_challenge) BN_clear_free(ssh1_challenge); ssh1_challenge = auth_rsa_generate_challenge(key); -- cgit v1.2.3 From e2f4cc5016f63a0ccee02056f33b79e12e0fd31b Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 14 Feb 2009 16:33:49 +1100 Subject: - djm@cvs.openbsd.org 2009/02/12 03:42:09 [ssh.1] document -R0:... usage --- ChangeLog | 5 ++++- ssh.1 | 11 +++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5e9a177d9..c93cf06f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18,6 +18,9 @@ [monitor.c] some paranoia: check that the serialised key is really KEY_RSA before diddling its internals + - djm@cvs.openbsd.org 2009/02/12 03:42:09 + [ssh.1] + document -R0:... usage 20090212 - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically @@ -5144,5 +5147,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5189 2009/02/14 05:33:31 djm Exp $ +$Id: ChangeLog,v 1.5190 2009/02/14 05:33:49 djm Exp $ diff --git a/ssh.1 b/ssh.1 index b66a1c342..6a7cfbf13 100644 --- a/ssh.1 +++ b/ssh.1 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh.1,v 1.280 2008/11/09 12:34:47 tobias Exp $ -.Dd $Mdocdate: November 9 2008 $ +.\" $OpenBSD: ssh.1,v 1.281 2009/02/12 03:42:09 djm Exp $ +.Dd $Mdocdate: February 12 2009 $ .Dt SSH 1 .Os .Sh NAME @@ -563,6 +563,13 @@ will only succeed if the server's .Cm GatewayPorts option is enabled (see .Xr sshd_config 5 ) . +.Pp +If the +.Ar port +argument is +.Dq 0 , +the listen port will be dynamically allocated on the server and reported +to the client at run time. .It Fl S Ar ctl_path Specifies the location of a control socket for connection sharing. Refer to the description of -- cgit v1.2.3 From 65fa4cab4cf8e795bb624866a27794cae2845210 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 14 Feb 2009 16:34:05 +1100 Subject: - djm@cvs.openbsd.org 2009/02/12 03:44:25 [ssh.1] consistency: Dq => Ql --- ChangeLog | 5 ++++- ssh.1 | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index c93cf06f6..dc981f7eb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,6 +21,9 @@ - djm@cvs.openbsd.org 2009/02/12 03:42:09 [ssh.1] document -R0:... usage + - djm@cvs.openbsd.org 2009/02/12 03:44:25 + [ssh.1] + consistency: Dq => Ql 20090212 - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically @@ -5147,5 +5150,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5190 2009/02/14 05:33:49 djm Exp $ +$Id: ChangeLog,v 1.5191 2009/02/14 05:34:05 djm Exp $ diff --git a/ssh.1 b/ssh.1 index 6a7cfbf13..421783be3 100644 --- a/ssh.1 +++ b/ssh.1 @@ -34,7 +34,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh.1,v 1.281 2009/02/12 03:42:09 djm Exp $ +.\" $OpenBSD: ssh.1,v 1.282 2009/02/12 03:44:25 djm Exp $ .Dd $Mdocdate: February 12 2009 $ .Dt SSH 1 .Os @@ -567,7 +567,7 @@ option is enabled (see If the .Ar port argument is -.Dq 0 , +.Ql 0 , the listen port will be dynamically allocated on the server and reported to the client at run time. .It Fl S Ar ctl_path -- cgit v1.2.3 From 85c6d8a991826fcc1217f5743b0108668c12f7cb Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 14 Feb 2009 16:34:21 +1100 Subject: - djm@cvs.openbsd.org 2009/02/12 03:46:17 [ssh_config.5] document RemoteForward usage with 0 listen port --- ChangeLog | 5 ++++- ssh_config.5 | 11 +++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index dc981f7eb..3dfe3f5ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24,6 +24,9 @@ - djm@cvs.openbsd.org 2009/02/12 03:44:25 [ssh.1] consistency: Dq => Ql + - djm@cvs.openbsd.org 2009/02/12 03:46:17 + [ssh_config.5] + document RemoteForward usage with 0 listen port 20090212 - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically @@ -5150,5 +5153,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5191 2009/02/14 05:34:05 djm Exp $ +$Id: ChangeLog,v 1.5192 2009/02/14 05:34:21 djm Exp $ diff --git a/ssh_config.5 b/ssh_config.5 index 376d928a1..1f8e6c0bd 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.116 2009/01/24 17:10:22 naddy Exp $ -.Dd $Mdocdate: January 24 2009 $ +.\" $OpenBSD: ssh_config.5,v 1.117 2009/02/12 03:46:17 djm Exp $ +.Dd $Mdocdate: February 12 2009 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -813,6 +813,13 @@ Multiple forwardings may be specified, and additional forwardings can be given on the command line. Privileged ports can be forwarded only when logging in as root on the remote machine. +.Pp +If the +.Ar port +argument is +.Ql 0 , +the listen port will be dynamically allocated on the server and reported +to the client at run time. .Pp If the .Ar bind_address -- cgit v1.2.3 From e379e1083748ab84cc199f2cbf7029621e2cb75c Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 14 Feb 2009 16:34:39 +1100 Subject: - jmc@cvs.openbsd.org 2009/02/12 07:34:20 [ssh_config.5] kill trailing whitespace; --- ChangeLog | 5 ++++- ssh_config.5 | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3dfe3f5ce..8e0c681ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -27,6 +27,9 @@ - djm@cvs.openbsd.org 2009/02/12 03:46:17 [ssh_config.5] document RemoteForward usage with 0 listen port + - jmc@cvs.openbsd.org 2009/02/12 07:34:20 + [ssh_config.5] + kill trailing whitespace; 20090212 - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically @@ -5153,5 +5156,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5192 2009/02/14 05:34:21 djm Exp $ +$Id: ChangeLog,v 1.5193 2009/02/14 05:34:39 djm Exp $ diff --git a/ssh_config.5 b/ssh_config.5 index 1f8e6c0bd..6ff2f3efe 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -34,7 +34,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.117 2009/02/12 03:46:17 djm Exp $ +.\" $OpenBSD: ssh_config.5,v 1.118 2009/02/12 07:34:20 jmc Exp $ .Dd $Mdocdate: February 12 2009 $ .Dt SSH_CONFIG 5 .Os @@ -813,7 +813,7 @@ Multiple forwardings may be specified, and additional forwardings can be given on the command line. Privileged ports can be forwarded only when logging in as root on the remote machine. -.Pp +.Pp If the .Ar port argument is -- cgit v1.2.3 From 61433bec808fc90de066902e793147fd5015a2cc Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 14 Feb 2009 16:35:01 +1100 Subject: - markus@cvs.openbsd.org 2009/02/13 11:50:21 [packet.c] check for enc !=NULL in packet_start_discard --- ChangeLog | 5 ++++- packet.c | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8e0c681ba..a2d2045af 100644 --- a/ChangeLog +++ b/ChangeLog @@ -30,6 +30,9 @@ - jmc@cvs.openbsd.org 2009/02/12 07:34:20 [ssh_config.5] kill trailing whitespace; + - markus@cvs.openbsd.org 2009/02/13 11:50:21 + [packet.c] + check for enc !=NULL in packet_start_discard 20090212 - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically @@ -5156,5 +5159,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5193 2009/02/14 05:34:39 djm Exp $ +$Id: ChangeLog,v 1.5194 2009/02/14 05:35:01 djm Exp $ diff --git a/packet.c b/packet.c index 33559cd4f..5afc84ce0 100644 --- a/packet.c +++ b/packet.c @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.c,v 1.159 2009/01/26 09:58:15 markus Exp $ */ +/* $OpenBSD: packet.c,v 1.160 2009/02/13 11:50:21 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -236,7 +236,7 @@ packet_stop_discard(void) static void packet_start_discard(Enc *enc, Mac *mac, u_int packet_length, u_int discard) { - if (!cipher_is_cbc(enc->cipher)) + if (enc == NULL || !cipher_is_cbc(enc->cipher)) packet_disconnect("Packet corrupt"); if (packet_length != PACKET_MAX_SIZE && mac && mac->enabled) packet_discard_mac = mac; -- cgit v1.2.3 From 6385e758dfbc72d461a68cd19819e5f9d41e555c Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 14 Feb 2009 18:00:52 +1100 Subject: - djm@cvs.openbsd.org 2009/02/14 06:35:49 [PROTOCOL] mention that eow and no-more-sessions extensions are sent only to OpenSSH peers --- ChangeLog | 6 +++++- PROTOCOL | 13 ++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index a2d2045af..d4b454fc3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -33,6 +33,10 @@ - markus@cvs.openbsd.org 2009/02/13 11:50:21 [packet.c] check for enc !=NULL in packet_start_discard + - djm@cvs.openbsd.org 2009/02/14 06:35:49 + [PROTOCOL] + mention that eow and no-more-sessions extensions are sent only to + OpenSSH peers 20090212 - (djm) [sshpty.c] bz#1419: OSX uses cloning ptys that automagically @@ -5159,5 +5163,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5194 2009/02/14 05:35:01 djm Exp $ +$Id: ChangeLog,v 1.5195 2009/02/14 07:00:52 djm Exp $ diff --git a/PROTOCOL b/PROTOCOL index 37fd536d9..5aada630d 100644 --- a/PROTOCOL +++ b/PROTOCOL @@ -64,6 +64,12 @@ remain open after a "eow@openssh.com" has been sent and more data may still be sent in the other direction. This message does not consume window space and may be sent even if no window space is available. +NB. due to certain broken SSH implementations aborting upon receipt +of this message (in contravention of RFC4254 section 5.4), this +message is only sent to OpenSSH peers (identified by banner). +Other SSH implementations may be whitelisted to receive this message +upon request. + 4. connection: disallow additional sessions extension "no-more-sessions@openssh.com" @@ -87,6 +93,11 @@ connection. Note that this is not a general defence against compromised clients (that is impossible), but it thwarts a simple attack. +NB. due to certain broken SSH implementations aborting upon receipt +of this message, the no-more-sessions request is only sent to OpenSSH +servers (identified by banner). Other SSH implementations may be +whitelisted to receive this message upon request. + 5. connection: Tunnel forward extension "tun@openssh.com" OpenSSH supports layer 2 and layer 3 tunnelling via the "tun@openssh.com" @@ -240,4 +251,4 @@ The values of the f_flag bitmask are as follows: Both the "statvfs@openssh.com" and "fstatvfs@openssh.com" extensions are advertised in the SSH_FXP_VERSION hello with version "2". -$OpenBSD: PROTOCOL,v 1.11 2008/07/05 05:16:01 djm Exp $ +$OpenBSD: PROTOCOL,v 1.12 2009/02/14 06:35:49 djm Exp $ -- cgit v1.2.3 From 3f94aaf38c815f0aa72c3c7bf40491c8d456e929 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 16 Feb 2009 15:21:39 +1100 Subject: - (djm) [regress/conch-ciphers.sh regress/putty-ciphers.sh] [regress/putty-kex.sh regress/putty-transfer.sh] Downgrade disabled interop tests from FATAL error to a warning. Allows some interop tests to proceed if others are missing necessary prerequisites. --- ChangeLog | 8 +++++++- openbsd-compat/xmmap.c | 5 +++-- regress/conch-ciphers.sh | 3 ++- regress/putty-ciphers.sh | 3 ++- regress/putty-kex.sh | 3 ++- regress/putty-transfer.sh | 3 ++- 6 files changed, 18 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index d4b454fc3..2fff9e388 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +20090216 + - (djm) [regress/conch-ciphers.sh regress/putty-ciphers.sh] + [regress/putty-kex.sh regress/putty-transfer.sh] Downgrade disabled + interop tests from FATAL error to a warning. Allows some interop + tests to proceed if others are missing necessary prerequisites. + 20090214 - (djm) OpenBSD CVS Sync - dtucker@cvs.openbsd.org 2009/02/02 11:15:14 @@ -5163,5 +5169,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5195 2009/02/14 07:00:52 djm Exp $ +$Id: ChangeLog,v 1.5196 2009/02/16 04:21:39 djm Exp $ diff --git a/openbsd-compat/xmmap.c b/openbsd-compat/xmmap.c index 23efe3888..04c6babc2 100644 --- a/openbsd-compat/xmmap.c +++ b/openbsd-compat/xmmap.c @@ -23,7 +23,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $Id: xmmap.c,v 1.14 2007/06/11 02:52:24 djm Exp $ */ +/* $Id: xmmap.c,v 1.15 2009/02/16 04:21:40 djm Exp $ */ #include "includes.h" @@ -71,7 +71,8 @@ xmmap(size_t size) fatal("mkstemp(\"%s\"): %s", MM_SWAP_TEMPLATE, strerror(errno)); unlink(tmpname); - ftruncate(tmpfd, size); + if (ftruncate(tmpfd, size) != 0) + fatal("%s: ftruncate: %s", __func__, strerror(errno)); address = mmap(NULL, size, PROT_WRITE|PROT_READ, MAP_SHARED, tmpfd, (off_t)0); close(tmpfd); diff --git a/regress/conch-ciphers.sh b/regress/conch-ciphers.sh index 84b190618..5b65cd993 100644 --- a/regress/conch-ciphers.sh +++ b/regress/conch-ciphers.sh @@ -7,7 +7,8 @@ DATA=/bin/ls COPY=${OBJ}/copy if test "x$REGRESS_INTEROP_CONCH" != "xyes" ; then - fatal "conch interop tests not enabled" + echo "conch interop tests not enabled" + exit 0 fi start_sshd diff --git a/regress/putty-ciphers.sh b/regress/putty-ciphers.sh index 441053627..928ea60d2 100644 --- a/regress/putty-ciphers.sh +++ b/regress/putty-ciphers.sh @@ -7,7 +7,8 @@ DATA=/bin/ls COPY=${OBJ}/copy if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then - fatal "putty interop tests not enabled" + echo "putty interop tests not enabled" + exit 0 fi for c in aes blowfish 3des arcfour aes128-ctr aes192-ctr aes256-ctr ; do diff --git a/regress/putty-kex.sh b/regress/putty-kex.sh index 2534b8575..293885a8a 100644 --- a/regress/putty-kex.sh +++ b/regress/putty-kex.sh @@ -7,7 +7,8 @@ DATA=/bin/ls COPY=${OBJ}/copy if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then - fatal "putty interop tests not enabled" + echo "putty interop tests not enabled" + exit 0 fi for k in dh-gex-sha1 dh-group1-sha1 dh-group14-sha1 ; do diff --git a/regress/putty-transfer.sh b/regress/putty-transfer.sh index 6b21f3be7..9e1e1550a 100644 --- a/regress/putty-transfer.sh +++ b/regress/putty-transfer.sh @@ -7,7 +7,8 @@ DATA=/bin/ls COPY=${OBJ}/copy if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then - fatal "putty interop tests not enabled" + echo "putty interop tests not enabled" + exit 0 fi # XXX support protocol 1 too -- cgit v1.2.3 From 9055172d0387bae9304aa284b3c08ea107d9133f Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 16 Feb 2009 15:37:03 +1100 Subject: - (djm) [configure.ac] support GNU/kFreeBSD and GNU/kOpensolaris systems; patch from Aurelien Jarno via rmh AT aybabtu.com --- ChangeLog | 4 +++- configure.ac | 12 ++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2fff9e388..da9e201b8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,8 @@ [regress/putty-kex.sh regress/putty-transfer.sh] Downgrade disabled interop tests from FATAL error to a warning. Allows some interop tests to proceed if others are missing necessary prerequisites. + - (djm) [configure.ac] support GNU/kFreeBSD and GNU/kOpensolaris + systems; patch from Aurelien Jarno via rmh AT aybabtu.com 20090214 - (djm) OpenBSD CVS Sync @@ -5169,5 +5171,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5196 2009/02/16 04:21:39 djm Exp $ +$Id: ChangeLog,v 1.5197 2009/02/16 04:37:03 djm Exp $ diff --git a/configure.ac b/configure.ac index 242dea0dc..b33914dae 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -# $Id: configure.ac,v 1.414 2009/02/12 02:12:22 djm Exp $ +# $Id: configure.ac,v 1.415 2009/02/16 04:37:03 djm Exp $ # # Copyright (c) 1999-2004 Damien Miller # @@ -15,7 +15,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_INIT(OpenSSH, Portable, openssh-unix-dev@mindrot.org) -AC_REVISION($Revision: 1.414 $) +AC_REVISION($Revision: 1.415 $) AC_CONFIG_SRCDIR([ssh.c]) AC_CONFIG_HEADER(config.h) @@ -563,6 +563,14 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) AC_DEFINE(WITH_ABBREV_NO_TTY) AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*") ;; +*-*-k*bsd*-gnu | *-*-kopensolaris*-gnu) + check_for_libcrypt_later=1 + AC_DEFINE(PAM_TTY_KLUDGE) + AC_DEFINE(LOCKED_PASSWD_PREFIX, "!") + AC_DEFINE(SPT_TYPE,SPT_REUSEARGV) + AC_DEFINE(_PATH_BTMP, "/var/log/btmp", [log for bad login attempts]) + AC_DEFINE(USE_BTMP, 1, [Use btmp to log bad logins]) + ;; *-*-linux*) no_dev_ptmx=1 check_for_libcrypt_later=1 -- cgit v1.2.3 From e8001d4820bb9d292695bcb8c5f20c04f2f17d61 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 21 Feb 2009 12:45:02 +1100 Subject: - djm@cvs.openbsd.org 2009/02/17 01:28:32 [ssh_config] sync with revised default ciphers; pointed out by dkrause@ --- ChangeLog | 8 +++++++- ssh_config | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index da9e201b8..a659a62a3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +20090221 + - (djm) OpenBSD CVS Sync + - djm@cvs.openbsd.org 2009/02/17 01:28:32 + [ssh_config] + sync with revised default ciphers; pointed out by dkrause@ + 20090216 - (djm) [regress/conch-ciphers.sh regress/putty-ciphers.sh] [regress/putty-kex.sh regress/putty-transfer.sh] Downgrade disabled @@ -5171,5 +5177,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5197 2009/02/16 04:37:03 djm Exp $ +$Id: ChangeLog,v 1.5198 2009/02/21 01:45:02 djm Exp $ diff --git a/ssh_config b/ssh_config index ef5a73f7d..f28d59583 100644 --- a/ssh_config +++ b/ssh_config @@ -1,4 +1,4 @@ -# $OpenBSD: ssh_config,v 1.24 2008/07/25 06:56:35 grunk Exp $ +# $OpenBSD: ssh_config,v 1.25 2009/02/17 01:28:32 djm Exp $ # This is the ssh client system-wide configuration file. See # ssh_config(5) for more information. This file provides defaults for @@ -37,7 +37,7 @@ # Port 22 # Protocol 2,1 # Cipher 3des -# Ciphers aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc +# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc # MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160 # EscapeChar ~ # Tunnel no -- cgit v1.2.3 From 25918381ad4375f71836a44e3cc2b6a653c8979c Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 21 Feb 2009 12:45:18 +1100 Subject: - djm@cvs.openbsd.org 2009/02/18 04:31:21 [schnorr.c] signature should hash over the entire group, not just the generator (this is still disabled code) --- ChangeLog | 6 +++++- schnorr.c | 6 ++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index a659a62a3..3bad0fc03 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,10 @@ - djm@cvs.openbsd.org 2009/02/17 01:28:32 [ssh_config] sync with revised default ciphers; pointed out by dkrause@ + - djm@cvs.openbsd.org 2009/02/18 04:31:21 + [schnorr.c] + signature should hash over the entire group, not just the generator + (this is still disabled code) 20090216 - (djm) [regress/conch-ciphers.sh regress/putty-ciphers.sh] @@ -5177,5 +5181,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5198 2009/02/21 01:45:02 djm Exp $ +$Id: ChangeLog,v 1.5199 2009/02/21 01:45:18 djm Exp $ diff --git a/schnorr.c b/schnorr.c index e3abe5702..546975072 100644 --- a/schnorr.c +++ b/schnorr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: schnorr.c,v 1.1 2008/11/04 08:22:13 djm Exp $ */ +/* $OpenBSD: schnorr.c,v 1.2 2009/02/18 04:31:21 djm Exp $ */ /* * Copyright (c) 2008 Damien Miller. All rights reserved. * @@ -81,8 +81,10 @@ schnorr_hash(const BIGNUM *p, const BIGNUM *q, const BIGNUM *g, buffer_init(&b); EVP_MD_CTX_init(&evp_md_ctx); - /* h = H(g || g^v || g^x || id) */ + /* h = H(g || p || q || g^v || g^x || id) */ buffer_put_bignum2(&b, g); + buffer_put_bignum2(&b, p); + buffer_put_bignum2(&b, q); buffer_put_bignum2(&b, g_v); buffer_put_bignum2(&b, g_x); buffer_put_string(&b, id, idlen); -- cgit v1.2.3 From 7691e5fa44a54b193f00380634c3978a961480d2 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sat, 21 Feb 2009 18:03:04 +1100 Subject: - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec] [contrib/suse/openssh.spec] Prepare for 5.2p1 --- ChangeLog | 4 +++- contrib/caldera/openssh.spec | 8 ++++---- contrib/redhat/openssh.spec | 4 ++-- contrib/suse/openssh.spec | 4 ++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3bad0fc03..e1de4ed4a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,8 @@ [schnorr.c] signature should hash over the entire group, not just the generator (this is still disabled code) + - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec] + [contrib/suse/openssh.spec] Prepare for 5.2p1 20090216 - (djm) [regress/conch-ciphers.sh regress/putty-ciphers.sh] @@ -5181,5 +5183,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5199 2009/02/21 01:45:18 djm Exp $ +$Id: ChangeLog,v 1.5200 2009/02/21 07:03:04 djm Exp $ diff --git a/contrib/caldera/openssh.spec b/contrib/caldera/openssh.spec index 32d175d4b..42dbcfeeb 100644 --- a/contrib/caldera/openssh.spec +++ b/contrib/caldera/openssh.spec @@ -17,11 +17,11 @@ #old cvs stuff. please update before use. may be deprecated. %define use_stable 1 %if %{use_stable} - %define version 5.1p1 + %define version 5.2p1 %define cvs %{nil} %define release 1 %else - %define version 5.1p1 + %define version 5.2p1 %define cvs cvs20050315 %define release 0r1 %endif @@ -251,7 +251,7 @@ install -m 0755 contrib/caldera/ssh-host-keygen $SKG # install remaining docs DocD="%{buildroot}%{_defaultdocdir}/%{name}-%{version}" mkdir -p $DocD/%{askpass} -cp -a CREDITS ChangeLog LICENCE OVERVIEW README* TODO $DocD +cp -a CREDITS ChangeLog LICENCE OVERVIEW README* TODO PROTOCOL* $DocD install -p -m 0444 %{SOURCE3} $DocD/faq.html cp -a %{askpass}/{README,ChangeLog,TODO,SshAskpass*.ad} $DocD/%{askpass} %if %{use_stable} @@ -358,4 +358,4 @@ fi * Mon Jan 01 1998 ... Template Version: 1.31 -$Id: openssh.spec,v 1.65 2008/07/21 08:21:53 djm Exp $ +$Id: openssh.spec,v 1.66 2009/02/21 07:03:05 djm Exp $ diff --git a/contrib/redhat/openssh.spec b/contrib/redhat/openssh.spec index bb9e4d616..10bdc1989 100644 --- a/contrib/redhat/openssh.spec +++ b/contrib/redhat/openssh.spec @@ -1,4 +1,4 @@ -%define ver 5.1p1 +%define ver 5.2p1 %define rel 1 # OpenSSH privilege separation requires a user & group ID @@ -333,7 +333,7 @@ fi %files %defattr(-,root,root) -%doc CREDITS ChangeLog INSTALL LICENCE OVERVIEW README* RFC* TODO WARNING* +%doc CREDITS ChangeLog INSTALL LICENCE OVERVIEW README* PROTOCOL* TODO WARNING* %attr(0755,root,root) %{_bindir}/scp %attr(0644,root,root) %{_mandir}/man1/scp.1* %attr(0755,root,root) %dir %{_sysconfdir}/ssh diff --git a/contrib/suse/openssh.spec b/contrib/suse/openssh.spec index 7bd9e0569..62f43e137 100644 --- a/contrib/suse/openssh.spec +++ b/contrib/suse/openssh.spec @@ -13,7 +13,7 @@ Summary: OpenSSH, a free Secure Shell (SSH) protocol implementation Name: openssh -Version: 5.1p1 +Version: 5.2p1 URL: http://www.openssh.com/ Release: 1 Source0: openssh-%{version}.tar.gz @@ -200,7 +200,7 @@ fi %files %defattr(-,root,root) -%doc ChangeLog OVERVIEW README* +%doc ChangeLog OVERVIEW README* PROTOCOL* %doc TODO CREDITS LICENCE %attr(0755,root,root) %dir %{_sysconfdir}/ssh %attr(0644,root,root) %config(noreplace) %{_sysconfdir}/ssh/ssh_config -- cgit v1.2.3 From 9eab9564d5185b52f33f4a265914d32a3147338e Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sun, 22 Feb 2009 08:47:02 +1100 Subject: - (djm) OpenBSD CVS Sync - tobias@cvs.openbsd.org 2009/02/21 19:32:04 [misc.c sftp-server-main.c ssh-keygen.c] Added missing newlines in error messages. ok dtucker --- ChangeLog | 9 ++++++++- misc.c | 7 ++++--- sftp-server-main.c | 5 +++-- ssh-keygen.c | 16 ++++++++-------- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index e1de4ed4a..c50e1e5f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +20090222 + - (djm) OpenBSD CVS Sync + - tobias@cvs.openbsd.org 2009/02/21 19:32:04 + [misc.c sftp-server-main.c ssh-keygen.c] + Added missing newlines in error messages. + ok dtucker + 20090221 - (djm) OpenBSD CVS Sync - djm@cvs.openbsd.org 2009/02/17 01:28:32 @@ -5183,5 +5190,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5200 2009/02/21 07:03:04 djm Exp $ +$Id: ChangeLog,v 1.5201 2009/02/21 21:47:02 djm Exp $ diff --git a/misc.c b/misc.c index 755eda105..143dbf0e2 100644 --- a/misc.c +++ b/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.70 2009/01/22 10:02:34 djm Exp $ */ +/* $OpenBSD: misc.c,v 1.71 2009/02/21 19:32:04 tobias Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005,2006 Damien Miller. All rights reserved. @@ -714,7 +714,8 @@ sanitise_stdfd(void) int nullfd, dupfd; if ((nullfd = dupfd = open(_PATH_DEVNULL, O_RDWR)) == -1) { - fprintf(stderr, "Couldn't open /dev/null: %s", strerror(errno)); + fprintf(stderr, "Couldn't open /dev/null: %s\n", + strerror(errno)); exit(1); } while (++dupfd <= 2) { @@ -722,7 +723,7 @@ sanitise_stdfd(void) if (fcntl(dupfd, F_GETFL, 0) >= 0) continue; if (dup2(nullfd, dupfd) == -1) { - fprintf(stderr, "dup2: %s", strerror(errno)); + fprintf(stderr, "dup2: %s\n", strerror(errno)); exit(1); } } diff --git a/sftp-server-main.c b/sftp-server-main.c index 2b14569e4..7e644ab89 100644 --- a/sftp-server-main.c +++ b/sftp-server-main.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-server-main.c,v 1.3 2008/03/26 23:44:41 djm Exp $ */ +/* $OpenBSD: sftp-server-main.c,v 1.4 2009/02/21 19:32:04 tobias Exp $ */ /* * Copyright (c) 2008 Markus Friedl. All rights reserved. * @@ -42,7 +42,8 @@ main(int argc, char **argv) sanitise_stdfd(); if ((user_pw = getpwuid(getuid())) == NULL) { - fprintf(stderr, "No user found for uid %lu", (u_long)getuid()); + fprintf(stderr, "No user found for uid %lu\n", + (u_long)getuid()); return 1; } diff --git a/ssh-keygen.c b/ssh-keygen.c index a45499177..5765cff08 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.172 2008/11/07 00:42:12 stevesk Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.173 2009/02/21 19:32:04 tobias Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -135,7 +135,7 @@ ask_filename(struct passwd *pw, const char *prompt) name = _PATH_SSH_CLIENT_ID_RSA; break; default: - fprintf(stderr, "bad key type"); + fprintf(stderr, "bad key type\n"); exit(1); break; } @@ -421,7 +421,7 @@ do_convert_from_ssh2(struct passwd *pw) PEM_write_RSAPrivateKey(stdout, k->rsa, NULL, NULL, 0, NULL, NULL)) : key_write(k, stdout); if (!ok) { - fprintf(stderr, "key write failed"); + fprintf(stderr, "key write failed\n"); exit(1); } key_free(k); @@ -1015,11 +1015,11 @@ do_change_comment(struct passwd *pw) } f = fdopen(fd, "w"); if (f == NULL) { - printf("fdopen %s failed", identity_file); + printf("fdopen %s failed\n", identity_file); exit(1); } if (!key_write(public, f)) - fprintf(stderr, "write key failed"); + fprintf(stderr, "write key failed\n"); key_free(public); fprintf(f, " %s\n", new_comment); fclose(f); @@ -1366,7 +1366,7 @@ main(int argc, char **argv) printf("Generating public/private %s key pair.\n", key_type_name); private = key_generate(type, bits); if (private == NULL) { - fprintf(stderr, "key_generate failed"); + fprintf(stderr, "key_generate failed\n"); exit(1); } public = key_from_private(private); @@ -1456,11 +1456,11 @@ passphrase_again: } f = fdopen(fd, "w"); if (f == NULL) { - printf("fdopen %s failed", identity_file); + printf("fdopen %s failed\n", identity_file); exit(1); } if (!key_write(public, f)) - fprintf(stderr, "write key failed"); + fprintf(stderr, "write key failed\n"); fprintf(f, " %s\n", comment); fclose(f); -- cgit v1.2.3 From 19913847640ac7df423f01f641abfce0f364238f Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 23 Feb 2009 10:53:58 +1100 Subject: - djm@cvs.openbsd.org 2009/02/22 23:50:57 [ssh_config.5 sshd_config.5] don't advertise experimental options --- ChangeLog | 8 +++++++- ssh_config.5 | 15 ++------------- sshd_config.5 | 20 ++++---------------- 3 files changed, 13 insertions(+), 30 deletions(-) diff --git a/ChangeLog b/ChangeLog index c50e1e5f6..3fb167999 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +20090223 + - (djm) OpenBSD CVS Sync + - djm@cvs.openbsd.org 2009/02/22 23:50:57 + [ssh_config.5 sshd_config.5] + don't advertise experimental options + 20090222 - (djm) OpenBSD CVS Sync - tobias@cvs.openbsd.org 2009/02/21 19:32:04 @@ -5190,5 +5196,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5201 2009/02/21 21:47:02 djm Exp $ +$Id: ChangeLog,v 1.5202 2009/02/22 23:53:58 djm Exp $ diff --git a/ssh_config.5 b/ssh_config.5 index 6ff2f3efe..ea9a20b23 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.118 2009/02/12 07:34:20 jmc Exp $ -.Dd $Mdocdate: February 12 2009 $ +.\" $OpenBSD: ssh_config.5,v 1.119 2009/02/22 23:50:57 djm Exp $ +.Dd $Mdocdate: February 22 2009 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -1086,17 +1086,6 @@ Specifies the full pathname of the program. The default is .Pa /usr/X11R6/bin/xauth . -.It Cm ZeroKnowledgePasswordAuthentication -Specifies whether to use zero knowledge password authentication. -This authentication method avoids exposure of password to untrusted -hosts. -The argument to this keyword must be -.Dq yes -or -.Dq no . -The default is currently -.Dq no -as this method is considered experimental. .El .Sh PATTERNS A diff --git a/sshd_config.5 b/sshd_config.5 index 033ae8d3d..c28b18e3e 100644 --- a/sshd_config.5 +++ b/sshd_config.5 @@ -34,8 +34,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.100 2009/01/24 17:10:22 naddy Exp $ -.Dd $Mdocdate: January 24 2009 $ +.\" $OpenBSD: sshd_config.5,v 1.101 2009/02/22 23:50:57 djm Exp $ +.Dd $Mdocdate: February 22 2009 $ .Dt SSHD_CONFIG 5 .Os .Sh NAME @@ -612,10 +612,9 @@ Available keywords are .Cm RhostsRSAAuthentication , .Cm RSAAuthentication , .Cm X11DisplayOffset , -.Cm X11Forwarding , -.Cm X11UseLocalHost , +.Cm X11Forwarding and -.Cm ZeroKnowledgePasswordAuthentication . +.Cm X11UseLocalHost .It Cm MaxAuthTries Specifies the maximum number of authentication attempts permitted per connection. @@ -1006,17 +1005,6 @@ Specifies the full pathname of the program. The default is .Pa /usr/X11R6/bin/xauth . -.It Cm ZeroKnowledgePasswordAuthentication -Specifies whether to use zero knowledge password authentication. -This authentication method avoids exposure of password to untrusted -hosts. -The argument to this keyword must be -.Dq yes -or -.Dq no . -The default is currently -.Dq no -as this method is considered experimental. .El .Sh TIME FORMATS .Xr sshd 8 -- cgit v1.2.3 From 0296ae85ec0da7f7bcf51578ed960d66a1541613 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 23 Feb 2009 11:00:24 +1100 Subject: - djm@cvs.openbsd.org 2009/02/22 23:59:25 [sshd_config.5] missing period --- ChangeLog | 5 ++++- sshd_config.5 | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3fb167999..f7e4355a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,9 @@ - djm@cvs.openbsd.org 2009/02/22 23:50:57 [ssh_config.5 sshd_config.5] don't advertise experimental options + - djm@cvs.openbsd.org 2009/02/22 23:59:25 + [sshd_config.5] + missing period 20090222 - (djm) OpenBSD CVS Sync @@ -5196,5 +5199,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5202 2009/02/22 23:53:58 djm Exp $ +$Id: ChangeLog,v 1.5203 2009/02/23 00:00:24 djm Exp $ diff --git a/sshd_config.5 b/sshd_config.5 index c28b18e3e..dfd07b713 100644 --- a/sshd_config.5 +++ b/sshd_config.5 @@ -34,7 +34,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.101 2009/02/22 23:50:57 djm Exp $ +.\" $OpenBSD: sshd_config.5,v 1.102 2009/02/22 23:59:25 djm Exp $ .Dd $Mdocdate: February 22 2009 $ .Dt SSHD_CONFIG 5 .Os @@ -614,7 +614,7 @@ Available keywords are .Cm X11DisplayOffset , .Cm X11Forwarding and -.Cm X11UseLocalHost +.Cm X11UseLocalHost . .It Cm MaxAuthTries Specifies the maximum number of authentication attempts permitted per connection. -- cgit v1.2.3 From 582ca6b1712ef6efd9650200bd820a067331fec1 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 23 Feb 2009 11:09:25 +1100 Subject: - djm@cvs.openbsd.org 2009/02/23 00:06:15 [version.h] openssh-5.2 --- ChangeLog | 5 ++++- version.h | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f7e4355a0..3cec316bd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,9 @@ - djm@cvs.openbsd.org 2009/02/22 23:59:25 [sshd_config.5] missing period + - djm@cvs.openbsd.org 2009/02/23 00:06:15 + [version.h] + openssh-5.2 20090222 - (djm) OpenBSD CVS Sync @@ -5199,5 +5202,5 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.5203 2009/02/23 00:00:24 djm Exp $ +$Id: ChangeLog,v 1.5204 2009/02/23 00:09:25 djm Exp $ diff --git a/version.h b/version.h index 41a081f12..f2f3196ab 100644 --- a/version.h +++ b/version.h @@ -1,6 +1,6 @@ -/* $OpenBSD: version.h,v 1.54 2008/07/21 08:19:07 djm Exp $ */ +/* $OpenBSD: version.h,v 1.55 2009/02/23 00:06:15 djm Exp $ */ -#define SSH_VERSION "OpenSSH_5.1" +#define SSH_VERSION "OpenSSH_5.2" #define SSH_PORTABLE "p1" #define SSH_RELEASE SSH_VERSION SSH_PORTABLE -- cgit v1.2.3 From 09d19045b8ae9e2433f7d970aacec522adef649b Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 23 Feb 2009 11:11:12 +1100 Subject: trim --- ChangeLog | 3839 ------------------------------------------------------------- 1 file changed, 3839 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3cec316bd..1cb08f1ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1365,3842 +1365,3 @@ [contrib/suse/openssh.spec] Crank version numbers in RPM spec files - (djm) [README] Update link to release notes - (djm) Release 5.0p1 - -20080315 - - (djm) [regress/test-exec.sh] Quote putty-related variables in case they are - empty; report and patch from Peter Stuge - - (djm) [regress/test-exec.sh] Silence noise from detection of putty - commands; report from Peter Stuge - - (djm) [session.c] Relocate incorrectly-placed closefrom() that was causing - crashes when used with ChrootDirectory - - -20080327 - - (dtucker) Cache selinux status earlier so we know if it's enabled after a - chroot. Allows ChrootDirectory to work with selinux support compiled in - but not enabled. Using it with selinux enabled will require some selinux - support inside the chroot. "looks sane" djm@ - - (djm) Fix RCS ident in sftp-server-main.c - - (djm) OpenBSD CVS sync: - - jmc@cvs.openbsd.org 2008/02/11 07:58:28 - [ssh.1 sshd.8 sshd_config.5] - bump Mdocdate for pages committed in "febuary", necessary because - of a typo in rcs.c; - - deraadt@cvs.openbsd.org 2008/03/13 01:49:53 - [monitor_fdpass.c] - Correct CMSG_SPACE and CMSG_LEN usage everywhere in the tree. Due to - an extensive discussion with otto, kettenis, millert, and hshoexer - - deraadt@cvs.openbsd.org 2008/03/15 16:19:02 - [monitor_fdpass.c] - Repair the simple cases for msg_controllen where it should just be - CMSG_SIZE(sizeof(int)), not sizeof(buffer) which may be larger because - of alignment; ok kettenis hshoexer - - djm@cvs.openbsd.org 2008/03/23 12:54:01 - [sftp-client.c] - prefer POSIX-style file renaming over filexfer rename behaviour if the - server supports the posix-rename@openssh.com extension. - Note that the old (filexfer) behaviour would refuse to clobber an - existing file. Users who depended on this should adjust their sftp(1) - usage. - ok deraadt@ markus@ - - deraadt@cvs.openbsd.org 2008/03/24 16:11:07 - [monitor_fdpass.c] - msg_controllen has to be CMSG_SPACE so that the kernel can account for - each cmsg_len (ie. msg_controllen = sum of CMSG_ALIGN(cmsg_len). This - works now that kernel fd passing has been fixed to accept a bit of - sloppiness because of this ABI repair. - lots of discussion with kettenis - - djm@cvs.openbsd.org 2008/03/25 11:58:02 - [session.c sshd_config.5] - ignore ~/.ssh/rc if a sshd_config ForceCommand is specified; - from dtucker@ ok deraadt@ djm@ - - djm@cvs.openbsd.org 2008/03/25 23:01:41 - [session.c] - last patch had backwards test; spotted by termim AT gmail.com - - djm@cvs.openbsd.org 2008/03/26 21:28:14 - [auth-options.c auth-options.h session.c sshd.8] - add no-user-rc authorized_keys option to disable execution of ~/.ssh/rc - - djm@cvs.openbsd.org 2008/03/27 00:16:49 - [version.h] - openssh-4.9 - - djm@cvs.openbsd.org 2008/03/24 21:46:54 - [regress/sftp-badcmds.sh] - disable no-replace rename test now that we prefer a POSIX rename; spotted - by dkrause@ - - (djm) [configure.ac] fix alignment of --without-stackprotect description - - (djm) [configure.ac] --with-selinux too - - (djm) [regress/Makefile] cleanup PuTTY interop test droppings - - (djm) [README] Update link to release notes - - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec] - [contrib/suse/openssh.spec] Crank version numbers in RPM spec files - - (djm) Release 4.9p1 - -20080315 - - (djm) [regress/test-exec.sh] Quote putty-related variables in case they are - empty; report and patch from Peter Stuge - - (djm) [regress/test-exec.sh] Silence noise from detection of putty - commands; report from Peter Stuge - - (djm) [session.c] Relocate incorrectly-placed closefrom() that was causing - crashes when used with ChrootDirectory - -20080314 - - (tim) [regress/sftp-cmds.sh] s/cd/lcd/ in lls test. Reported by - vinschen at redhat.com. Add () to put echo commands in subshell for lls test - I mistakenly left out of last commit. - - (tim) [regress/localcommand.sh] Shell portability fix. Reported by imorgan at - nas.nasa.gov - -20080313 - - (djm) [Makefile.in regress/Makefile] Fix interop-tests target (note to - self: make changes to Makefile.in next time, not the generated Makefile). - - (djm) [Makefile.in regress/test-exec.sh] Find installed plink(1) and - puttygen(1) by $PATH - - (tim) [scp.c] Use poll.h if available, fall back to sys/poll.h if not. Patch - by vinschen at redhat.com. - - (tim) [regress/sftp-cmds.sh regress/ssh2putty.sh] Shell portability fixes - from vinschen at redhat.com and imorgan at nas.nasa.gov - -20080312 - - (djm) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2007/10/29 06:57:13 - [regress/Makefile regress/localcommand.sh] - Add simple regress test for LocalCommand; ok djm@ - - jmc@cvs.openbsd.org 2007/11/25 15:35:09 - [regress/agent-getpeereid.sh regress/agent.sh] - more existant -> existent, from Martynas Venckus; - pfctl changes: ok henning - ssh changes: ok deraadt - - djm@cvs.openbsd.org 2007/12/12 05:04:03 - [regress/sftp-cmds.sh] - unbreak lls command and add a regress test that would have caught the - breakage; spotted by mouring@ - NB. sftp code change already committed. - - djm@cvs.openbsd.org 2007/12/21 04:13:53 - [regress/Makefile regress/test-exec.sh regress/putty-ciphers.sh] - [regress/putty-kex.sh regress/putty-transfer.sh regress/ssh2putty.sh] - basic (crypto, kex and transfer) interop regression tests against putty - To run these, install putty and run "make interop-tests" from the build - directory - the tests aren't run by default yet. - -20080311 - - (dtucker) [auth-pam.c monitor.c session.c sshd.c] Bug #926: Move - pam_open_session and pam_close_session into the privsep monitor, which - will ensure that pam_session_close is called as root. Patch from Tomas - Mraz. - -20080309 - - (dtucker) [configure.ac] It turns out gcc's -fstack-protector-all doesn't - always work for all platforms and versions, so test what we can and - add a configure flag to turn it of if needed. ok djm@ - - (dtucker) [openbsd-compat/port-aix.{c,h}] Remove AIX specific initgroups - implementation. It's not needed to fix bug #1081 and breaks the build - on some AIX configurations. - - (dtucker) [openbsd-compat/regress/strtonumtest.c] Bug #1347: Use platform's - equivalent of LLONG_MAX for the compat regression tests, which makes them - run on AIX and HP-UX. Patch from David Leonard. - - (dtucker) [configure.ac] Run stack-protector tests with -Werror to catch - platforms where gcc understands the option but it's not supported (and - thus generates a warning). - -20080307 - - (djm) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2008/02/11 07:58:28 - [ssh.1 sshd.8 sshd_config.5] - bump Mdocdate for pages committed in "febuary", necessary because - of a typo in rcs.c; - - djm@cvs.openbsd.org 2008/02/13 22:38:17 - [servconf.h session.c sshd.c] - rekey arc4random and OpenSSL RNG in postauth child - closefrom fds > 2 before shell/command execution - ok markus@ - - mbalmer@cvs.openbsd.org 2008/02/14 13:10:31 - [sshd.c] - When started in configuration test mode (-t) do not check that sshd is - being started with an absolute path. - ok djm - - markus@cvs.openbsd.org 2008/02/20 15:25:26 - [session.c] - correct boolean encoding for coredump; der Mouse via dugsong - - djm@cvs.openbsd.org 2008/02/22 05:58:56 - [session.c] - closefrom() call was too early, delay it until just before we execute - the user's rc files (if any). - - dtucker@cvs.openbsd.org 2008/02/22 20:44:02 - [clientloop.c packet.c packet.h serverloop.c] - Allow all SSH2 packet types, including UNIMPLEMENTED to reset the - keepalive timer (bz #1307). ok markus@ - - djm@cvs.openbsd.org 2008/02/27 20:21:15 - [sftp-server.c] - add an extension method "posix-rename@openssh.com" to perform POSIX atomic - rename() operations. based on patch from miklos AT szeredi.hu in bz#1400; - ok dtucker@ markus@ - - deraadt@cvs.openbsd.org 2008/03/02 18:19:35 - [monitor_fdpass.c] - use a union to ensure alignment of the cmsg (pay attention: various other - parts of the tree need this treatment too); ok djm - - deraadt@cvs.openbsd.org 2008/03/04 21:15:42 - [version.h] - crank version; from djm - - (tim) [regress/sftp-glob.sh] Shell portability fix. - -20080302 - - (dtucker) [configure.ac] FreeBSD's glob() doesn't behave the way we expect - either, so use our own. - -20080229 - - (dtucker) [openbsd-compat/bsd-poll.c] We don't check for select(2) in - configure (and there's not much point, as openssh won't work without it) - so HAVE_SELECT is not defined and the poll(2) compat code doesn't get - built in. Remove HAVE_SELECT so we can build on platforms without poll. - - (dtucker) [scp.c] Include sys/poll.h inside HAVE_SYS_POLL_H. - - (djm) [contrib/gnome-ssh-askpass2.h] Keep askpass windown on top. From - Debian patch via bernd AT openbsd.org - -20080228 - - (dtucker) [configure.ac] Add -fstack-protector to LDFLAGS too, fixes - linking problems on AIX with gcc 4.1.x. - - (dtucker) [includes.h ssh-add.c ssh-agent.c ssh-keygen.c ssh.c sshd.c - openbsd-compat/openssl-compat.{c,h}] Bug #1437 Move the OpenSSL compat - header to after OpenSSL headers, since some versions of OpenSSL have - SSLeay_add_all_algorithms as a macro already. - - (dtucker) [key.c defines.h openbsd-compat/openssl-compat.h] Move old OpenSSL - compat glue into openssl-compat.h. - - (dtucker) [configure.ac openbsd-compat/port-aix.{c,h}] Bug #1081: Implement - getgrouplist via getgrset on AIX, rather than iterating over getgrent. - This allows, eg, Match and AllowGroups directives to work with NIS and - LDAP groups. - - (dtucker) [sshd.c] Bug #1042: make log messages for tcpwrappers use the - same SyslogFacility as the rest of sshd. Patch from William Knox, - ok djm@. - -20080225 - - (dtucker) [openbsd-compat/fake-rfc2553.h] rename ssh_gai_strerror hack - since it now conflicts with the helper function in misc.c. From - vinschen AT redhat.com. - - (dtucker) [configure.ac audit-bsm.c] Bug #1420: Add a local implementation - of aug_get_machine for systems that don't have their own (eg OS X, FreeBSD). - Help and testing from csjp at FreeBSD org, vgiffin at apple com. ok djm@ - - (dtucker) [includes.h openbsd-compat/openssl-compat.c] Bug #1437: reshuffle - headers so ./configure --with-ssl-engine actually works. Patch from - Ian Lister. - -20080224 - - (tim) [contrib/cygwin/ssh-host-config] - Grammar changes on SYSCONFDIR LOCALSTATEDIR messages. - Check more thoroughly that it's possible to create the /var/empty directory. - Patch by vinschen AT redhat.com - -20080210 - - OpenBSD CVS Sync - - chl@cvs.openbsd.org 2008/01/11 07:22:28 - [sftp-client.c sftp-client.h] - disable unused functions - initially from tobias@, but disabled them by placing them in - "#ifdef notyet" which was asked by djm@ - ok djm@ tobias@ - - djm@cvs.openbsd.org 2008/01/19 19:13:28 - [ssh.1] - satisfy the pedants: -q does not suppress all diagnostic messages (e.g. - some commandline parsing warnings go unconditionally to stdout). - - djm@cvs.openbsd.org 2008/01/19 20:48:53 - [clientloop.c] - fd leak on session multiplexing error path. Report and patch from - gregory_shively AT fanniemae.com - - djm@cvs.openbsd.org 2008/01/19 20:51:26 - [ssh.c] - ignore SIGPIPE in multiplex client mode - we can receive this if the - server runs out of fds on us midway. Report and patch from - gregory_shively AT fanniemae.com - - djm@cvs.openbsd.org 2008/01/19 22:04:57 - [sftp-client.c] - fix remote handle leak in do_download() local file open error path; - report and fix from sworley AT chkno.net - - djm@cvs.openbsd.org 2008/01/19 22:22:58 - [ssh-keygen.c] - when hashing individual hosts (ssh-keygen -Hf hostname), make sure we - hash just the specified hostname and not the entire hostspec from the - keyfile. It may be of the form "hostname,ipaddr", which would lead to - a hash that never matches. report and fix from jp AT devnull.cz - - djm@cvs.openbsd.org 2008/01/19 22:37:19 - [ssh-keygen.c] - unbreak line numbering (broken in revision 1.164), fix error message - - djm@cvs.openbsd.org 2008/01/19 23:02:40 - [channels.c] - When we added support for specified bind addresses for port forwards, we - added a quirk SSH_OLD_FORWARD_ADDR. There is a bug in our handling of - this for -L port forwards that causes the client to listen on both v4 - and v6 addresses when connected to a server with this quirk, despite - having set 0.0.0.0 as a bind_address. - report and patch from Jan.Pechanec AT Sun.COM; ok dtucker@ - - djm@cvs.openbsd.org 2008/01/19 23:09:49 - [readconf.c readconf.h sshconnect2.c] - promote rekeylimit to a int64 so it can hold the maximum useful limit - of 2^32; report and patch from Jan.Pechanec AT Sun.COM, ok dtucker@ - - djm@cvs.openbsd.org 2008/01/20 00:38:30 - [sftp.c] - When uploading, correctly handle the case of an unquoted filename with - glob metacharacters that match a file exactly but not as a glob, e.g. a - file called "[abcd]". report and test cases from duncan2nd AT gmx.de - - djm@cvs.openbsd.org 2008/01/21 17:24:30 - [sftp-server.c] - Remove the fixed 100 handle limit in sftp-server and allocate as many - as we have available file descriptors. Patch from miklos AT szeredi.hu; - ok dtucker@ markus@ - - djm@cvs.openbsd.org 2008/01/21 19:20:17 - [sftp-client.c] - when a remote write error occurs during an upload, ensure that ACKs for - all issued requests are properly drained. patch from t8m AT centrum.cz - - dtucker@cvs.openbsd.org 2008/01/23 01:56:54 - [clientloop.c packet.c serverloop.c] - Revert the change for bz #1307 as it causes connection aborts if an IGNORE - packet arrives while we're waiting in packet_read_expect (and possibly - elsewhere). - - jmc@cvs.openbsd.org 2008/01/31 20:06:50 - [scp.1] - explain how to handle local file names containing colons; - requested by Tamas TEVESZ - ok dtucker - - markus@cvs.openbsd.org 2008/02/04 21:53:00 - [session.c sftp-server.c sftp.h] - link sftp-server into sshd; feedback and ok djm@ - - mcbride@cvs.openbsd.org 2008/02/09 12:15:43 - [ssh.1 sshd.8] - Document the correct permissions for the ~/.ssh/ directory. - ok jmc - - djm@cvs.openbsd.org 2008/02/10 09:55:37 - [sshd_config.5] - mantion that "internal-sftp" is useful with ForceCommand too - - djm@cvs.openbsd.org 2008/02/10 10:54:29 - [servconf.c session.c] - delay ~ expansion for ChrootDirectory so it expands to the logged-in user's - home, rather than the user who starts sshd (probably root) - -20080119 - - (djm) Silence noice from expr in ssh-copy-id; patch from - mikel AT mikelward.com - - (djm) Only listen for IPv6 connections on AF_INET6 sockets; patch from - tsr2600 AT gmail.com - -20080102 - - (dtucker) [configure.ac] Fix message for -fstack-protector-all test. - -20080101 - - (dtucker) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2007/12/31 10:41:31 - [readconf.c servconf.c] - Prevent strict-aliasing warnings on newer gcc versions. bz #1355, patch - from Dmitry V. Levin, ok djm@ - - dtucker@cvs.openbsd.org 2007/12/31 15:27:04 - [sshd.c] - When in inetd mode, have sshd generate a Protocol 1 ephemeral server - key only for connections where the client chooses Protocol 1 as opposed - to when it's enabled in the server's config. Speeds up Protocol 2 - connections to inetd-mode servers that also allow Protocol 1. bz #440, - based on a patch from bruno at wolff.to, ok markus@ - - dtucker@cvs.openbsd.org 2008/01/01 08:47:04 - [misc.c] - spaces -> tabs from my previous commit - - dtucker@cvs.openbsd.org 2008/01/01 09:06:39 - [scp.c] - If scp -p encounters a pre-epoch timestamp, use the epoch which is - as close as we can get given that it's used unsigned. Add a little - debugging while there. bz #828, ok djm@ - - dtucker@cvs.openbsd.org 2008/01/01 09:27:33 - [sshd_config.5 servconf.c] - Allow PermitRootLogin in a Match block. Allows for, eg, permitting root - only from the local network. ok markus@, man page bit ok jmc@ - - dtucker@cvs.openbsd.org 2008/01/01 08:51:20 - [moduli] - Updated moduli file; ok djm@ - -20071231 - - (dtucker) [configure.ac openbsd-compat/glob.{c,h}] Bug #1407: force use of - builtin glob implementation on Mac OS X. Based on a patch from - vgiffin at apple. - -20071229 - - (dtucker) OpenBSD CVS Sync - - djm@cvs.openbsd.org 2007/12/12 05:04:03 - [sftp.c] - unbreak lls command and add a regress test that would have caught the - breakage; spotted by mouring@ - - dtucker@cvs.openbsd.org 2007/12/27 14:22:08 - [servconf.c canohost.c misc.c channels.c sshconnect.c misc.h ssh-keyscan.c - sshd.c] - Add a small helper function to consistently handle the EAI_SYSTEM error - code of getaddrinfo. Prompted by vgiffin at apple com via bz #1417. - ok markus@ stevesk@ - - dtucker@cvs.openbsd.org 2007/12/28 15:32:24 - [clientloop.c serverloop.c packet.c] - Make SSH2_MSG_UNIMPLEMENTED and SSH2_MSG_IGNORE messages reset the - ServerAlive and ClientAlive timers. Prevents dropping a connection - when these are enabled but the peer does not support our keepalives. - bz #1307, ok djm@. - - dtucker@cvs.openbsd.org 2007/12/28 22:34:47 - [clientloop.c] - Use the correct packet maximum sizes for remote port and agent forwarding. - Prevents the server from killing the connection if too much data is queued - and an excessively large packet gets sent. bz #1360, ok djm@. - -20071202 - - (dtucker) [configure.ac] Enable -fstack-protector-all on systems where - gcc supports it. ok djm@ - - (dtucker) [scp.c] Update $OpenBSD tag missing from rev 1.175 and remove - leftover debug code. - - (dtucker) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2007/10/29 00:52:45 - [auth2-gss.c] - Allow build without -DGSSAPI; ok deraadt@ - (Id sync only, Portable already has the ifdefs) - - dtucker@cvs.openbsd.org 2007/10/29 01:55:04 - [ssh.c] - Plug tiny mem leaks in ControlPath and ProxyCommand option processing; - ok djm@ - - dtucker@cvs.openbsd.org 2007/10/29 04:08:08 - [monitor_wrap.c monitor.c] - Send config block back to slave for invalid users too so options - set by a Match block (eg Banner) behave the same for non-existent - users. Found by and ok djm@ - - dtucker@cvs.openbsd.org 2007/10/29 06:51:59 - [ssh_config.5] - ProxyCommand and LocalCommand use the user's shell, not /bin/sh; ok djm@ - - dtucker@cvs.openbsd.org 2007/10/29 06:54:50 - [ssh.c] - Make LocalCommand work for Protocol 1 too; ok djm@ - - jmc@cvs.openbsd.org 2007/10/29 07:48:19 - [ssh_config.5] - clean up after previous macro removal; - - djm@cvs.openbsd.org 2007/11/03 00:36:14 - [clientloop.c] - fix memory leak in process_cmdline(), patch from Jan.Pechanec AT Sun.COM; - ok dtucker@ - - deraadt@cvs.openbsd.org 2007/11/03 01:24:06 - [ssh.c] - bz #1377: getpwuid results were being clobbered by another getpw* call - inside tilde_expand_filename(); save the data we need carefully - ok djm - - dtucker@cvs.openbsd.org 2007/11/03 02:00:32 - [ssh.c] - Use xstrdup/xfree when saving pwname and pwdir; ok deraadt@ - - deraadt@cvs.openbsd.org 2007/11/03 02:03:49 - [ssh.c] - avoid errno trashing in signal handler; ok dtucker - -20071030 - - (djm) OpenBSD CVS Sync - - djm@cvs.openbsd.org 2007/10/29 23:49:41 - [openbsd-compat/sys-tree.h] - remove extra backslash at the end of RB_PROTOTYPE, report from - Jan.Pechanec AT Sun.COM; ok deraadt@ - -20071026 - - (djm) OpenBSD CVS Sync - - stevesk@cvs.openbsd.org 2007/09/11 23:49:09 - [sshpty.c] - remove #if defined block not needed; ok markus@ dtucker@ - (NB. RCD ID sync only for portable) - - djm@cvs.openbsd.org 2007/09/21 03:05:23 - [ssh_config.5] - document KbdInteractiveAuthentication in ssh_config.5; - patch from dkg AT fifthhorseman.net - - djm@cvs.openbsd.org 2007/09/21 08:15:29 - [auth-bsdauth.c auth-passwd.c auth.c auth.h auth1.c auth2-chall.c] - [monitor.c monitor_wrap.c] - unifdef -DBSD_AUTH - unifdef -USKEY - These options have been in use for some years; - ok markus@ "no objection" millert@ - (NB. RCD ID sync only for portable) - - canacar@cvs.openbsd.org 2007/09/25 23:48:57 - [ssh-agent.c] - When adding a key that already exists, update the properties - (time, confirm, comment) instead of discarding them. ok djm@ markus@ - - ray@cvs.openbsd.org 2007/09/27 00:15:57 - [dh.c] - Don't return -1 on error in dh_pub_is_valid(), since it evaluates - to true. - Also fix a typo. - Initial diff from Matthew Dempsky, input from djm. - OK djm, markus. - - dtucker@cvs.openbsd.org 2007/09/29 00:25:51 - [auth2.c] - Remove unused prototype. ok djm@ - - chl@cvs.openbsd.org 2007/10/02 17:49:58 - [ssh-keygen.c] - handles zero-sized strings that fgets can return - properly removes trailing newline - removes an unused variable - correctly counts line number - "looks ok" ray@ markus@ - - markus@cvs.openbsd.org 2007/10/22 19:10:24 - [readconf.c] - make sure that both the local and remote port are correct when - parsing -L; Jan Pechanec (bz #1378) - - djm@cvs.openbsd.org 2007/10/24 03:30:02 - [sftp.c] - rework argument splitting and parsing to cope correctly with common - shell escapes and make handling of escaped characters consistent - with sh(1) and between sftp commands (especially between ones that - glob their arguments and ones that don't). - parse command flags using getopt(3) rather than hand-rolled parsers. - ok dtucker@ - - djm@cvs.openbsd.org 2007/10/24 03:44:02 - [scp.c] - factor out network read/write into an atomicio()-like function, and - use it to handle short reads, apply bandwidth limits and update - counters. make network IO non-blocking, so a small trickle of - reads/writes has a chance of updating the progress meter; bz #799 - ok dtucker@ - - djm@cvs.openbsd.org 2006/08/29 09:44:00 - [regress/sftp-cmds.sh] - clean up our mess - - markus@cvs.openbsd.org 2006/11/06 09:27:43 - [regress/cfgmatch.sh] - fix quoting for non-(c)sh login shells. - - dtucker@cvs.openbsd.org 2006/12/13 08:36:36 - [regress/cfgmatch.sh] - Additional test for multiple PermitOpen entries. ok djm@ - - pvalchev@cvs.openbsd.org 2007/06/07 19:41:46 - [regress/cipher-speed.sh regress/try-ciphers.sh] - test umac-64@openssh.com - ok djm@ - - djm@cvs.openbsd.org 2007/10/24 03:32:35 - [regress/sftp-cmds.sh regress/sftp-glob.sh regress/test-exec.sh] - comprehensive tests for sftp escaping its interaction with globbing; - ok dtucker@ - - djm@cvs.openbsd.org 2007/10/26 05:30:01 - [regress/sftp-glob.sh regress/test-exec.sh] - remove "echo -E" crap that I added in last commit and use printf(1) for - cases where we strictly require echo not to reprocess escape characters. - - deraadt@cvs.openbsd.org 2005/11/28 17:50:12 - [openbsd-compat/glob.c] - unused arg in internal static API - - jakob@cvs.openbsd.org 2007/10/11 18:36:41 - [openbsd-compat/getrrsetbyname.c openbsd-compat/getrrsetbyname.h] - use RRSIG instead of SIG for DNSSEC. ok djm@ - - otto@cvs.openbsd.org 2006/10/21 09:55:03 - [openbsd-compat/base64.c] - remove calls to abort(3) that can't happen anyway; from - ; ok millert@ deraadt@ - - frantzen@cvs.openbsd.org 2004/04/24 18:11:46 - [openbsd-compat/sys-tree.h] - sync to Niels Provos' version. avoid unused variable warning in - RB_NEXT() - - tdeval@cvs.openbsd.org 2004/11/24 18:10:42 - [openbsd-compat/sys-tree.h] - typo - - grange@cvs.openbsd.org 2004/05/04 16:59:32 - [openbsd-compat/sys-queue.h] - Remove useless ``elm'' argument from the SIMPLEQ_REMOVE_HEAD macro. - This matches our SLIST behaviour and NetBSD's SIMPLEQ as well. - ok millert krw deraadt - - deraadt@cvs.openbsd.org 2005/02/25 13:29:30 - [openbsd-compat/sys-queue.h] - minor white spacing - - otto@cvs.openbsd.org 2005/10/17 20:19:42 - [openbsd-compat/sys-queue.h] - Performing certain operations on queue.h data structurs produced - funny results. An example is calling LIST_REMOVE on the same - element twice. This will not fail, but result in a data structure - referencing who knows what. Prevent these accidents by NULLing some - fields on remove and replace. This way, either a panic or segfault - will be produced on the faulty operation. - - otto@cvs.openbsd.org 2005/10/24 20:25:14 - [openbsd-compat/sys-queue.h] - Partly backout. NOLIST, used in LISTs is probably interfering. - requested by deraadt@ - - otto@cvs.openbsd.org 2005/10/25 06:37:47 - [openbsd-compat/sys-queue.h] - Some uvm problem is being exposed with the more strict macros. - Revert until we've found out what's causing the panics. - - otto@cvs.openbsd.org 2005/11/25 08:06:25 - [openbsd-compat/sys-queue.h] - Introduce debugging aid for queue macros. Disabled by default; but - developers are encouraged to run with this enabled. - ok krw@ fgsch@ deraadt@ - - otto@cvs.openbsd.org 2007/04/30 18:42:34 - [openbsd-compat/sys-queue.h] - Enable QUEUE_MACRO_DEBUG on DIAGNOSTIC kernels. - Input and okays from krw@, millert@, otto@, deraadt@, miod@. - - millert@cvs.openbsd.org 2004/10/07 16:56:11 - GLOB_NOESCAPE is POSIX so move it out of the #ifndef _POSIX_SOURCE - block. - (NB. mostly an RCS ID sync, as portable strips out the conditionals) - - (djm) [regress/sftp-cmds.sh] - Use more restrictive glob to pick up test files from /bin - some platforms - ship broken symlinks there which could spoil the test. - - (djm) [openbsd-compat/bindresvport.c] - Sync RCS ID after irrelevant (for portable OpenSSH) header shuffling - -20070927 - - (dtucker) [configure.ac atomicio.c] Fall back to including if - we don't have (eq QNX). From bacon at cs nyu edu. - - (dtucker) [configure.ac defines.h] Shadow expiry does not work on QNX6 - so disable it for that platform. From bacon at cs nyu edu. - -20070921 - - (djm) [atomicio.c] Fix spin avoidance for platforms that define - EWOULDBLOCK; patch from ben AT psc.edu - -20070917 - - (djm) OpenBSD CVS Sync - - djm@cvs.openbsd.org 2007/08/23 02:49:43 - [auth-passwd.c auth.c session.c] - unifdef HAVE_LOGIN_CAP; ok deraadt@ millert@ - NB. RCS ID sync only for portable - - djm@cvs.openbsd.org 2007/08/23 02:55:51 - [auth-passwd.c auth.c session.c] - missed include bits from last commit - NB. RCS ID sync only for portable - - djm@cvs.openbsd.org 2007/08/23 03:06:10 - [auth.h] - login_cap.h doesn't belong here - NB. RCS ID sync only for portable - - djm@cvs.openbsd.org 2007/08/23 03:22:16 - [auth2-none.c sshd_config sshd_config.5] - Support "Banner=none" to disable displaying of the pre-login banner; - ok dtucker@ deraadt@ - - djm@cvs.openbsd.org 2007/08/23 03:23:26 - [sshconnect.c] - Execute ProxyCommands with $SHELL rather than /bin/sh unconditionally - - djm@cvs.openbsd.org 2007/09/04 03:21:03 - [clientloop.c monitor.c monitor_fdpass.c monitor_fdpass.h] - [monitor_wrap.c ssh.c] - make file descriptor passing code return an error rather than call fatal() - when it encounters problems, and use this to make session multiplexing - masters survive slaves failing to pass all stdio FDs; ok markus@ - - djm@cvs.openbsd.org 2007/09/04 11:15:56 - [ssh.c sshconnect.c sshconnect.h] - make ssh(1)'s ConnectTimeout option apply to both the TCP connection and - SSH banner exchange (previously it just covered the TCP connection). - This allows callers of ssh(1) to better detect and deal with stuck servers - that accept a TCP connection but don't progress the protocol, and also - makes ConnectTimeout useful for connections via a ProxyCommand; - feedback and "looks ok" markus@ - - sobrado@cvs.openbsd.org 2007/09/09 11:38:01 - [ssh-add.c ssh-agent.1 ssh-agent.c ssh-keygen.c] - sort synopsis and options in ssh-agent(1); usage is lowercase - ok jmc@ - - stevesk@cvs.openbsd.org 2007/09/11 04:36:29 - [sshpty.c] - sort #include - NB. RCS ID sync only - - gilles@cvs.openbsd.org 2007/09/11 15:47:17 - [session.c ssh-keygen.c sshlogin.c] - use strcspn to properly overwrite '\n' in fgets returned buffer - ok pyr@, ray@, millert@, moritz@, chl@ - - stevesk@cvs.openbsd.org 2007/09/11 23:49:09 - [sshpty.c] - remove #if defined block not needed; ok markus@ dtucker@ - NB. RCS ID sync only - - stevesk@cvs.openbsd.org 2007/09/12 19:39:19 - [umac.c] - use xmalloc() and xfree(); ok markus@ pvalchev@ - - djm@cvs.openbsd.org 2007/09/13 04:39:04 - [sftp-server.c] - fix incorrect test when setting syslog facility; from Jan Pechanec - - djm@cvs.openbsd.org 2007/09/16 00:55:52 - [sftp-client.c] - use off_t instead of u_int64_t for file offsets, matching what the - progressmeter code expects; bz #842 - - (tim) [defines.h] Fix regression in long password support on OpenServer 6. - Problem report and additional testing rac AT tenzing.org. - -20070914 - - (dtucker) [openbsd-compat/bsd-asprintf.c] Plug mem leak in error path. - Patch from Jan.Pechanec at sun com. - -20070910 - - (dtucker) [openbsd-compat/regress/closefromtest.c] Bug #1358: Always - return 0 on successful test. From David.Leonard at quest com. - - (tim) [configure.ac] Autoconf didn't define HAVE_LIBIAF because we - did a AC_CHECK_FUNCS within the AC_CHECK_LIB test. - -20070817 - - (dtucker) [sshd.8] Many Linux variants use a single "!" to denote locked - accounts and that's what the code looks for, so make man page and code - agree. Pointed out by Roumen Petrov. - - (dtucker) [INSTALL] Group the parts describing random options and PAM - implementations together which is hopefully more coherent. - - (dtucker) [INSTALL] the pid file is sshd.pid not ssh.pid. - - (dtucker) [INSTALL] Give PAM its own heading. - - (dtucker) [INSTALL] Link to tcpwrappers. - -20070816 - - (dtucker) [session.c] Call PAM cleanup functions for unauthenticated - connections too. Based on a patch from Sandro Wefel, with & ok djm@ - -20070815 - - (dtucker) OpenBSD CVS Sync - - markus@cvs.openbsd.org 2007/08/15 08:14:46 - [clientloop.c] - do NOT fall back to the trused x11 cookie if generation of an untrusted - cookie fails; from Jan Pechanec, via security-alert at sun.com; - ok dtucker - - markus@cvs.openbsd.org 2007/08/15 08:16:49 - [version.h] - openssh 4.7 - - stevesk@cvs.openbsd.org 2007/08/15 12:13:41 - [ssh_config.5] - tun device forwarding now honours ExitOnForwardFailure; ok markus@ - - (dtucker) [openbsd-compat/bsd-cray.c] Remove debug from signal handler. - ok djm@ - - (dtucker) [README contrib/caldera/openssh.spec contrib/redhat/openssh.spec - contrib/suse/openssh.spec] Crank version. - -20070813 - - (dtucker) [session.c] Bug #1339: ensure that pam_setcred() is always - called with PAM_ESTABLISH_CRED at least once, which resolves a problem - with pam_dhkeys. Patch from David Leonard, ok djm@ - -20070810 - - (dtucker) [auth-pam.c] Use sigdie here too. ok djm@ - - (dtucker) [configure.ac] Bug #1343: Set DISABLE_FD_PASSING for QNX6. From - Matt Kraai, ok djm@ - -20070809 - - (dtucker) [openbsd-compat/port-aix.c] Comment typo. - - (dtucker) [README.platform] Document the interaction between PermitRootLogin - and the AIX native login restrictions. - - (dtucker) [defines.h] Remove _PATH_{CSHELL,SHELLS} which aren't - used anywhere and are a potential source of warnings. - -20070808 - - (djm) OpenBSD CVS Sync - - ray@cvs.openbsd.org 2007/07/12 05:48:05 - [key.c] - Delint: remove some unreachable statements, from Bret Lambert. - OK markus@ and dtucker@. - - sobrado@cvs.openbsd.org 2007/08/06 19:16:06 - [scp.1 scp.c] - the ellipsis is not an optional argument; while here, sync the usage - and synopsis of commands - lots of good ideas by jmc@ - ok jmc@ - - djm@cvs.openbsd.org 2007/08/07 07:32:53 - [clientloop.c clientloop.h ssh.c] - bz#1232: ensure that any specified LocalCommand is executed after the - tunnel device is opened. Also, make failures to open a tunnel device - fatal when ExitOnForwardFailure is active. - Reported by h.goebel AT goebel-consult.de; ok dtucker markus reyk deraadt - -20070724 - - (tim) [openssh.xml.in] make FMRI match what package scripts use. - - (tim) [openbsd-compat/regress/closefromtest.c] Bug 1345: fix open() call. - Report/patch by David.Leonard AT quest.com (and Bernhard Simon) - - (tim) [buildpkg.sh.in openssh.xml.in] Allow more flexibility where smf(5) - - (tim) [buildpkg.sh.in] s|$FAKE_ROOT/${sysconfdir}|$FAKE_ROOT${sysconfdir}| - -20070628 - - (djm) bz#1325: Fix SELinux in permissive mode where it would - incorrectly fatal() on errors. patch from cjwatson AT debian.org; - ok dtucker - -20070625 - - (dtucker) OpenBSD CVS Sync - - djm@cvs.openbsd.org 2007/06/13 00:21:27 - [scp.c] - don't ftruncate() non-regular files; bz#1236 reported by wood AT - xmission.com; ok dtucker@ - - djm@cvs.openbsd.org 2007/06/14 21:43:25 - [ssh.c] - handle EINTR when waiting for mux exit status properly - - djm@cvs.openbsd.org 2007/06/14 22:48:05 - [ssh.c] - when waiting for the multiplex exit status, read until the master end - writes an entire int of data *and* closes the client_fd; fixes mux - regression spotted by dtucker, ok dtucker@ - - djm@cvs.openbsd.org 2007/06/19 02:04:43 - [atomicio.c] - if the fd passed to atomicio/atomiciov() is non blocking, then poll() to - avoid a spin if it is not yet ready for reading/writing; ok dtucker@ - - dtucker@cvs.openbsd.org 2007/06/25 08:20:03 - [channels.c] - Correct test for window updates every three packets; prevents sending - window updates for every single packet. ok markus@ - - dtucker@cvs.openbsd.org 2007/06/25 12:02:27 - [atomicio.c] - Include like the man page says rather than . ok djm@ - - (dtucker) [atomicio.c] Test for EWOULDBLOCK in atomiciov to match - atomicio. - - (dtucker) [atomicio.c configure.ac openbsd-compat/Makefile.in - openbsd-compat/bsd-poll.{c,h} openbsd-compat/openbsd-compat.h] - Add an implementation of poll() built on top of select(2). Code from - OpenNTPD with changes suggested by djm. ok djm@ - -20070614 - - (dtucker) [cipher-ctr.c umac.c openbsd-compat/openssl-compat.h] Move the - USE_BUILTIN_RIJNDAEL compat goop to openssl-compat.h so it can be - shared with umac.c. Allows building with OpenSSL 0.9.5 again including - umac support. With tim@ djm@, ok djm. - - (dtucker) [openbsd-compat/openssl-compat.h] Merge USE_BUILTIN_RIJNDAEL - sections. Fixes builds with early OpenSSL 0.9.6 versions. - - (dtucker) [openbsd-compat/openssl-compat.h] Remove redundant definition - of USE_BUILTIN_RIJNDAEL since the <0.9.6 test is covered by the - subsequent <0.9.7 test. - -20070612 - - (dtucker) OpenBSD CVS Sync - - markus@cvs.openbsd.org 2007/06/11 09:14:00 - [channels.h] - increase default channel windows; ok djm - - djm@cvs.openbsd.org 2007/06/12 07:41:00 - [ssh-add.1] - better document ssh-add's -d option (delete identies from agent), bz#1224 - new text based on some provided by andrewmc-debian AT celt.dias.ie; - ok dtucker@ - - djm@cvs.openbsd.org 2007/06/12 08:20:00 - [ssh-gss.h gss-serv.c gss-genr.c] - relocate server-only GSSAPI code from libssh to server; bz #1225 - patch from simon AT sxw.org.uk; ok markus@ dtucker@ - - djm@cvs.openbsd.org 2007/06/12 08:24:20 - [scp.c] - make scp try to skip FIFOs rather than blocking when nothing is listening. - depends on the platform supporting sane O_NONBLOCK semantics for open - on FIFOs (apparently POSIX does not mandate this), which OpenBSD does. - bz #856; report by cjwatson AT debian.org; ok markus@ - - djm@cvs.openbsd.org 2007/06/12 11:11:08 - [ssh.c] - fix slave exit value when a control master goes away without passing the - full exit status by ensuring that the slave reads a full int. bz#1261 - reported by frekko AT gmail.com; ok markus@ dtucker@ - - djm@cvs.openbsd.org 2007/06/12 11:15:17 - [ssh.c ssh.1] - Add "-K" flag for ssh to set GSSAPIAuthentication=yes and - GSSAPIDelegateCredentials=yes. This is symmetric with -k (disable GSSAPI) - and is useful for hosts with /home on Kerberised NFS; bz #1312 - patch from Markus.Kuhn AT cl.cam.ac.uk; ok dtucker@ markus@ - - djm@cvs.openbsd.org 2007/06/12 11:45:27 - [ssh.c] - improved exit message from multiplex slave sessions; bz #1262 - reported by alexandre.nunes AT gmail.com; ok dtucker@ - - dtucker@cvs.openbsd.org 2007/06/12 11:56:15 - [gss-genr.c] - Pass GSS OID to gss_display_status to provide better information in - error messages. Patch from Simon Wilkinson via bz 1220. ok djm@ - - jmc@cvs.openbsd.org 2007/06/12 13:41:03 - [ssh-add.1] - identies -> identities; - - jmc@cvs.openbsd.org 2007/06/12 13:43:55 - [ssh.1] - add -K to SYNOPSIS; - - dtucker@cvs.openbsd.org 2007/06/12 13:54:28 - [scp.c] - Encode filename with strnvis if the name contains a newline (which can't - be represented in the scp protocol), from bz #891. ok markus@ - -20070611 - - (djm) Bugzilla #1306: silence spurious error messages from hang-on-exit - fix; tested by dtucker@ and jochen.kirn AT gmail.com - - pvalchev@cvs.openbsd.org 2007/06/07 19:37:34 - [kex.h mac.c mac.h monitor_wrap.c myproposal.h packet.c ssh.1] - [ssh_config.5 sshd.8 sshd_config.5] - Add a new MAC algorithm for data integrity, UMAC-64 (not default yet, - must specify umac-64@openssh.com). Provides about 20% end-to-end speedup - compared to hmac-md5. Represents a different approach to message - authentication to that of HMAC that may be beneficial if HMAC based on - one of its underlying hash algorithms is found to be vulnerable to a - new attack. http://www.ietf.org/rfc/rfc4418.txt - in conjunction with and OK djm@ - - pvalchev@cvs.openbsd.org 2007/06/08 04:40:40 - [ssh_config] - Add a "MACs" line after "Ciphers" with the default MAC algorithms, - to ease people who want to tweak both (eg. for performance reasons). - ok deraadt@ djm@ dtucker@ - - jmc@cvs.openbsd.org 2007/06/08 07:43:46 - [ssh_config.5] - put the MAC list into a display, like we do for ciphers, - since groff has trouble handling wide lines; - - jmc@cvs.openbsd.org 2007/06/08 07:48:09 - [sshd_config.5] - oops, here too: put the MAC list into a display, like we do for - ciphers, since groff has trouble with wide lines; - - markus@cvs.openbsd.org 2007/06/11 08:04:44 - [channels.c] - send 'window adjust' messages every tree packets and do not wait - until 50% of the window is consumed. ok djm dtucker - - (djm) [configure.ac umac.c] If platform doesn't provide swap32(3), then - fallback to provided bit-swizzing functions - - (dtucker) [openbsd-compat/bsd-misc.c] According to the spec the "remainder" - argument to nanosleep may be NULL. Currently this never happens in OpenSSH, - but check anyway in case this changes or the code gets used elsewhere. - - (dtucker) [includes.h] Bug #1243: HAVE_PATHS -> HAVE_PATHS_H. Should - prevent warnings about redefinitions of various things in paths.h. - Spotted by cartmanltd at hotmail.com. - -20070605 - - (dtucker) OpenBSD CVS Sync - - djm@cvs.openbsd.org 2007/05/22 10:18:52 - [sshd.c] - zap double include; from p_nowaczyk AT o2.pl - (not required in -portable, Id sync only) - - djm@cvs.openbsd.org 2007/05/30 05:58:13 - [kex.c] - tidy: KNF, ARGSUSED and u_int - - jmc@cvs.openbsd.org 2007/05/31 19:20:16 - [scp.1 ssh_config.5 sftp-server.8 ssh-agent.1 sshd_config.5 sftp.1 - ssh-keygen.1 ssh-keyscan.1 ssh-add.1 sshd.8 ssh.1 ssh-keysign.8] - convert to new .Dd format; - (We will need to teach mdoc2man.awk to understand this too.) - - djm@cvs.openbsd.org 2007/05/31 23:34:29 - [packet.c] - gc unreachable code; spotted by Tavis Ormandy - - djm@cvs.openbsd.org 2007/06/02 09:04:58 - [bufbn.c] - memory leak on error path; from arnaud.lacombe.1 AT ulaval.ca - - djm@cvs.openbsd.org 2007/06/05 06:52:37 - [kex.c monitor_wrap.c packet.c mac.h kex.h mac.c] - Preserve MAC ctx between packets, saving 2xhash calls per-packet. - Yields around a 12-16% end-to-end speedup for arcfour256/hmac-md5 - patch from markus@ tested dtucker@ and myself, ok markus@ and me (I'm - committing at his request) - - (dtucker) [mdoc2man.awk] Teach it to deal with $Mdocdate tags that - OpenBSD's cvs now adds. - - (dtucker) [mdoc2man.awk] Remove trailing "$" from Mdocdate regex so - mindrot's cvs doesn't expand it on us. - - (dtucker) [mdoc2man.awk] Add support for %R references, used for RFCs. - -20070520 - - (dtucker) OpenBSD CVS Sync - - stevesk@cvs.openbsd.org 2007/04/14 22:01:58 - [auth2.c] - remove unused macro; from Dmitry V. Levin - - stevesk@cvs.openbsd.org 2007/04/18 01:12:43 - [sftp-server.c] - cast "%llu" format spec to (unsigned long long); do not assume a - u_int64_t arg is the same as 'unsigned long long'. - from Dmitry V. Levin - ok markus@ 'Yes, that looks correct' millert@ - - dtucker@cvs.openbsd.org 2007/04/23 10:15:39 - [servconf.c] - Remove debug() left over from development. ok deraadt@ - - djm@cvs.openbsd.org 2007/05/17 07:50:31 - [log.c] - save and restore errno when logging; ok deraadt@ - - djm@cvs.openbsd.org 2007/05/17 07:55:29 - [sftp-server.c] - bz#1286 stop reading and processing commands when input or output buffer - is nearly full, otherwise sftp-server would happily try to grow the - input/output buffers past the maximum supported by the buffer API and - promptly fatal() - based on patch from Thue Janus Kristensen; feedback & ok dtucker@ - - djm@cvs.openbsd.org 2007/05/17 20:48:13 - [sshconnect2.c] - fall back to gethostname() when the outgoing connection is not - on a socket, such as is the case when ProxyCommand is used. - Gives hostbased auth an opportunity to work; bz#616, report - and feedback stuart AT kaloram.com; ok markus@ - - djm@cvs.openbsd.org 2007/05/17 20:52:13 - [monitor.c] - pass received SIGINT from monitor to postauth child so it can clean - up properly. bz#1196, patch from senthilkumar_sen AT hotpop.com; - ok markus@ - - jolan@cvs.openbsd.org 2007/05/17 23:53:41 - [sshconnect2.c] - djm owes me a vb and a tism cd for breaking ssh compilation - - (dtucker) [auth-pam.c] malloc+memset -> calloc. Patch from - ldv at altlinux.org. - - (dtucker) [auth-pam.c] Return empty string if fgets fails in - sshpam_tty_conv. Patch from ldv at altlinux.org. - -20070509 - - (tim) [configure.ac] Bug #1287: Add missing test for ucred.h. - -20070429 - - (dtucker) [openbsd-compat/bsd-misc.c] Include unistd.h and sys/types.h - for select(2) prototype. - - (dtucker) [auth-shadow.c loginrec.c] Include time.h for time(2) prototype. - - (dtucker) [configure.ac openbsd-compat/getrrsetbyname.c] Bug #1299: Use the - platform's _res if it has one. Should fix problem of DNSSEC record lookups - on NetBSD as reported by Curt Sampson. - - (dtucker) [openbsd-compat/xmmap.c] Include stdlib.h for mkstemp prototype. - - (dtucker) [configure.ac defines.h] Have configure check for MAXSYMLINKS - so we don't get redefinition warnings. - - (dtucker) [openbsd-compat/xmmap.c] Include stdlib.h for mkstemp prototype. - - (dtucker) [configure.ac defines.h] Prevent warnings about __attribute__ - __nonnull__ for versions of GCC that don't support it. - - (dtucker) [configure.ac defines.h] Have configure check for offsetof - to prevent redefinition warnings. - -20070406 - - (dtucker) [INSTALL] Update the systems that have PAM as standard. Link - to OpenPAM too. - - (dtucker) [INSTALL] prngd lives at sourceforge these days. - -20070326 - - (tim) [auth.c configure.ac defines.h session.c openbsd-compat/port-uw.c - openbsd-compat/port-uw.h openbsd-compat/xcrypt.c] Rework libiaf test/defines - to account for IRIX having libiaf but not set_id(). Patch with & ok dtucker@ - -20070325 - - (dtucker) [Makefile.in configure.ac] Replace single-purpose LIBSELINUX, - LIBWRAP and LIBPAM variables in Makefile with the general-purpose - SSHDLIBS. "I like" djm@ - -20070321 - - (dtucker) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2007/03/09 05:20:06 - [servconf.c sshd.c] - Move C/R -> kbdint special case to after the defaults have been - loaded, which makes ChallengeResponse default to yes again. This - was broken by the Match changes and not fixed properly subsequently. - Found by okan at demirmen.com, ok djm@ "please do it" deraadt@ - - djm@cvs.openbsd.org 2007/03/19 01:01:29 - [sshd_config] - Disable the legacy SSH protocol 1 for new installations via - a configuration override. In the future, we will change the - server's default itself so users who need the legacy protocol - will need to turn it on explicitly - - dtucker@cvs.openbsd.org 2007/03/19 12:16:42 - [ssh-agent.c] - Remove the signal handler that checks if the agent's parent process - has gone away, instead check when the select loop returns. Record when - the next key will expire when scanning for expired keys. Set the select - timeout to whichever of these two things happens next. With djm@, with & - ok deraadt@ markus@ - - tedu@cvs.openbsd.org 2007/03/20 03:56:12 - [readconf.c clientloop.c] - remove some bogus *p tests from charles longeau - ok deraadt millert - - jmc@cvs.openbsd.org 2007/03/20 15:57:15 - [sshd.8] - - let synopsis and description agree for -f - - sort FILES - - +.Xr ssh-keyscan 1 , - from Igor Sobrado - - (dtucker) [configure.ac openbsd-compat/bsd-getpeereid.c] Bug #1287: Use - getpeerucred to implement getpeereid (currently only Solaris 10 and up). - Patch by Jan.Pechanec at Sun. - - (dtucker) [regress/agent-getpeereid.sh] Do peereid test if we have - HAVE_GETPEERUCRED too. Also from Jan Pechanec. - -20070313 - - (dtucker) [entropy.c scard-opensc.c ssh-rand-helper.c] Bug #1294: include - string.h to prevent warnings, from vapier at gentoo.org. - - (dtucker) [LICENCE] Add Daniel Walsh as a copyright holder for the - selinux bits in -portable. - - (dtucker) [cipher-3des1.c cipher-bf1.c] The OpenSSL 0.9.8e problem in - bug #1291 also affects Protocol 1 3des. While at it, use compat-openssl.h - in cipher-bf1.c. Patch from Juan Gallego. - - (dtucker) [README.platform] Info about blibpath on AIX. - -20070306 - - (djm) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2007/03/01 16:19:33 - [sshd_config.5] - sort the `match' keywords; - - djm@cvs.openbsd.org 2007/03/06 10:13:14 - [version.h] - openssh-4.6; "please" deraadt@ - - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec] - [contrib/suse/openssh.spec] crank spec files for release - - (djm) [README] correct link to release notes - - (djm) Release 4.6p1 - -20070304 - - (djm) [configure.ac] add a --without-openssl-header-check option to - configure, as some platforms (OS X) ship OpenSSL headers whose version - does not match that of the shipping library. ok dtucker@ - - (dtucker) [openbsd-compat/openssl-compat.h] Bug #1291: Work around a - bug in OpenSSL 0.9.8e that prevents aes256-ctr, aes192-ctr and arcfour256 - ciphers from working correctly (disconnects with "Bad packet length" - errors) as found by Ben Harris. ok djm@ - -20070303 - - (dtucker) [regress/agent-ptrace.sh] Make ttrace gdb error a little more - general to cover newer gdb versions on HP-UX. - -20070302 - - (dtucker) [configure.ac] For Cygwin, read files in textmode (which allows - CRLF as well as LF lineendings) and write in binary mode. Patch from - vinschen at redhat.com. - - (dtucker) [INSTALL] Update to autoconf-2.61. - -20070301 - - (dtucker) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2007/03/01 10:28:02 - [auth2.c sshd_config.5 servconf.c] - Remove ChallengeResponseAuthentication support inside a Match - block as its interaction with KbdInteractive makes it difficult to - support. Also, relocate the CR/kbdint option special-case code into - servconf. "please commit" djm@, ok markus@ for the relocation. - - (tim) [buildpkg.sh.in openssh.xml.in] Clean up Solaris 10 smf(5) bits. - "Looks sane" dtucker@ - -20070228 - - (dtucker) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2007/02/28 00:55:30 - [ssh-agent.c] - Remove expired keys periodically so they don't remain in memory when - the agent is entirely idle, as noted by David R. Piegdon. This is the - simple fix, a more efficient one will be done later. With markus, - deraadt, with & ok djm. - -20070225 - - (dtucker) OpenBSD CVS Sync - - djm@cvs.openbsd.org 2007/02/20 10:25:14 - [clientloop.c] - set maximum packet and window sizes the same for multiplexed clients - as normal connections; ok markus@ - - dtucker@cvs.openbsd.org 2007/02/21 11:00:05 - [sshd.c] - Clear alarm() before restarting sshd on SIGHUP. Without this, if there's - a SIGALRM pending (for SSH1 key regeneration) when sshd is SIGHUP'ed, the - newly exec'ed sshd will get the SIGALRM and not have a handler for it, - and the default action will terminate the listening sshd. Analysis and - patch from andrew at gaul.org. - - dtucker@cvs.openbsd.org 2007/02/22 12:58:40 - [servconf.c] - Check activep so Match and GatewayPorts work together; ok markus@ - - ray@cvs.openbsd.org 2007/02/24 03:30:11 - [moduli.c] - - strlen returns size_t, not int. - - Pass full buffer size to fgets. - OK djm@, millert@, and moritz@. - -20070219 - - (dtucker) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2007/01/10 13:23:22 - [ssh_config.5] - do not use a list for SYNOPSIS; - this is actually part of a larger report sent by eric s. raymond - and forwarded by brad, but i only read half of it. spotted by brad. - - jmc@cvs.openbsd.org 2007/01/12 20:20:41 - [ssh-keygen.1 ssh-keygen.c] - more secsh -> rfc 4716 updates; - spotted by wiz@netbsd - ok markus - - dtucker@cvs.openbsd.org 2007/01/17 23:22:52 - [readconf.c] - Honour activep for times (eg ServerAliveInterval) while parsing - ssh_config and ~/.ssh/config so they work properly with Host directives. - From mario.lorenz@wincor-nixdorf.com via bz #1275. ok markus@ - - stevesk@cvs.openbsd.org 2007/01/21 01:41:54 - [auth-skey.c kex.c ssh-keygen.c session.c clientloop.c] - spaces - - stevesk@cvs.openbsd.org 2007/01/21 01:45:35 - [readconf.c] - spaces - - djm@cvs.openbsd.org 2007/01/22 11:32:50 - [sftp-client.c] - return error from do_upload() when a write fails. fixes bz#1252: zero - exit status from sftp when uploading to a full device. report from - jirkat AT atlas.cz; ok dtucker@ - - djm@cvs.openbsd.org 2007/01/22 13:06:21 - [scp.c] - fix detection of whether we should show progress meter or not: scp - tested isatty(stderr) but wrote the progress meter to stdout. This patch - makes it test stdout. bz#1265 reported by junkmail AT bitsculpture.com; - of dtucker@ - - stevesk@cvs.openbsd.org 2007/02/14 14:32:00 - [bufbn.c] - typos in comments; ok jmc@ - - dtucker@cvs.openbsd.org 2007/02/19 10:45:58 - [monitor_wrap.c servconf.c servconf.h monitor.c sshd_config.5] - Teach Match how handle config directives that are used before - authentication. This allows configurations such as permitting password - authentication from the local net only while requiring pubkey from - offsite. ok djm@, man page bits ok jmc@ - - (dtucker) [contrib/findssl.sh] Add "which" as a shell function since some - platforms don't have it. Patch from dleonard at vintela.com. - - (dtucker) [openbsd-compat/getrrsetbyname.c] Don't attempt to calloc - an array for signatures when there are none since "calloc(0, n) returns - NULL on some platforms (eg Tru64), which is explicitly permitted by - POSIX. Diagnosis and patch by svallet genoscope.cns.fr. - -20070128 - - (djm) [channels.c serverloop.c] Fix so-called "hang on exit" (bz #52) - when closing a tty session when a background process still holds tty - fds open. Great detective work and patch by Marc Aurele La France, - slightly tweaked by me; ok dtucker@ - -20070123 - - (dtucker) [openbsd-compat/bsd-snprintf.c] Static declarations for public - library interfaces aren't very helpful. Fix up the DOPR_OUTCH macro - so it works properly and modify its callers so that they don't pre or - post decrement arguments that are conditionally evaluated. While there, - put SNPRINTF_CONST back as it prevents build failures in some - configurations. ok djm@ (for most of it) - -20070122 - - (djm) [ssh-rand-helper.8] manpage nits; - from dleonard AT vintela.com (bz#1529) - -20070117 - - (dtucker) [packet.c] Re-remove in_systm.h since it's already in includes.h - and multiple including it causes problems on old IRIXes. (It snuck back - in during a sync.) Found (again) by Georg Schwarz. - -20070114 - - (dtucker) [ssh-keygen.c] av -> argv to match earlier sync. - - (djm) [openbsd-compat/bsd-snprintf.c] Fix integer overflow in return - value of snprintf replacement, similar to bugs in various libc - implementations. This overflow is not exploitable in OpenSSH. - While I'm fiddling with it, make it a fair bit faster by inlining the - append-char routine; ok dtucker@ - -20070105 - - (djm) OpenBSD CVS Sync - - deraadt@cvs.openbsd.org 2006/11/14 19:41:04 - [ssh-keygen.c] - use argc and argv not some made up short form - - ray@cvs.openbsd.org 2006/11/23 01:35:11 - [misc.c sftp.c] - Don't access buf[strlen(buf) - 1] for zero-length strings. - ``ok by me'' djm@. - - markus@cvs.openbsd.org 2006/12/11 21:25:46 - [ssh-keygen.1 ssh.1] - add rfc 4716 (public key format); ok jmc - - djm@cvs.openbsd.org 2006/12/12 03:58:42 - [channels.c compat.c compat.h] - bz #1019: some ssh.com versions apparently can't cope with the - remote port forwarding bind_address being a hostname, so send - them an address for cases where they are not explicitly - specified (wildcard or localhost bind). reported by daveroth AT - acm.org; ok dtucker@ deraadt@ - - dtucker@cvs.openbsd.org 2006/12/13 08:34:39 - [servconf.c] - Make PermitOpen work with multiple values like the man pages says. - bz #1267 with details from peter at dmtz.com, with & ok djm@ - - dtucker@cvs.openbsd.org 2006/12/14 10:01:14 - [servconf.c] - Make "PermitOpen all" first-match within a block to match the way other - options work. ok markus@ djm@ - - jmc@cvs.openbsd.org 2007/01/02 09:57:25 - [sshd_config.5] - do not use lists for SYNOPSIS; - from eric s. raymond via brad - - stevesk@cvs.openbsd.org 2007/01/03 00:53:38 - [ssh-keygen.c] - remove small dead code; arnaud.lacombe.1@ulaval.ca via Coverity scan - - stevesk@cvs.openbsd.org 2007/01/03 03:01:40 - [auth2-chall.c channels.c dns.c sftp.c ssh-keygen.c ssh.c] - spaces - - stevesk@cvs.openbsd.org 2007/01/03 04:09:15 - [sftp.c] - ARGSUSED for lint - - stevesk@cvs.openbsd.org 2007/01/03 07:22:36 - [sftp-server.c] - spaces - -20061205 - - (djm) [auth.c] Fix NULL pointer dereference in fakepw(). Crash would - occur if the server did not have the privsep user and an invalid user - tried to login and both privsep and krb5 auth are disabled; ok dtucker@ - - (djm) [bsd-asprintf.c] Better test for bad vsnprintf lengths; ok dtucker@ - -20061108 - - (dtucker) OpenBSD CVS Sync - - markus@cvs.openbsd.org 2006/11/07 13:02:07 - [dh.c] - BN_hex2bn returns int; from dtucker@ - -20061107 - - (dtucker) [sshd.c] Use privsep_pw if we have it, but only require it - if we absolutely need it. Pointed out by Corinna, ok djm@ - - (dtucker) OpenBSD CVS Sync - - markus@cvs.openbsd.org 2006/11/06 21:25:28 - [auth-rsa.c kexgexc.c kexdhs.c key.c ssh-dss.c sshd.c kexgexs.c - ssh-keygen.c bufbn.c moduli.c scard.c kexdhc.c sshconnect1.c dh.c rsa.c] - add missing checks for openssl return codes; with & ok djm@ - - markus@cvs.openbsd.org 2006/11/07 10:31:31 - [monitor.c version.h] - correctly check for bad signatures in the monitor, otherwise the monitor - and the unpriv process can get out of sync. with dtucker@, ok djm@, - dtucker@ - - (dtucker) [README contrib/{caldera,redhat,contrib}/openssh.spec] Bump - versions. - - (dtucker) Release 4.5p1. - -20061105 - - (djm) OpenBSD CVS Sync - - otto@cvs.openbsd.org 2006/10/28 18:08:10 - [ssh.1] - correct/expand example of usage of -w; ok jmc@ stevesk@ - - markus@cvs.openbsd.org 2006/10/31 16:33:12 - [kexdhc.c kexdhs.c kexgexc.c kexgexs.c] - check DH_compute_key() for -1 even if it should not happen because of - earlier calls to dh_pub_is_valid(); report krahmer at suse.de; ok djm - -20061101 - - (dtucker) [openbsd-compat/port-solaris.c] Bug #1255: Make only hwerr - events fatal in Solaris process contract support and tell it to signal - only processes in the same process group when something happens. - Based on information from andrew.benham at thus.net and similar to - a patch from Chad Mynhier. ok djm@ - -20061027 -- (djm) [auth.c] gc some dead code - -20061023 - - (djm) OpenBSD CVS Sync - - ray@cvs.openbsd.org 2006/09/30 17:48:22 - [sftp.c] - Clear errno before calling the strtol functions. - From Paul Stoeber . - OK deraadt@. - - djm@cvs.openbsd.org 2006/10/06 02:29:19 - [ssh-agent.c ssh-keyscan.c ssh.c] - sys/resource.h needs sys/time.h; prompted by brad@ - (NB. Id sync only for portable) - - djm@cvs.openbsd.org 2006/10/09 23:36:11 - [session.c] - xmalloc -> xcalloc that was missed previously, from portable - (NB. Id sync only for portable, obviously) - - markus@cvs.openbsd.org 2006/10/10 10:12:45 - [sshconnect.c] - sleep before retrying (not after) since sleep changes errno; fixes - pr 5250; rad@twig.com; ok dtucker djm - - markus@cvs.openbsd.org 2006/10/11 12:38:03 - [clientloop.c serverloop.c] - exit instead of doing a blocking tcp send if we detect a client/server - timeout, since the tcp sendqueue might be already full (of alive - requests); ok dtucker, report mpf - - djm@cvs.openbsd.org 2006/10/22 02:25:50 - [sftp-client.c] - cancel progress meter when upload write fails; ok deraadt@ - - (tim) [Makefile.in scard/Makefile.in] Add datarootdir= lines to keep - autoconf 2.60 from complaining. - -20061018 - - (dtucker) OpenBSD CVS Sync - - ray@cvs.openbsd.org 2006/09/25 04:55:38 - [ssh-keyscan.1 ssh.1] - Change "a SSH" to "an SSH". Hurray, I'm not the only one who - pronounces "SSH" as "ess-ess-aich". - OK jmc@ and stevesk@. - - (dtucker) [sshd.c] Reshuffle storing of pw struct; prevents warnings - on older versions of OS X. ok djm@ - -20061016 - - (dtucker) [monitor_fdpass.c] Include sys/in.h, required for cmsg macros - on older (2.0) Linuxes. Based on patch from thmo-13 at gmx de. - -20061006 - - (tim) [buildpkg.sh.in] Use uname -r instead of -v in OS_VER for Solaris. - Differentiate between OpenServer 5 and OpenServer 6 - - (dtucker) [configure.ac] Set put -lselinux into $LIBS while testing for - SELinux functions so they're detected correctly. Patch from pebenito at - gentoo.org. - - (tim) [buildpkg.sh.in] Some systems have really limited nawk (OpenServer). - Allow setting alternate awk in openssh-config.local. - -20061003 - - (tim) [configure.ac] Move CHECK_HEADERS test before platform specific - section so additional platform specific CHECK_HEADER tests will work - correctly. Fixes " on FreeBSD" problem report by des AT des.no - Feedback and "seems like a good idea" dtucker@ - -20061001 - - (dtucker) [audit-bsm.c] Include errno.h. Pointed out by des at des.no. - -20060929 - - (dtucker) [configure.ac] Bug #1239: Fix configure test for OpenSSH engine - support. Patch from andrew.benham at thus net. - -20060928 - - (dtucker) [entropy.c] Bug #1238: include signal.h to fix compilation error - on Solaris 8 w/out /dev/random or prngd. Patch from rl at - math.technion.ac.il. - -20060926 - - (dtucker) [bufaux.h] nuke bufaux.h; it's already gone from OpenBSD and not - referenced any more. ok djm@ - - (dtucker) [sftp-server.8] Resync; spotted by djm@ - - (dtucker) Release 4.4p1. - -20060924 - - (tim) [configure.ac] Remove CFLAGS hack for UnixWare 1.x/2.x (added - to rev 1.308) to work around broken gcc 2.x header file. - -20060923 - - (dtucker) [configure.ac] Bug #1234: Put opensc libs into $LIBS rather than - $LDFLAGS. Patch from vapier at gentoo org. - -20060922 - - (dtucker) [packet.c canohost.c] Include arpa/inet.h for htonl macros on - some platforms (eg HP-UX 11.00). From santhi.amirta at gmail com. - -20060921 - - (dtucker) OpenBSD CVS Sync - - otto@cvs.openbsd.org 2006/09/19 05:52:23 - [sftp.c] - Use S_IS* macros insted of masking with S_IF* flags. The latter may - have multiple bits set, which lead to surprising results. Spotted by - Paul Stoeber, more to come. ok millert@ pedro@ jaredy@ djm@ - - markus@cvs.openbsd.org 2006/09/19 21:14:08 - [packet.c] - client NULL deref on protocol error; Tavis Ormandy, Google Security Team - - (dtucker) [defines.h] Include unistd.h before defining getpgrp; fixes - build error on Ultrix. From Bernhard Simon. - -20060918 - - (dtucker) [configure.ac] On AIX, check to see if the compiler will allow - macro redefinitions, and if not, remove "-qlanglvl=ansi" from the flags. - Allows build out of the box with older VAC and XLC compilers. Found by - David Bronder and Bernhard Simon. - - (dtucker) [openbsd-compat/port-aix.{c,h}] Reduce scope of includes. - Prevents macro redefinition warnings of "RDONLY". - -20060916 - - OpenBSD CVS Sync - - djm@cvs.openbsd.org 2006/09/16 19:53:37 - [deattack.c deattack.h packet.c] - limit maximum work performed by the CRC compensation attack detector, - problem reported by Tavis Ormandy, Google Security Team; - ok markus@ deraadt@ - - (djm) Add openssh.xml to .cvsignore and sort it - - (dtucker) [auth-pam.c] Propogate TZ environment variable to PAM auth - process so that any logging it does is with the right timezone. From - Scott Strickler, ok djm@. - - (dtucker) [monitor.c] Correctly handle auditing of single commands when - using Protocol 1. From jhb at freebsd. - - (djm) [sshd.c] Fix warning/API abuse; ok dtucker@ - - (dtucker) [INSTALL] Add info about audit support. - -20060912 - - (djm) [Makefile.in buildpkg.sh.in configure.ac openssh.xml.in] - Support SMF in Solaris Packages if enabled by configure. Patch from - Chad Mynhier, tested by dtucker@ - -20060911 - - (dtucker) [cipher-aes.c] Include string.h for memcpy and friends. Noted - by Pekka Savola. - -20060910 - - (dtucker) [contrib/aix/buildbff.sh] Ensure that perl is available. - - (dtucker) [configure.ac] Add -lcrypt to let DragonFly build OOTB. - -20060909 - - (dtucker) [openbsd-compat/bsd-snprintf.c] Add stdarg.h. - - (dtucker) [contrib/aix/buildbff.sh] Always create privsep user. - - (dtucker) [buildpkg.sh.in] Always create privsep user. ok djm@ - -20060908 - - (dtucker) [auth-sia.c] Add includes required for build on Tru64. Patch - from Chris Adams. - - (dtucker) [configure.ac] The BSM header test needs time.h in some cases. - -20060907 - - (djm) [sshd.c auth.c] Set up fakepw() with privsep uid/gid, so it can - be used to drop privilege to; fixes Solaris GSSAPI crash reported by - Magnus Abrante; suggestion and feedback dtucker@ - NB. this change will require that the privilege separation user must - exist on all the time, not just when UsePrivilegeSeparation=yes - - (tim) [configure.ac] s/BROKEN_UPDWTMP/BROKEN_UPDWTMPX/ on SCO OSR6 - - (dtucker) [loginrec.c] Wrap paths.h in HAVE_PATHS_H. - - (dtucker) [regress/cfgmatch.sh] stop_client is racy, so give us a better - chance of winning. - -20060905 - - (dtucker) [configure.ac] s/AC_DEFINES/AC_DEFINE/ spotted by Roumen Petrov. - - (dtucker) [loginrec.c] Include paths.h for _PATH_BTMP. - -20060904 - - (dtucker) [configure.ac] Define BROKEN_UPDWTMP on SCO OSR6 as the native - updwdtmp seems to generate invalid wtmp entries. From Roger Cornelius, - ok djm@ - -20060903 - - (dtucker) [configure.ac openbsd-compat/openbsd-compat.h] Check for - declaration of writev(2) and declare it ourselves if necessary. Makes - the atomiciov() calls build on really old systems. ok djm@ - -20060902 - - (dtucker) [openbsd-compat/port-irix.c] Add errno.h, found by Iain Morgan. - - (dtucker) [ssh-keyscan.c ssh-rand-helper.c ssh.c sshconnect.c - openbsd-compat/bindresvport.c openbsd-compat/getrrsetbyname.c - openbsd-compat/port-tun.c openbsd-compat/rresvport.c] Include - for hton* and ntoh* macros. Required on (at least) HP-UX since we define - _XOPEN_SOURCE_EXTENDED. Found by santhi.amirta at gmail com. - -20060901 - - (djm) [audit-bsm.c audit.c auth-bsdauth.c auth-chall.c auth-pam.c] - [auth-rsa.c auth-shadow.c auth-sia.c auth1.c auth2-chall.c] - [auth2-gss.c auth2-kbdint.c auth2-none.c authfd.c authfile.c] - [cipher-3des1.c cipher-aes.c cipher-bf1.c cipher-ctr.c clientloop.c] - [dh.c dns.c entropy.c gss-serv-krb5.c gss-serv.c hostfile.c kex.c] - [kexdhc.c kexdhs.c kexgexc.c kexgexs.c key.c loginrec.c mac.c] - [md5crypt.c monitor.c monitor_wrap.c readconf.c rsa.c] - [scard-opensc.c scard.c session.c ssh-add.c ssh-agent.c ssh-dss.c] - [ssh-keygen.c ssh-keysign.c ssh-rsa.c ssh.c sshconnect.c] - [sshconnect1.c sshconnect2.c sshd.c] - [openbsd-compat/bsd-cray.c openbsd-compat/port-aix.c] - [openbsd-compat/port-linux.c openbsd-compat/port-solaris.c] - [openbsd-compat/port-uw.c] - Lots of headers for SCO OSR6, mainly adding stdarg.h for log.h; - compile problems reported by rac AT tenzing.org - - (djm) [includes.h monitor.c openbsd-compat/bindresvport.c] - [openbsd-compat/rresvport.c] Some more headers: netinet/in.h - sys/socket.h and unistd.h in various places - - (dtucker) [openbsd-compat/bsd-cygwin_util.c] Fix implict declaration - warnings for binary_open and binary_close. Patch from Corinna Vinschen. - - (dtucker) [configure.ac includes.h openbsd-compat/glob.{c,h}] Explicitly - test for GLOB_NOMATCH and use our glob functions if it's not found. - Stops sftp from segfaulting when attempting to get a nonexistent file on - Cygwin (previous versions of OpenSSH didn't use the native glob). Partly - from and tested by Corinna Vinschen. - - (dtucker) [README contrib/{caldera,redhat,suse}/openssh.spec] Crank - versions. - -20060831 - - (djm) [CREDITS LICENCE Makefile.in auth.c configure.ac includes.h ] - [platform.c platform.h sshd.c openbsd-compat/Makefile.in] - [openbsd-compat/openbsd-compat.h openbsd-compat/port-solaris.c] - [openbsd-compat/port-solaris.h] Add support for Solaris process - contracts, enabled with --use-solaris-contracts. Patch from Chad - Mynhier, tweaked by dtucker@ and myself; ok dtucker@ - - (dtucker) [contrib/cygwin/ssh-host-config] Add SeTcbPrivilege privilege - while setting up the ssh service account. Patch from Corinna Vinschen. - -20060830 - - (djm) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2006/08/21 08:14:01 - [sshd_config.5] - Document HostbasedUsesNameFromPacketOnly. Corrections from jmc@, - ok jmc@ djm@ - - dtucker@cvs.openbsd.org 2006/08/21 08:15:57 - [sshd.8] - Add more detail about what permissions are and aren't accepted for - authorized_keys files. Corrections jmc@, ok djm@, "looks good" jmc@ - - djm@cvs.openbsd.org 2006/08/29 10:40:19 - [channels.c session.c] - normalise some inconsistent (but harmless) NULL pointer checks - spotted by the Stanford SATURN tool, via Isil Dillig; - ok markus@ deraadt@ - - dtucker@cvs.openbsd.org 2006/08/29 12:02:30 - [gss-genr.c] - Work around a problem in Heimdal that occurs when KRB5CCNAME file is - missing, by checking whether or not kerberos allocated us a context - before attempting to free it. Patch from Simon Wilkinson, tested by - biorn@, ok djm@ - - dtucker@cvs.openbsd.org 2006/08/30 00:06:51 - [sshconnect2.c] - Fix regression where SSH2 banner is printed at loglevels ERROR and FATAL - where previously it weren't. bz #1221, found by Dean Kopesky, ok djm@ - - djm@cvs.openbsd.org 2006/08/30 00:14:37 - [version.h] - crank to 4.4 - - (djm) [openbsd-compat/xcrypt.c] needs unistd.h - - (dtucker) [auth.c openbsd-compat/port-aix.c] Bug #1207: always call - loginsuccess on AIX immediately after authentication to clear the failed - login count. Previously this would only happen when an interactive - session starts (ie when a pty is allocated) but this means that accounts - that have primarily non-interactive sessions (eg scp's) may gradually - accumulate enough failures to lock out an account. This change may have - a side effect of creating two audit records, one with a tty of "ssh" - corresponding to the authentication and one with the allocated pty per - interactive session. - -20060824 - - (dtucker) [openbsd-compat/basename.c] Include errno.h. - - (dtucker) [openbsd-compat/bsd-misc.c] Add includes needed for select(2) on - older systems. - - (dtucker) [openbsd-compat/bsd-misc.c] Include for select(2) - on POSIX systems. - - (dtucker) [openbsd-compat/bsd-openpty.c] Include for ioctl(2). - - (dtucker) [openbsd-compat/rresvport.c] Include for malloc. - - (dtucker) [openbsd-compat/xmmap.c] Move #define HAVE_MMAP to prevent - unused variable warning when we have a broken or missing mmap(2). - -20060822 - - (dtucker) [Makefile.in] Bug #1177: fix incorrect path for sshrc in - Makefile. Patch from santhi.amirta at gmail, ok djm. - -20060820 - - (dtucker) [log.c] Move ifdef to prevent unused variable warning. - - (dtucker) [configure.ac] Save $LIBS during PAM library tests and restore - afterward. Removes the need to mangle $LIBS later to remove -lpam and -ldl. - - (dtucker) [configure.ac] Relocate --with-pam parts in preparation for - fixing bug #1181. No changes yet. - - (dtucker) [configure.ac] Bug #1181: Explicitly test to see if OpenSSL - (0.9.8a and presumably newer) requires -ldl to successfully link. - - (dtucker) [configure.ac] Remove errant "-". - -20060819 - - (djm) OpenBSD CVS Sync - - djm@cvs.openbsd.org 2006/08/18 22:41:29 - [gss-genr.c] - GSSAPI error code should be 0 and not -1; from simon@sxw.org.uk - - (dtucker) [openbsd-compat/regress/Makefile.in] Add $(EXEEXT) and add a - single rule for the test progs. - -20060818 - - (dtucker) [configure.ac openbsd-compat/bsd-closefrom.c] Resync with - closefrom.c from sudo. - - (dtucker) [openbsd-compat/bsd-closefrom.c] Comment out rcsid. - - (dtucker) [openbsd-compat/regress/snprintftest.c] Newline on error. - - (dtucker) [openbsd-compat/regress/Makefile.in] Use implicit rules for the - test progs instead; they work better than what we have. - - (djm) OpenBSD CVS Sync - - stevesk@cvs.openbsd.org 2006/08/06 01:13:32 - [compress.c monitor.c monitor_wrap.c] - "zlib.h" can be ; ok djm@ markus@ - - miod@cvs.openbsd.org 2006/08/12 20:46:46 - [monitor.c monitor_wrap.c] - Revert previous include file ordering change, for ssh to compile under - gcc2 (or until openssl include files are cleaned of parameter names - in function prototypes) - - dtucker@cvs.openbsd.org 2006/08/14 12:40:25 - [servconf.c servconf.h sshd_config.5] - Add ability to match groups to Match keyword in sshd_config. Feedback - djm@, stevesk@, ok stevesk@. - - djm@cvs.openbsd.org 2006/08/16 11:47:15 - [sshd.c] - factor inetd connection, TCP listen and main TCP accept loop out of - main() into separate functions to improve readability; ok markus@ - - deraadt@cvs.openbsd.org 2006/08/18 09:13:26 - [log.c log.h sshd.c] - make signal handler termination path shorter; risky code pointed out by - mark dowd; ok djm markus - - markus@cvs.openbsd.org 2006/08/18 09:15:20 - [auth.h session.c sshd.c] - delay authentication related cleanups until we're authenticated and - all alarms have been cancelled; ok deraadt - - djm@cvs.openbsd.org 2006/08/18 10:27:16 - [misc.h] - reorder so prototypes are sorted by the files they refer to; no - binary change - - djm@cvs.openbsd.org 2006/08/18 13:54:54 - [gss-genr.c ssh-gss.h sshconnect2.c] - bz #1218 - disable SPNEGO as per RFC4462; diff from simon AT sxw.org.uk - ok markus@ - - djm@cvs.openbsd.org 2006/08/18 14:40:34 - [gss-genr.c ssh-gss.h] - constify host argument to match the rest of the GSSAPI functions and - unbreak compilation with -Werror - - (djm) Disable sigdie() for platforms that cannot safely syslog inside - a signal handler (basically all of them, excepting OpenBSD); - ok dtucker@ - -20060817 - - (dtucker) [openbsd-compat/fake-rfc2553.c openbsd-compat/setproctitle.c] - Include stdlib.h for malloc and friends. - - (dtucker) [configure.ac openbsd-compat/bsd-closefrom.c] Use F_CLOSEM fcntl - for closefrom() on AIX. Pointed out by William Ahern. - - (dtucker) [openbsd-compat/regress/{Makefile.in,closefromtest.c}] Regress - test for closefrom() in compat code. - -20060816 - - (djm) [audit-bsm.c] Sprinkle in some headers - -20060815 - - (dtucker) [LICENCE] Add Reyk to the list for the compat dir. - -20060806 - - (djm) [openbsd-compat/bsd-getpeereid.c] Add some headers to quiet warnings - on Solaris 10 - -20060806 - - (dtucker) [defines.h] With the includes.h changes we no longer get the - name clash on "YES" so we can remove the workaround for it. - - (dtucker) [openbsd-compat/{bsd-asprintf.c,bsd-openpty.c,bsd-snprintf.c, - glob.c}] Include stdlib.h for malloc and friends in compat code. - -20060805 - - (djm) OpenBSD CVS Sync - - stevesk@cvs.openbsd.org 2006/07/24 13:58:22 - [sshconnect.c] - disable tunnel forwarding when no strict host key checking - and key changed; ok djm@ markus@ dtucker@ - - stevesk@cvs.openbsd.org 2006/07/25 02:01:34 - [scard.c] - need #include - - stevesk@cvs.openbsd.org 2006/07/25 02:59:21 - [channels.c clientloop.c packet.c scp.c serverloop.c sftp-client.c] - [sftp-server.c ssh-agent.c ssh-keyscan.c sshconnect.c sshd.c] - move #include out of includes.h - - stevesk@cvs.openbsd.org 2006/07/26 02:35:17 - [atomicio.c auth.c dh.c authfile.c buffer.c clientloop.c kex.c] - [groupaccess.c gss-genr.c kexgexs.c misc.c monitor.c monitor_mm.c] - [packet.c scp.c serverloop.c session.c sftp-client.c sftp-common.c] - [sftp-server.c sftp.c ssh-add.c ssh-agent.c ssh-keygen.c sshlogin.c] - [uidswap.c xmalloc.c] - move #include out of includes.h - - stevesk@cvs.openbsd.org 2006/07/26 13:57:17 - [authfd.c authfile.c dh.c canohost.c channels.c clientloop.c compat.c] - [hostfile.c kex.c log.c misc.c moduli.c monitor.c packet.c readpass.c] - [scp.c servconf.c session.c sftp-server.c sftp.c ssh-add.c ssh-agent.c] - [ssh-keygen.c ssh-keyscan.c ssh-keysign.c ssh.c sshconnect.c] - [sshconnect1.c sshd.c xmalloc.c] - move #include out of includes.h - - jmc@cvs.openbsd.org 2006/07/27 08:00:50 - [ssh_config.5] - avoid confusing wording in HashKnownHosts: - originally spotted by alan amesbury; - ok deraadt - - jmc@cvs.openbsd.org 2006/07/27 08:00:50 - [ssh_config.5] - avoid confusing wording in HashKnownHosts: - originally spotted by alan amesbury; - ok deraadt - - dtucker@cvs.openbsd.org 2006/08/01 11:34:36 - [sshconnect.c] - Allow fallback to known_hosts entries without port qualifiers for - non-standard ports too, so that all existing known_hosts entries will be - recognised. Requested by, feedback and ok markus@ - - stevesk@cvs.openbsd.org 2006/08/01 23:22:48 - [auth-passwd.c auth-rhosts.c auth-rsa.c auth.c auth.h auth1.c] - [auth2-chall.c auth2-pubkey.c authfile.c buffer.c canohost.c] - [channels.c clientloop.c dh.c dns.c dns.h hostfile.c kex.c kexdhc.c] - [kexgexc.c kexgexs.c key.c key.h log.c misc.c misc.h moduli.c] - [monitor_wrap.c packet.c progressmeter.c readconf.c readpass.c scp.c] - [servconf.c session.c sftp-client.c sftp-common.c sftp-server.c sftp.c] - [ssh-add.c ssh-agent.c ssh-keygen.c ssh-keyscan.c ssh.c sshconnect.c] - [sshconnect1.c sshconnect2.c sshd.c sshlogin.c sshtty.c uuencode.c] - [uuencode.h xmalloc.c] - move #include out of includes.h - - stevesk@cvs.openbsd.org 2006/08/01 23:36:12 - [authfile.c channels.c progressmeter.c scard.c servconf.c ssh.c] - clean extra spaces - - deraadt@cvs.openbsd.org 2006/08/03 03:34:42 - [OVERVIEW atomicio.c atomicio.h auth-bsdauth.c auth-chall.c auth-krb5.c] - [auth-options.c auth-options.h auth-passwd.c auth-rh-rsa.c auth-rhosts.c] - [auth-rsa.c auth-skey.c auth.c auth.h auth1.c auth2-chall.c auth2-gss.c] - [auth2-hostbased.c auth2-kbdint.c auth2-none.c auth2-passwd.c ] - [auth2-pubkey.c auth2.c authfd.c authfd.h authfile.c bufaux.c bufbn.c] - [buffer.c buffer.h canohost.c channels.c channels.h cipher-3des1.c] - [cipher-bf1.c cipher-ctr.c cipher.c cleanup.c clientloop.c compat.c] - [compress.c deattack.c dh.c dispatch.c dns.c dns.h fatal.c groupaccess.c] - [groupaccess.h gss-genr.c gss-serv-krb5.c gss-serv.c hostfile.c kex.c] - [kex.h kexdh.c kexdhc.c kexdhs.c kexgex.c kexgexc.c kexgexs.c key.c] - [key.h log.c log.h mac.c match.c md-sha256.c misc.c misc.h moduli.c] - [monitor.c monitor_fdpass.c monitor_mm.c monitor_mm.h monitor_wrap.c] - [monitor_wrap.h msg.c nchan.c packet.c progressmeter.c readconf.c] - [readconf.h readpass.c rsa.c scard.c scard.h scp.c servconf.c servconf.h] - [serverloop.c session.c session.h sftp-client.c sftp-common.c] - [sftp-common.h sftp-glob.c sftp-server.c sftp.c ssh-add.c ssh-agent.c] - [ssh-dss.c ssh-gss.h ssh-keygen.c ssh-keyscan.c ssh-keysign.c ssh-rsa.c] - [ssh.c ssh.h sshconnect.c sshconnect.h sshconnect1.c sshconnect2.c] - [sshd.c sshlogin.c sshlogin.h sshpty.c sshpty.h sshtty.c ttymodes.c] - [uidswap.c uidswap.h uuencode.c uuencode.h xmalloc.c xmalloc.h] - [loginrec.c loginrec.h openbsd-compat/port-aix.c openbsd-compat/port-tun.h] - almost entirely get rid of the culture of ".h files that include .h files" - ok djm, sort of ok stevesk - makes the pain stop in one easy step - NB. portable commit contains everything *except* removing includes.h, as - that will take a fair bit more work as we move headers that are required - for portability workarounds to defines.h. (also, this step wasn't "easy") - - stevesk@cvs.openbsd.org 2006/08/04 20:46:05 - [monitor.c session.c ssh-agent.c] - spaces - - (djm) [auth-pam.c defines.h] Move PAM related bits to auth-pam.c - - (djm) [auth-pam.c auth.c bufaux.h entropy.c openbsd-compat/port-tun.c] - remove last traces of bufaux.h - it was merged into buffer.h in the big - includes.h commit - - (djm) [auth.c loginrec.c] Missing netinet/in.h for loginrec - - (djm) [openbsd-compat/regress/snprintftest.c] - [openbsd-compat/regress/strduptest.c] Add missing includes so they pass - compilation with "-Wall -Werror" - - (djm) [auth-pam.c auth-shadow.c auth2-none.c cleanup.c sshd.c] - [openbsd-compat/port-tun.c openbsd-compat/port-tun.h] Sprinkle more - includes for Linux in - - (dtucker) [cleanup.c] Need defines.h for __dead. - - (dtucker) [auth2-gss.c] We still need the #ifdef GSSAPI in -portable. - - (dtucker) [openbsd-compat/{bsd-arc4random.c,port-tun.c,xmmap.c}] Lots of - #include stdarg.h, needed for log.h. - - (dtucker) [entropy.c] Needs unistd.h too. - - (dtucker) [ssh-rand-helper.c] Needs stdarg.h for log.h. - - (dtucker) [openbsd-compat/getrrsetbyname.c] Nees stdlib.h for malloc. - - (dtucker) [openbsd-compat/strtonum.c] Include stdlib.h for strtoll, - otherwise it is implicitly declared as returning an int. - - (dtucker) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2006/08/05 07:52:52 - [auth2-none.c sshd.c monitor_wrap.c] - Add headers required to build with KERBEROS5=no. ok djm@ - - dtucker@cvs.openbsd.org 2006/08/05 08:00:33 - [auth-skey.c] - Add headers required to build with -DSKEY. ok djm@ - - dtucker@cvs.openbsd.org 2006/08/05 08:28:24 - [monitor_wrap.c auth-skey.c auth2-chall.c] - Zap unused variables in -DSKEY code. ok djm@ - - dtucker@cvs.openbsd.org 2006/08/05 08:34:04 - [packet.c] - Typo in comment - - (dtucker) [openbsd-compat/bsd-cygwin_util.c] Add headers required to compile - on Cygwin. - - (dtucker) [openbsd-compat/fake-rfc2553.c] Add headers needed for inet_ntoa. - - (dtucker) [auth-skey.c] monitor_wrap.h needs ssh-gss.h. - - (dtucker) [audit.c audit.h] Repair headers. - - (dtucker) [audit-bsm.c] Add additional headers now required. - -20060804 - - (dtucker) [configure.ac] The "crippled AES" test does not work on recent - versions of Solaris, so use AC_LINK_IFELSE to actually link the test program - rather than just compiling it. Spotted by dlg@. - -20060802 - - (dtucker) [openbsd-compat/daemon.c] Add unistd.h for fork() prototype. - -20060725 - - (dtucker) [openbsd-compat/xmmap.c] Need fcntl.h for O_RDRW. - -20060724 - - (djm) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2006/07/12 13:39:55 - [sshd_config.5] - - new sentence, new line - - s/The the/The/ - - kill a bad comma - - stevesk@cvs.openbsd.org 2006/07/12 22:28:52 - [auth-options.c canohost.c channels.c includes.h readconf.c] - [servconf.c ssh-keyscan.c ssh.c sshconnect.c sshd.c] - move #include out of includes.h; ok djm@ - - stevesk@cvs.openbsd.org 2006/07/12 22:42:32 - [includes.h ssh.c ssh-rand-helper.c] - move #include out of includes.h - - stevesk@cvs.openbsd.org 2006/07/14 01:15:28 - [monitor_wrap.h] - don't need incompletely-typed 'struct passwd' now with - #include ; ok markus@ - - stevesk@cvs.openbsd.org 2006/07/17 01:31:10 - [authfd.c authfile.c channels.c cleanup.c clientloop.c groupaccess.c] - [includes.h log.c misc.c msg.c packet.c progressmeter.c readconf.c] - [readpass.c scp.c servconf.c sftp-client.c sftp-server.c sftp.c] - [ssh-add.c ssh-agent.c ssh-keygen.c ssh-keyscan.c ssh-keysign.c ssh.c] - [sshconnect.c sshlogin.c sshpty.c uidswap.c] - move #include out of includes.h - - dtucker@cvs.openbsd.org 2006/07/17 12:02:24 - [auth-options.c] - Use '\0' rather than 0 to terminates strings; ok djm@ - - dtucker@cvs.openbsd.org 2006/07/17 12:06:00 - [channels.c channels.h servconf.c sshd_config.5] - Add PermitOpen directive to sshd_config which is equivalent to the - "permitopen" key option. Allows server admin to allow TCP port - forwarding only two specific host/port pairs. Useful when combined - with Match. - If permitopen is used in both sshd_config and a key option, both - must allow a given connection before it will be permitted. - Note that users can still use external forwarders such as netcat, - so to be those must be controlled too for the limits to be effective. - Feedback & ok djm@, man page corrections & ok jmc@. - - jmc@cvs.openbsd.org 2006/07/18 07:50:40 - [sshd_config.5] - tweak; ok dtucker - - jmc@cvs.openbsd.org 2006/07/18 07:56:28 - [scp.1] - replace DIAGNOSTICS with .Ex; - - jmc@cvs.openbsd.org 2006/07/18 08:03:09 - [ssh-agent.1 sshd_config.5] - mark up angle brackets; - - dtucker@cvs.openbsd.org 2006/07/18 08:22:23 - [sshd_config.5] - Clarify description of Match, with minor correction from jmc@ - - stevesk@cvs.openbsd.org 2006/07/18 22:27:55 - [dh.c] - remove unneeded includes; ok djm@ - - dtucker@cvs.openbsd.org 2006/07/19 08:56:41 - [servconf.c sshd_config.5] - Add support for X11Forwaring, X11DisplayOffset and X11UseLocalhost to - Match. ok djm@ - - dtucker@cvs.openbsd.org 2006/07/19 13:07:10 - [servconf.c servconf.h session.c sshd.8 sshd_config sshd_config.5] - Add ForceCommand keyword to sshd_config, equivalent to the "command=" - key option, man page entry and example in sshd_config. - Feedback & ok djm@, man page corrections & ok jmc@ - - stevesk@cvs.openbsd.org 2006/07/20 15:26:15 - [auth1.c serverloop.c session.c sshconnect2.c] - missed some needed #include when KERBEROS5=no; issue from - massimo@cedoc.mo.it - - dtucker@cvs.openbsd.org 2006/07/21 12:43:36 - [channels.c channels.h servconf.c servconf.h sshd_config.5] - Make PermitOpen take a list of permitted ports and act more like most - other keywords (ie the first match is the effective setting). This - also makes it easier to override a previously set PermitOpen. ok djm@ - - stevesk@cvs.openbsd.org 2006/07/21 21:13:30 - [channels.c] - more ARGSUSED (lint) for dispatch table-driven functions; ok djm@ - - stevesk@cvs.openbsd.org 2006/07/21 21:26:55 - [progressmeter.c] - ARGSUSED for signal handler - - stevesk@cvs.openbsd.org 2006/07/22 19:08:54 - [includes.h moduli.c progressmeter.c scp.c sftp-common.c] - [sftp-server.c ssh-agent.c sshlogin.c] - move #include out of includes.h - - stevesk@cvs.openbsd.org 2006/07/22 20:48:23 - [atomicio.c auth-options.c auth-passwd.c auth-rhosts.c auth-rsa.c] - [auth.c auth1.c auth2-chall.c auth2-hostbased.c auth2-passwd.c auth2.c] - [authfd.c authfile.c bufaux.c bufbn.c buffer.c canohost.c channels.c] - [cipher-3des1.c cipher-bf1.c cipher-ctr.c cipher.c clientloop.c] - [compat.c deattack.c dh.c dns.c gss-genr.c gss-serv.c hostfile.c] - [includes.h kex.c kexdhc.c kexdhs.c kexgexc.c kexgexs.c key.c log.c] - [mac.c match.c md-sha256.c misc.c moduli.c monitor.c monitor_fdpass.c] - [monitor_mm.c monitor_wrap.c msg.c nchan.c packet.c rsa.c] - [progressmeter.c readconf.c readpass.c scp.c servconf.c serverloop.c] - [session.c sftp-client.c sftp-common.c sftp-glob.c sftp-server.c sftp.c] - [ssh-add.c ssh-agent.c ssh-dss.c ssh-keygen.c ssh-keyscan.c] - [ssh-keysign.c ssh-rsa.c ssh.c sshconnect.c sshconnect1.c sshconnect2.c] - [sshd.c sshlogin.c sshpty.c ttymodes.c uidswap.c xmalloc.c] - move #include out of includes.h - - stevesk@cvs.openbsd.org 2006/07/23 01:11:05 - [auth.h dispatch.c kex.h sftp-client.c] - #include for sig_atomic_t; need this prior to - move - - (djm) [acss.c auth-krb5.c auth-options.c auth-pam.c auth-shadow.c] - [canohost.c channels.c cipher-acss.c defines.h dns.c gss-genr.c] - [gss-serv-krb5.c gss-serv.c log.h loginrec.c logintest.c readconf.c] - [servconf.c ssh-keygen.c ssh-keyscan.c ssh-keysign.c ssh-rand-helper.c] - [ssh.c sshconnect.c sshd.c openbsd-compat/bindresvport.c] - [openbsd-compat/bsd-arc4random.c openbsd-compat/bsd-misc.c] - [openbsd-compat/getrrsetbyname.c openbsd-compat/glob.c] - [openbsd-compat/mktemp.c openbsd-compat/port-linux.c] - [openbsd-compat/port-tun.c openbsd-compat/readpassphrase.c] - [openbsd-compat/setproctitle.c openbsd-compat/xmmap.c] - make the portable tree compile again - sprinkle unistd.h and string.h - back in. Don't redefine __unused, as it turned out to be used in - headers on Linux, and replace its use in auth-pam.c with ARGSUSED - - (djm) [openbsd-compat/glob.c] - Move get_arg_max() into the ifdef HAVE_GLOB block so that it compiles - on OpenBSD (or other platforms with a decent glob implementation) with - -Werror - - (djm) [uuencode.c] - Add resolv.h, is it contains the prototypes for __b64_ntop/__b64_pton on - some platforms - - (djm) [session.c] - fix compile error with -Werror -Wall: 'path' is only used in - do_setup_env() if HAVE_LOGIN_CAP is not defined - - (djm) [openbsd-compat/basename.c openbsd-compat/bsd-closefrom.c] - [openbsd-compat/bsd-cray.c openbsd-compat/bsd-openpty.c] - [openbsd-compat/bsd-snprintf.c openbsd-compat/fake-rfc2553.c] - [openbsd-compat/port-aix.c openbsd-compat/port-irix.c] - [openbsd-compat/rresvport.c] - These look to need string.h and/or unistd.h (based on a grep for function - names) - - (djm) [Makefile.in] - Remove generated openbsd-compat/regress/Makefile in distclean target - - (djm) [regress/Makefile regress/agent-getpeereid.sh regress/cfgmatch.sh] - [regress/cipher-speed.sh regress/forcecommand.sh regress/forwarding.sh] - Sync regress tests to -current; include dtucker@'s new cfgmatch and - forcecommand tests. Add cipher-speed.sh test (not linked in yet) - - (dtucker) [cleanup.c] Since config.h defines _LARGE_FILES on AIX, including - system headers before defines.h will cause conflicting definitions. - - (dtucker) [regress/forcecommand.sh] Portablize. - -20060713 - - (dtucker) [auth-krb5.c auth-pam.c] Still more errno.h - -20060712 - - (dtucker) [configure.ac defines.h] Only define SHUT_RD (and friends) and - O_NONBLOCK if they're really needed. Fixes build errors on HP-UX, old - Linuxes and probably more. - - (dtucker) [configure.ac] OpenBSD needs before - for SHUT_RD. - - (dtucker) [openbsd-compat/port-tun.c] OpenBSD needs before - . - - (dtucker) OpenBSD CVS Sync - - stevesk@cvs.openbsd.org 2006/07/10 16:01:57 - [sftp-glob.c sftp-common.h sftp.c] - buffer.h only needed in sftp-common.h and remove some unneeded - user includes; ok djm@ - - jmc@cvs.openbsd.org 2006/07/10 16:04:21 - [sshd.8] - s/and and/and/ - - stevesk@cvs.openbsd.org 2006/07/10 16:37:36 - [readpass.c log.h scp.c fatal.c xmalloc.c includes.h ssh-keyscan.c misc.c - auth.c packet.c log.c] - move #include out of includes.h; ok markus@ - - dtucker@cvs.openbsd.org 2006/07/11 10:12:07 - [ssh.c] - Only copy the part of environment variable that we actually use. Prevents - ssh bailing when SendEnv is used and an environment variable with a really - long value exists. ok djm@ - - markus@cvs.openbsd.org 2006/07/11 18:50:48 - [clientloop.c ssh.1 ssh.c channels.c ssh_config.5 readconf.h session.c - channels.h readconf.c] - add ExitOnForwardFailure: terminate the connection if ssh(1) - cannot set up all requested dynamic, local, and remote port - forwardings. ok djm, dtucker, stevesk, jmc - - stevesk@cvs.openbsd.org 2006/07/11 20:07:25 - [scp.c auth.c monitor.c serverloop.c sftp-server.c sshpty.c readpass.c - sshd.c monitor_wrap.c monitor_fdpass.c ssh-agent.c ttymodes.c atomicio.c - includes.h session.c sshlogin.c monitor_mm.c packet.c sshconnect2.c - sftp-client.c nchan.c clientloop.c sftp.c misc.c canohost.c channels.c - ssh-keygen.c progressmeter.c uidswap.c msg.c readconf.c sshconnect.c] - move #include out of includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/07/11 20:16:43 - [ssh.c] - cast asterisk field precision argument to int to remove warning; - ok markus@ - - stevesk@cvs.openbsd.org 2006/07/11 20:27:56 - [authfile.c ssh.c] - need here also (it's also included in ) - - dtucker@cvs.openbsd.org 2006/07/12 11:34:58 - [sshd.c servconf.h servconf.c sshd_config.5 auth.c] - Add support for conditional directives to sshd_config via a "Match" - keyword, which works similarly to the "Host" directive in ssh_config. - Lines after a Match line override the default set in the main section - if the condition on the Match line is true, eg - AllowTcpForwarding yes - Match User anoncvs - AllowTcpForwarding no - will allow port forwarding by all users except "anoncvs". - Currently only a very small subset of directives are supported. - ok djm@ - - (dtucker) [loginrec.c openbsd-compat/xmmap.c openbsd-compat/bindresvport.c - openbsd-compat/glob.c openbsd-compat/mktemp.c openbsd-compat/port-tun.c - openbsd-compat/readpassphrase.c openbsd-compat/strtonum.c] Include . - - (dtucker) [openbsd-compat/setproctitle.c] Include stdarg.h. - - (dtucker) [ssh-keyscan.c ssh-rand-helper.c] More errno.h here too. - - (dtucker) [openbsd-compat/openbsd-compat.h] v*printf needs stdarg.h. - - (dtucker) [openbsd-compat/bsd-asprintf.c openbsd-compat/port-aix.c - openbsd-compat/rresvport.c] More errno.h. - -20060711 - - (dtucker) [configure.ac ssh-keygen.c openbsd-compat/bsd-openpty.c - openbsd-compat/daemon.c] Add includes needed by open(2). Conditionally - include paths.h. Fixes build error on Solaris. - - (dtucker) [entropy.c] More fcntl.h, this time on AIX (and probably - others). - -20060710 - - (dtucker) [INSTALL] New autoconf version: 2.60. - - OpenBSD CVS Sync - - djm@cvs.openbsd.org 2006/06/14 10:50:42 - [sshconnect.c] - limit the number of pre-banner characters we will accept; ok markus@ - - djm@cvs.openbsd.org 2006/06/26 10:36:15 - [clientloop.c] - mention optional bind_address in runtime port forwarding setup - command-line help. patch from santhi.amirta AT gmail.com - - stevesk@cvs.openbsd.org 2006/07/02 17:12:58 - [ssh.1 ssh.c ssh_config.5 sshd_config.5] - more details and clarity for tun(4) device forwarding; ok and help - jmc@ - - stevesk@cvs.openbsd.org 2006/07/02 18:36:47 - [gss-serv-krb5.c gss-serv.c] - no "servconf.h" needed here - (gss-serv-krb5.c change not applied, portable needs the server options) - - stevesk@cvs.openbsd.org 2006/07/02 22:45:59 - [groupaccess.c groupaccess.h includes.h session.c sftp-common.c sshpty.c] - move #include out of includes.h - (portable needed uidswap.c too) - - stevesk@cvs.openbsd.org 2006/07/02 23:01:55 - [clientloop.c ssh.1] - use -KR[bind_address:]port here; ok djm@ - - stevesk@cvs.openbsd.org 2006/07/03 08:54:20 - [includes.h ssh.c sshconnect.c sshd.c] - move #include "version.h" out of includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/07/03 17:59:32 - [channels.c includes.h] - move #include out of includes.h; old ok djm@ - (portable needed session.c too) - - stevesk@cvs.openbsd.org 2006/07/05 02:42:09 - [canohost.c hostfile.c includes.h misc.c packet.c readconf.c] - [serverloop.c sshconnect.c uuencode.c] - move #include out of includes.h; ok deraadt@ - (also ssh-rand-helper.c logintest.c loginrec.c) - - djm@cvs.openbsd.org 2006/07/06 10:47:05 - [servconf.c servconf.h session.c sshd_config.5] - support arguments to Subsystem commands; ok markus@ - - djm@cvs.openbsd.org 2006/07/06 10:47:57 - [sftp-server.8 sftp-server.c] - add commandline options to enable logging of transactions; ok markus@ - - stevesk@cvs.openbsd.org 2006/07/06 16:03:53 - [auth-options.c auth-options.h auth-passwd.c auth-rh-rsa.c] - [auth-rhosts.c auth-rsa.c auth.c auth.h auth2-hostbased.c] - [auth2-pubkey.c auth2.c includes.h misc.c misc.h monitor.c] - [monitor_wrap.c monitor_wrap.h scp.c serverloop.c session.c] - [session.h sftp-common.c ssh-add.c ssh-keygen.c ssh-keysign.c] - [ssh.c sshconnect.c sshconnect.h sshd.c sshpty.c sshpty.h uidswap.c] - [uidswap.h] - move #include out of includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/07/06 16:22:39 - [ssh-keygen.c] - move #include "dns.h" up - - stevesk@cvs.openbsd.org 2006/07/06 17:36:37 - [monitor_wrap.h] - typo in comment - - stevesk@cvs.openbsd.org 2006/07/08 21:47:12 - [authfd.c canohost.c clientloop.c dns.c dns.h includes.h] - [monitor_fdpass.c nchan.c packet.c servconf.c sftp.c ssh-agent.c] - [ssh-keyscan.c ssh.c sshconnect.h sshd.c sshlogin.h] - move #include out of includes.h - - stevesk@cvs.openbsd.org 2006/07/08 21:48:53 - [monitor.c session.c] - missed these from last commit: - move #include out of includes.h - - stevesk@cvs.openbsd.org 2006/07/08 23:30:06 - [log.c] - move user includes after /usr/include files - - stevesk@cvs.openbsd.org 2006/07/09 15:15:11 - [auth2-none.c authfd.c authfile.c includes.h misc.c monitor.c] - [readpass.c scp.c serverloop.c sftp-client.c sftp-server.c] - [ssh-add.c ssh-agent.c ssh-keygen.c ssh-keysign.c ssh.c sshd.c] - [sshlogin.c sshpty.c] - move #include out of includes.h - - stevesk@cvs.openbsd.org 2006/07/09 15:27:59 - [ssh-add.c] - use O_RDONLY vs. 0 in open(); no binary change - - djm@cvs.openbsd.org 2006/07/10 11:24:54 - [sftp-server.c] - remove optind - it isn't used here - - djm@cvs.openbsd.org 2006/07/10 11:25:53 - [sftp-server.c] - don't log variables that aren't yet set - - (djm) [loginrec.c ssh-rand-helper.c sshd.c openbsd-compat/glob.c] - [openbsd-compat/mktemp.c openbsd-compat/openbsd-compat.h] - [openbsd-compat/port-tun.c openbsd-compat/readpassphrase.c] - [openbsd-compat/xcrypt.c] Fix includes.h fallout, mainly fcntl.h - - OpenBSD CVS Sync - - djm@cvs.openbsd.org 2006/07/10 12:03:20 - [scp.c] - duplicate argv at the start of main() because it gets modified later; - pointed out by deraadt@ ok markus@ - - djm@cvs.openbsd.org 2006/07/10 12:08:08 - [channels.c] - fix misparsing of SOCKS 5 packets that could result in a crash; - reported by mk@ ok markus@ - - dtucker@cvs.openbsd.org 2006/07/10 12:46:51 - [misc.c misc.h sshd.8 sshconnect.c] - Add port identifier to known_hosts for non-default ports, based originally - on a patch from Devin Nate in bz#910. - For any connection using the default port or using a HostKeyAlias the - format is unchanged, otherwise the host name or address is enclosed - within square brackets in the same format as sshd's ListenAddress. - Tested by many, ok markus@. - - (dtucker) [openbsd-compat/openbsd-compat.h] Need to include - for struct sockaddr on platforms that use the fake-rfc stuff. - -20060706 - - (dtucker) [configure.ac] Try AIX blibpath test in different order when - compiling with gcc. gcc 4.1.x will accept (but ignore) -b flags so - configure would not select the correct libpath linker flags. - - (dtucker) [INSTALL] A bit more info on autoconf. - -20060705 - - (dtucker) [ssh-rand-helper.c] Don't exit if mkdir fails because the - target already exists. - -20060630 - - (dtucker) [openbsd-compat/openbsd-compat.h] SNPRINTF_CONST for snprintf - declaration too. Patch from russ at sludge.net. - - (dtucker) [openbsd-compat/getrrsetbyname.c] Undef _res before defining it, - prevents warnings on platforms where _res is in the system headers. - - (dtucker) [INSTALL] Bug #1202: Note when autoconf is required and which - version. - -20060627 - - (dtucker) [configure.ac] Bug #1203: Add missing '[', which causes problems - with autoconf 2.60. Patch from vapier at gentoo.org. - -20060625 - - (dtucker) [channels.c serverloop.c] Apply the bug #1102 workaround to ptys - only, otherwise sshd can hang exiting non-interactive sessions. - -20060624 - - (dtucker) [configure.ac] Bug #1193: Define PASSWD_NEEDS_USERNAME on Solaris. - Works around limitation in Solaris' passwd program for changing passwords - where the username is longer than 8 characters. ok djm@ - - (dtucker) [serverloop.c] Get ifdef/ifndef the right way around for the bug - #1102 workaround. - -20060623 - - (dtucker) [README.platform configure.ac openbsd-compat/port-tun.c] Add - tunnel support for Mac OS X/Darwin via a third-party tun driver. Patch - from reyk@, tested by anil@ - - (dtucker) [channels.c configure.ac serverloop.c] Bug #1102: Around AIX - 4.3.3 ML3 or so, the AIX pty layer starting passing zero-length writes - on the pty slave as zero-length reads on the pty master, which sshd - interprets as the descriptor closing. Since most things don't do zero - length writes this rarely matters, but occasionally it happens, and when - it does the SSH pty session appears to hang, so we add a special case for - this condition. ok djm@ - -20060613 - - (djm) [getput.h] This file has been replaced by functions in misc.c - - OpenBSD CVS Sync - - djm@cvs.openbsd.org 2006/05/08 10:49:48 - [sshconnect2.c] - uint32_t -> u_int32_t (which we use everywhere else) - (Id sync only - portable already had this) - - markus@cvs.openbsd.org 2006/05/16 09:00:00 - [clientloop.c] - missing free; from Kylene Hall - - markus@cvs.openbsd.org 2006/05/17 12:43:34 - [scp.c sftp.c ssh-agent.c ssh-keygen.c sshconnect.c] - fix leak; coverity via Kylene Jo Hall - - miod@cvs.openbsd.org 2006/05/18 21:27:25 - [kexdhc.c kexgexc.c] - paramter -> parameter - - dtucker@cvs.openbsd.org 2006/05/29 12:54:08 - [ssh_config.5] - Add gssapi-with-mic to PreferredAuthentications default list; ok jmc - - dtucker@cvs.openbsd.org 2006/05/29 12:56:33 - [ssh_config] - Add GSSAPIAuthentication and GSSAPIDelegateCredentials to examples in - sample ssh_config. ok markus@ - - jmc@cvs.openbsd.org 2006/05/29 16:10:03 - [ssh_config.5] - oops - previous was too long; split the list of auths up - - mk@cvs.openbsd.org 2006/05/30 11:46:38 - [ssh-add.c] - Sync usage() with man page and reality. - ok deraadt dtucker - - jmc@cvs.openbsd.org 2006/05/29 16:13:23 - [ssh.1] - add GSSAPI to the list of authentication methods supported; - - mk@cvs.openbsd.org 2006/05/30 11:46:38 - [ssh-add.c] - Sync usage() with man page and reality. - ok deraadt dtucker - - markus@cvs.openbsd.org 2006/06/01 09:21:48 - [sshd.c] - call get_remote_ipaddr() early; fixes logging after client disconnects; - report mpf@; ok dtucker@ - - markus@cvs.openbsd.org 2006/06/06 10:20:20 - [readpass.c sshconnect.c sshconnect.h sshconnect2.c uidswap.c] - replace remaining setuid() calls with permanently_set_uid() and - check seteuid() return values; report Marcus Meissner; ok dtucker djm - - markus@cvs.openbsd.org 2006/06/08 14:45:49 - [readpass.c sshconnect.c sshconnect2.c uidswap.c uidswap.h] - do not set the gid, noted by solar; ok djm - - djm@cvs.openbsd.org 2006/06/13 01:18:36 - [ssh-agent.c] - always use a format string, even when printing a constant - - djm@cvs.openbsd.org 2006/06/13 02:17:07 - [ssh-agent.c] - revert; i am on drugs. spotted by alexander AT beard.se - -20060521 - - (dtucker) [auth.c monitor.c] Now that we don't log from both the monitor - and slave, we can remove the special-case handling in the audit hook in - auth_log. - -20060517 - - (dtucker) [ssh-rand-helper.c] Check return code of mkdir and fix file - pointer leak. From kjhall at us.ibm.com, found by coverity. - -20060515 - - (dtucker) [openbsd-compat/getrrsetbyname.c] Use _compat_res instead of - _res, prevents problems on some platforms that have _res as a global but - don't have getrrsetbyname(), eg IRIX 5.3. Found and tested by - georg.schwarz at freenet.de, ok djm@. - - (dtucker) [defines.h] Find a value for IOV_MAX or use a conservative - default. Patch originally from tim@, ok djm - - (dtucker) [auth-pam.c] Bug #1188: pass result of do_pam_account back and - do not allow kbdint again after the PAM account check fails. ok djm@ - -20060506 - - (dtucker) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2006/04/25 08:02:27 - [authfile.c authfile.h sshconnect2.c ssh.c sshconnect1.c] - Prevent ssh from trying to open private keys with bad permissions more than - once or prompting for their passphrases (which it subsequently ignores - anyway), similar to a previous change in ssh-add. bz #1186, ok djm@ - - djm@cvs.openbsd.org 2006/05/04 14:55:23 - [dh.c] - tighter DH exponent checks here too; feedback and ok markus@ - - djm@cvs.openbsd.org 2006/04/01 05:37:46 - [OVERVIEW] - $OpenBSD$ in here too - - dtucker@cvs.openbsd.org 2006/05/06 08:35:40 - [auth-krb5.c] - Add $OpenBSD$ in comment here too - -20060504 - - (dtucker) [auth-pam.c groupaccess.c monitor.c monitor_wrap.c scard-opensc.c - session.c ssh-rand-helper.c sshd.c openbsd-compat/bsd-cygwin_util.c - openbsd-compat/setproctitle.c] Convert malloc(foo*bar) -> calloc(foo,bar) - in Portable-only code; since calloc zeros, remove now-redundant memsets. - Also add a couple of sanity checks. With & ok djm@ - -20060503 - - (dtucker) [packet.c] Remove in_systm.h since it's also in includes.h - and double including it on IRIX 5.3 causes problems. From Georg Schwarz, - "no objections" tim@ - -20060423 - - (djm) OpenBSD CVS Sync - - deraadt@cvs.openbsd.org 2006/04/01 05:42:20 - [scp.c] - minimal lint cleanup (unused crud, and some size_t); ok djm - - djm@cvs.openbsd.org 2006/04/01 05:50:29 - [scp.c] - xasprintification; ok deraadt@ - - djm@cvs.openbsd.org 2006/04/01 05:51:34 - [atomicio.c] - ANSIfy; requested deraadt@ - - dtucker@cvs.openbsd.org 2006/04/02 08:34:52 - [ssh-keysign.c] - sessionid can be 32 bytes now too when sha256 kex is used; ok djm@ - - djm@cvs.openbsd.org 2006/04/03 07:10:38 - [gss-genr.c] - GSSAPI buffers shouldn't be nul-terminated, spotted in bugzilla #1066 - by dleonard AT vintela.com. use xasprintf() to simplify code while in - there; "looks right" deraadt@ - - djm@cvs.openbsd.org 2006/04/16 00:48:52 - [buffer.c buffer.h channels.c] - Fix condition where we could exit with a fatal error when an input - buffer became too large and the remote end had advertised a big window. - The problem was a mismatch in the backoff math between the channels code - and the buffer code, so make a buffer_check_alloc() function that the - channels code can use to propsectivly check whether an incremental - allocation will succeed. bz #1131, debugged with the assistance of - cove AT wildpackets.com; ok dtucker@ deraadt@ - - djm@cvs.openbsd.org 2006/04/16 00:52:55 - [atomicio.c atomicio.h] - introduce atomiciov() function that wraps readv/writev to retry - interrupted transfers like atomicio() does for read/write; - feedback deraadt@ dtucker@ stevesk@ ok deraadt@ - - djm@cvs.openbsd.org 2006/04/16 00:54:10 - [sftp-client.c] - avoid making a tiny 4-byte write to send the packet length of sftp - commands, which would result in a separate tiny packet on the wire by - using atomiciov(writev, ...) to write the length and the command in one - pass; ok deraadt@ - - djm@cvs.openbsd.org 2006/04/16 07:59:00 - [atomicio.c] - reorder sanity test so that it cannot dereference past the end of the - iov array; well spotted canacar@! - - dtucker@cvs.openbsd.org 2006/04/18 10:44:28 - [bufaux.c bufbn.c Makefile.in] - Move Buffer bignum functions into their own file, bufbn.c. This means - that sftp and sftp-server (which use the Buffer functions in bufaux.c - but not the bignum ones) no longer need to be linked with libcrypto. - ok markus@ - - djm@cvs.openbsd.org 2006/04/20 09:27:09 - [auth.h clientloop.c dispatch.c dispatch.h kex.h] - replace the last non-sig_atomic_t flag used in a signal handler with a - sig_atomic_t, unfortunately with some knock-on effects in other (non- - signal) contexts in which it is used; ok markus@ - - markus@cvs.openbsd.org 2006/04/20 09:47:59 - [sshconnect.c] - simplify; ok djm@ - - djm@cvs.openbsd.org 2006/04/20 21:53:44 - [includes.h session.c sftp.c] - Switch from using pipes to socketpairs for communication between - sftp/scp and ssh, and between sshd and its subprocesses. This saves - a file descriptor per session and apparently makes userland ppp over - ssh work; ok markus@ deraadt@ (ID Sync only - portable makes this - decision on a per-platform basis) - - djm@cvs.openbsd.org 2006/04/22 04:06:51 - [uidswap.c] - use setres[ug]id() to permanently revoke privileges; ok deraadt@ - (ID Sync only - portable already uses setres[ug]id() whenever possible) - - stevesk@cvs.openbsd.org 2006/04/22 18:29:33 - [crc32.c] - remove extra spaces - - (djm) [auth.h dispatch.h kex.h] sprinkle in signal.h to get - sig_atomic_t - -20060421 - - (djm) [Makefile.in configure.ac session.c sshpty.c] - [contrib/redhat/sshd.init openbsd-compat/Makefile.in] - [openbsd-compat/openbsd-compat.h openbsd-compat/port-linux.c] - [openbsd-compat/port-linux.h] Add support for SELinux, setting - the execution and TTY contexts. based on patch from Daniel Walsh, - bz #880; ok dtucker@ - -20060418 - - (djm) [canohost.c] Reorder IP options check so that it isn't broken - by mapped addresses; bz #1179 reported by markw wtech-llc.com; - ok dtucker@ - -20060331 - - OpenBSD CVS Sync - - deraadt@cvs.openbsd.org 2006/03/27 01:21:18 - [xmalloc.c] - we can do the size & nmemb check before the integer overflow check; - evol - - deraadt@cvs.openbsd.org 2006/03/27 13:03:54 - [dh.c] - use strtonum() instead of atoi(), limit dhg size to 64k; ok djm - - djm@cvs.openbsd.org 2006/03/27 23:15:46 - [sftp.c] - always use a format string for addargs; spotted by mouring@ - - deraadt@cvs.openbsd.org 2006/03/28 00:12:31 - [README.tun ssh.c] - spacing - - deraadt@cvs.openbsd.org 2006/03/28 01:52:28 - [channels.c] - do not accept unreasonable X ports numbers; ok djm - - deraadt@cvs.openbsd.org 2006/03/28 01:53:43 - [ssh-agent.c] - use strtonum() to parse the pid from the file, and range check it - better; ok djm - - djm@cvs.openbsd.org 2006/03/30 09:41:25 - [channels.c] - ARGSUSED for dispatch table-driven functions - - djm@cvs.openbsd.org 2006/03/30 09:58:16 - [authfd.c bufaux.c deattack.c gss-serv.c mac.c misc.c misc.h] - [monitor_wrap.c msg.c packet.c sftp-client.c sftp-server.c ssh-agent.c] - replace {GET,PUT}_XXBIT macros with functionally similar functions, - silencing a heap of lint warnings. also allows them to use - __bounded__ checking which can't be applied to macros; requested - by and feedback from deraadt@ - - djm@cvs.openbsd.org 2006/03/30 10:41:25 - [ssh.c ssh_config.5] - add percent escape chars to the IdentityFile option, bz #1159 based - on a patch by imaging AT math.ualberta.ca; feedback and ok dtucker@ - - dtucker@cvs.openbsd.org 2006/03/30 11:05:17 - [ssh-keygen.c] - Correctly handle truncated files while converting keys; ok djm@ - - dtucker@cvs.openbsd.org 2006/03/30 11:40:21 - [auth.c monitor.c] - Prevent duplicate log messages when privsep=yes; ok djm@ - - jmc@cvs.openbsd.org 2006/03/31 09:09:30 - [ssh_config.5] - kill trailing whitespace; - - djm@cvs.openbsd.org 2006/03/31 09:13:56 - [ssh_config.5] - remote user escape is %r not %h; spotted by jmc@ - -20060326 - - OpenBSD CVS Sync - - jakob@cvs.openbsd.org 2006/03/15 08:46:44 - [ssh-keygen.c] - if no key file are given when printing the DNS host record, use the - host key file(s) as default. ok djm@ - - biorn@cvs.openbsd.org 2006/03/16 10:31:45 - [scp.c] - Try to display errormessage even if remout == -1 - ok djm@, markus@ - - djm@cvs.openbsd.org 2006/03/17 22:31:50 - [authfd.c] - another unreachable found by lint - - djm@cvs.openbsd.org 2006/03/17 22:31:11 - [authfd.c] - unreachanble statement, found by lint - - djm@cvs.openbsd.org 2006/03/19 02:22:32 - [serverloop.c] - memory leaks detected by Coverity via elad AT netbsd.org; - ok deraadt@ dtucker@ - - djm@cvs.openbsd.org 2006/03/19 02:22:56 - [sftp.c] - more memory leaks detected by Coverity via elad AT netbsd.org; - deraadt@ ok - - djm@cvs.openbsd.org 2006/03/19 02:23:26 - [hostfile.c] - FILE* leak detected by Coverity via elad AT netbsd.org; - ok deraadt@ - - djm@cvs.openbsd.org 2006/03/19 02:24:05 - [dh.c readconf.c servconf.c] - potential NULL pointer dereferences detected by Coverity - via elad AT netbsd.org; ok deraadt@ - - djm@cvs.openbsd.org 2006/03/19 07:41:30 - [sshconnect2.c] - memory leaks detected by Coverity via elad AT netbsd.org; - deraadt@ ok - - dtucker@cvs.openbsd.org 2006/03/19 11:51:52 - [servconf.c] - Correct strdelim null test; ok djm@ - - deraadt@cvs.openbsd.org 2006/03/19 18:52:11 - [auth1.c authfd.c channels.c] - spacing - - deraadt@cvs.openbsd.org 2006/03/19 18:53:12 - [kex.c kex.h monitor.c myproposal.h session.c] - spacing - - deraadt@cvs.openbsd.org 2006/03/19 18:56:41 - [clientloop.c progressmeter.c serverloop.c sshd.c] - ARGSUSED for signal handlers - - deraadt@cvs.openbsd.org 2006/03/19 18:59:49 - [ssh-keyscan.c] - please lint - - deraadt@cvs.openbsd.org 2006/03/19 18:59:30 - [ssh.c] - spacing - - deraadt@cvs.openbsd.org 2006/03/19 18:59:09 - [authfile.c] - whoever thought that break after return was a good idea needs to - get their head examimed - - djm@cvs.openbsd.org 2006/03/20 04:09:44 - [monitor.c] - memory leaks detected by Coverity via elad AT netbsd.org; - deraadt@ ok - that should be all of them now - - djm@cvs.openbsd.org 2006/03/20 11:38:46 - [key.c] - (really) last of the Coverity diffs: avoid possible NULL deref in - key_free. via elad AT netbsd.org; markus@ ok - - deraadt@cvs.openbsd.org 2006/03/20 17:10:19 - [auth.c key.c misc.c packet.c ssh-add.c] - in a switch (), break after return or goto is stupid - - deraadt@cvs.openbsd.org 2006/03/20 17:13:16 - [key.c] - djm did a typo - - deraadt@cvs.openbsd.org 2006/03/20 17:17:23 - [ssh-rsa.c] - in a switch (), break after return or goto is stupid - - deraadt@cvs.openbsd.org 2006/03/20 18:14:02 - [channels.c clientloop.c monitor_wrap.c monitor_wrap.h serverloop.c] - [ssh.c sshpty.c sshpty.h] - sprinkle u_int throughout pty subsystem, ok markus - - deraadt@cvs.openbsd.org 2006/03/20 18:17:20 - [auth1.c auth2.c sshd.c] - sprinkle some ARGSUSED for table driven functions (which sometimes - must ignore their args) - - deraadt@cvs.openbsd.org 2006/03/20 18:26:55 - [channels.c monitor.c session.c session.h ssh-agent.c ssh-keygen.c] - [ssh-rsa.c ssh.c sshlogin.c] - annoying spacing fixes getting in the way of real diffs - - deraadt@cvs.openbsd.org 2006/03/20 18:27:50 - [monitor.c] - spacing - - deraadt@cvs.openbsd.org 2006/03/20 18:35:12 - [channels.c] - x11_fake_data is only ever used as u_char * - - deraadt@cvs.openbsd.org 2006/03/20 18:41:43 - [dns.c] - cast xstrdup to propert u_char * - - deraadt@cvs.openbsd.org 2006/03/20 18:42:27 - [canohost.c match.c ssh.c sshconnect.c] - be strict with tolower() casting - - deraadt@cvs.openbsd.org 2006/03/20 18:48:34 - [channels.c fatal.c kex.c packet.c serverloop.c] - spacing - - deraadt@cvs.openbsd.org 2006/03/20 21:11:53 - [ttymodes.c] - spacing - - djm@cvs.openbsd.org 2006/03/25 00:05:41 - [auth-bsdauth.c auth-skey.c auth.c auth2-chall.c channels.c] - [clientloop.c deattack.c gss-genr.c kex.c key.c misc.c moduli.c] - [monitor.c monitor_wrap.c packet.c scard.c sftp-server.c ssh-agent.c] - [ssh-keyscan.c ssh.c sshconnect.c sshconnect2.c sshd.c uuencode.c] - [xmalloc.c xmalloc.h] - introduce xcalloc() and xasprintf() failure-checked allocations - functions and use them throughout openssh - - xcalloc is particularly important because malloc(nmemb * size) is a - dangerous idiom (subject to integer overflow) and it is time for it - to die - - feedback and ok deraadt@ - - djm@cvs.openbsd.org 2006/03/25 01:13:23 - [buffer.c channels.c deattack.c misc.c scp.c session.c sftp-client.c] - [sftp-server.c ssh-agent.c ssh-rsa.c xmalloc.c xmalloc.h auth-pam.c] - [uidswap.c] - change OpenSSH's xrealloc() function from being xrealloc(p, new_size) - to xrealloc(p, new_nmemb, new_itemsize). - - realloc is particularly prone to integer overflows because it is - almost always allocating "n * size" bytes, so this is a far safer - API; ok deraadt@ - - djm@cvs.openbsd.org 2006/03/25 01:30:23 - [sftp.c] - "abormally" is a perfectly cromulent word, but "abnormally" is better - - djm@cvs.openbsd.org 2006/03/25 13:17:03 - [atomicio.c auth-bsdauth.c auth-chall.c auth-options.c auth-passwd.c] - [auth-rh-rsa.c auth-rhosts.c auth-rsa.c auth-skey.c auth.c auth1.c] - [auth2-chall.c auth2-hostbased.c auth2-kbdint.c auth2-none.c] - [auth2-passwd.c auth2-pubkey.c auth2.c authfd.c authfile.c bufaux.c] - [buffer.c canohost.c channels.c cipher-3des1.c cipher-bf1.c] - [cipher-ctr.c cipher.c cleanup.c clientloop.c compat.c compress.c] - [deattack.c dh.c dispatch.c fatal.c groupaccess.c hostfile.c kex.c] - [kexdh.c kexdhc.c kexdhs.c kexgex.c kexgexc.c kexgexs.c key.c log.c] - [mac.c match.c md-sha256.c misc.c monitor.c monitor_fdpass.c] - [monitor_mm.c monitor_wrap.c msg.c nchan.c packet.c progressmeter.c] - [readconf.c readpass.c rsa.c scard.c scp.c servconf.c serverloop.c] - [session.c sftp-client.c sftp-common.c sftp-glob.c sftp-server.c] - [sftp.c ssh-add.c ssh-agent.c ssh-dss.c ssh-keygen.c ssh-keyscan.c] - [ssh-keysign.c ssh-rsa.c ssh.c sshconnect.c sshconnect1.c] - [sshconnect2.c sshd.c sshlogin.c sshpty.c sshtty.c ttymodes.c] - [uidswap.c uuencode.c xmalloc.c] - Put $OpenBSD$ tags back (as comments) to replace the RCSID()s that - Theo nuked - our scripts to sync -portable need them in the files - - deraadt@cvs.openbsd.org 2006/03/25 18:29:35 - [auth-rsa.c authfd.c packet.c] - needed casts (always will be needed) - - deraadt@cvs.openbsd.org 2006/03/25 18:30:55 - [clientloop.c serverloop.c] - spacing - - deraadt@cvs.openbsd.org 2006/03/25 18:36:15 - [sshlogin.c sshlogin.h] - nicer size_t and time_t types - - deraadt@cvs.openbsd.org 2006/03/25 18:40:14 - [ssh-keygen.c] - cast strtonum() result to right type - - deraadt@cvs.openbsd.org 2006/03/25 18:41:45 - [ssh-agent.c] - mark two more signal handlers ARGSUSED - - deraadt@cvs.openbsd.org 2006/03/25 18:43:30 - [channels.c] - use strtonum() instead of atoi() [limit X screens to 400, sorry] - - deraadt@cvs.openbsd.org 2006/03/25 18:56:55 - [bufaux.c channels.c packet.c] - remove (char *) casts to a function that accepts void * for the arg - - deraadt@cvs.openbsd.org 2006/03/25 18:58:10 - [channels.c] - delete cast not required - - djm@cvs.openbsd.org 2006/03/25 22:22:43 - [atomicio.h auth-options.h auth.h auth2-gss.c authfd.h authfile.h] - [bufaux.h buffer.h canohost.h channels.h cipher.h clientloop.h] - [compat.h compress.h crc32.c crc32.h deattack.h dh.h dispatch.h] - [dns.c dns.h getput.h groupaccess.h gss-genr.c gss-serv-krb5.c] - [gss-serv.c hostfile.h includes.h kex.h key.h log.h mac.h match.h] - [misc.h monitor.h monitor_fdpass.h monitor_mm.h monitor_wrap.h msg.h] - [myproposal.h packet.h pathnames.h progressmeter.h readconf.h rsa.h] - [scard.h servconf.h serverloop.h session.h sftp-common.h sftp.h] - [ssh-gss.h ssh.h ssh1.h ssh2.h sshconnect.h sshlogin.h sshpty.h] - [ttymodes.h uidswap.h uuencode.h xmalloc.h] - standardise spacing in $OpenBSD$ tags; requested by deraadt@ - - deraadt@cvs.openbsd.org 2006/03/26 01:31:48 - [uuencode.c] - typo - -20060325 - - OpenBSD CVS Sync - - djm@cvs.openbsd.org 2006/03/16 04:24:42 - [ssh.1] - Add RFC4419 (Diffie-Hellman group exchange KEX) to the list of SSH RFCs - that OpenSSH supports - - deraadt@cvs.openbsd.org 2006/03/19 18:51:18 - [atomicio.c auth-bsdauth.c auth-chall.c auth-krb5.c auth-options.c] - [auth-pam.c auth-passwd.c auth-rh-rsa.c auth-rhosts.c auth-rsa.c] - [auth-shadow.c auth-skey.c auth.c auth1.c auth2-chall.c] - [auth2-hostbased.c auth2-kbdint.c auth2-none.c auth2-passwd.c] - [auth2-pubkey.c auth2.c authfd.c authfile.c bufaux.c buffer.c] - [canohost.c channels.c cipher-3des1.c cipher-acss.c cipher-aes.c] - [cipher-bf1.c cipher-ctr.c cipher.c cleanup.c clientloop.c compat.c] - [compress.c deattack.c dh.c dispatch.c dns.c entropy.c fatal.c] - [groupaccess.c hostfile.c includes.h kex.c kexdh.c kexdhc.c] - [kexdhs.c kexgex.c kexgexc.c kexgexs.c key.c log.c loginrec.c] - [loginrec.h logintest.c mac.c match.c md-sha256.c md5crypt.c misc.c] - [monitor.c monitor_fdpass.c monitor_mm.c monitor_wrap.c msg.c] - [nchan.c packet.c progressmeter.c readconf.c readpass.c rsa.c] - [scard.c scp.c servconf.c serverloop.c session.c sftp-client.c] - [sftp-common.c sftp-glob.c sftp-server.c sftp.c ssh-add.c] - [ssh-agent.c ssh-dss.c ssh-keygen.c ssh-keyscan.c ssh-keysign.c] - [ssh-rand-helper.c ssh-rsa.c ssh.c sshconnect.c sshconnect1.c] - [sshconnect2.c sshd.c sshlogin.c sshpty.c sshtty.c ttymodes.c] - [uidswap.c uuencode.c xmalloc.c openbsd-compat/bsd-arc4random.c] - [openbsd-compat/bsd-closefrom.c openbsd-compat/bsd-cygwin_util.c] - [openbsd-compat/bsd-getpeereid.c openbsd-compat/bsd-misc.c] - [openbsd-compat/bsd-nextstep.c openbsd-compat/bsd-snprintf.c] - [openbsd-compat/bsd-waitpid.c openbsd-compat/fake-rfc2553.c] - RCSID() can die - - deraadt@cvs.openbsd.org 2006/03/19 18:53:12 - [kex.h myproposal.h] - spacing - - djm@cvs.openbsd.org 2006/03/20 04:07:22 - [auth2-gss.c] - GSSAPI related leaks detected by Coverity via elad AT netbsd.org; - reviewed by simon AT sxw.org.uk; deraadt@ ok - - djm@cvs.openbsd.org 2006/03/20 04:07:49 - [gss-genr.c] - more GSSAPI related leaks detected by Coverity via elad AT netbsd.org; - reviewed by simon AT sxw.org.uk; deraadt@ ok - - djm@cvs.openbsd.org 2006/03/20 04:08:18 - [gss-serv.c] - last lot of GSSAPI related leaks detected by Coverity via - elad AT netbsd.org; reviewed by simon AT sxw.org.uk; deraadt@ ok - - deraadt@cvs.openbsd.org 2006/03/20 18:14:02 - [monitor_wrap.h sshpty.h] - sprinkle u_int throughout pty subsystem, ok markus - - deraadt@cvs.openbsd.org 2006/03/20 18:26:55 - [session.h] - annoying spacing fixes getting in the way of real diffs - - deraadt@cvs.openbsd.org 2006/03/20 18:41:43 - [dns.c] - cast xstrdup to propert u_char * - - jakob@cvs.openbsd.org 2006/03/22 21:16:24 - [ssh.1] - simplify SSHFP example; ok jmc@ - - djm@cvs.openbsd.org 2006/03/22 21:27:15 - [deattack.c deattack.h] - remove IV support from the CRC attack detector, OpenSSH has never used - it - it only applied to IDEA-CFB, which we don't support. - prompted by NetBSD Coverity report via elad AT netbsd.org; - feedback markus@ "nuke it" deraadt@ - -20060318 - - (djm) [auth-pam.c] Fix memleak in error path, from Coverity via - elad AT NetBSD.org - - (dtucker) [openbsd-compat/bsd-snprintf.c] Bug #1173: make fmtint() take - a LLONG rather than a long. Fixes scp'ing of large files on platforms - with missing/broken snprintfs. Patch from e.borovac at bom.gov.au. - -20060316 - - (dtucker) [entropy.c] Add headers for WIFEXITED and friends. - - (dtucker) [configure.ac md-sha256.c] NetBSD has sha2.h in - /usr/include/crypto. Hint from djm@. - - (tim) [kex.c myproposal.h md-sha256.c openbsd-compat/sha2.c,h] - Disable sha256 when openssl < 0.9.7. Patch from djm@. - - (djm) [kex.c] Slightly more clean deactivation of dhgex-sha256 on old - OpenSSL; ok tim - -20060315 - - (djm) OpenBSD CVS Sync: - - msf@cvs.openbsd.org 2006/02/06 15:54:07 - [ssh.1] - - typo fix - ok jmc@ - - jmc@cvs.openbsd.org 2006/02/06 21:44:47 - [ssh.1] - make this a little less ambiguous... - - stevesk@cvs.openbsd.org 2006/02/07 01:08:04 - [auth-rhosts.c includes.h] - move #include out of includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/02/07 01:18:09 - [includes.h ssh-agent.c ssh-keyscan.c sshconnect2.c] - move #include out of includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/02/07 01:42:00 - [channels.c clientloop.c clientloop.h includes.h packet.h] - [serverloop.c sshpty.c sshpty.h sshtty.c ttymodes.c] - move #include out of includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/02/07 01:52:50 - [sshtty.c] - "log.h" not needed - - stevesk@cvs.openbsd.org 2006/02/07 03:47:05 - [hostfile.c] - "packet.h" not needed - - stevesk@cvs.openbsd.org 2006/02/07 03:59:20 - [deattack.c] - duplicate #include - - stevesk@cvs.openbsd.org 2006/02/08 12:15:27 - [auth.c clientloop.c includes.h misc.c monitor.c readpass.c] - [session.c sftp.c ssh-agent.c ssh-keysign.c ssh.c sshconnect.c] - [sshd.c sshpty.c] - move #include out of includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/02/08 12:32:49 - [includes.h misc.c] - move #include out of includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/02/08 13:15:44 - [gss-serv.c monitor.c] - small KNF - - stevesk@cvs.openbsd.org 2006/02/08 14:16:59 - [sshconnect.c] - not needed - - stevesk@cvs.openbsd.org 2006/02/08 14:31:30 - [includes.h ssh-agent.c ssh-keyscan.c ssh.c] - move #include out of includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/02/08 14:38:18 - [includes.h packet.c] - move #include and out of - includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/02/08 23:51:24 - [includes.h scp.c sftp-glob.c sftp-server.c] - move #include out of includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/02/09 00:32:07 - [includes.h] - #include not needed; ok djm@ - NB. ID Sync only - we still need this (but it may move later) - - jmc@cvs.openbsd.org 2006/02/09 10:10:47 - [sshd.8] - - move some text into a CAVEATS section - - merge the COMMAND EXECUTION... section into AUTHENTICATION - - stevesk@cvs.openbsd.org 2006/02/10 00:27:13 - [channels.c clientloop.c includes.h misc.c progressmeter.c sftp.c] - [ssh.c sshd.c sshpty.c] - move #include out of includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/02/10 01:44:27 - [includes.h monitor.c readpass.c scp.c serverloop.c session.c] - [sftp.c sshconnect.c sshconnect2.c sshd.c] - move #include out of includes.h; ok markus@ - - otto@cvs.openbsd.org 2006/02/11 19:31:18 - [atomicio.c] - type correctness; from Ray Lai in PR 5011; ok millert@ - - djm@cvs.openbsd.org 2006/02/12 06:45:34 - [ssh.c ssh_config.5] - add a %l expansion code to the ControlPath, which is filled in with the - local hostname at runtime. Requested by henning@ to avoid some problems - with /home on NFS; ok dtucker@ - - djm@cvs.openbsd.org 2006/02/12 10:44:18 - [readconf.c] - raise error when the user specifies a RekeyLimit that is smaller than 16 - (the smallest of our cipher's blocksize) or big enough to cause integer - wraparound; ok & feedback dtucker@ - - jmc@cvs.openbsd.org 2006/02/12 10:49:44 - [ssh_config.5] - slight rewording; ok djm - - jmc@cvs.openbsd.org 2006/02/12 10:52:41 - [sshd.8] - rework the description of authorized_keys a little; - - jmc@cvs.openbsd.org 2006/02/12 17:57:19 - [sshd.8] - sort the list of options permissable w/ authorized_keys; - ok djm dtucker - - jmc@cvs.openbsd.org 2006/02/13 10:16:39 - [sshd.8] - no need to subsection the authorized_keys examples - instead, convert - this to look like an actual file. also use proto 2 keys, and use IETF - example addresses; - - jmc@cvs.openbsd.org 2006/02/13 10:21:25 - [sshd.8] - small tweaks for the ssh_known_hosts section; - - jmc@cvs.openbsd.org 2006/02/13 11:02:26 - [sshd.8] - turn this into an example ssh_known_hosts file; ok djm - - jmc@cvs.openbsd.org 2006/02/13 11:08:43 - [sshd.8] - - avoid nasty line split - - `*' does not need to be escaped - - jmc@cvs.openbsd.org 2006/02/13 11:27:25 - [sshd.8] - sort FILES and use a -compact list; - - david@cvs.openbsd.org 2006/02/15 05:08:24 - [sftp-client.c] - typo in comment; ok djm@ - - jmc@cvs.openbsd.org 2006/02/15 16:53:20 - [ssh.1] - remove the IETF draft references and replace them with some updated RFCs; - - jmc@cvs.openbsd.org 2006/02/15 16:55:33 - [sshd.8] - remove ietf draft references; RFC list now maintained in ssh.1; - - jmc@cvs.openbsd.org 2006/02/16 09:05:34 - [sshd.8] - sync some of the FILES entries w/ ssh.1; - - jmc@cvs.openbsd.org 2006/02/19 19:52:10 - [sshd.8] - move the sshrc stuff out of FILES, and into its own section: - FILES is not a good place to document how stuff works; - - jmc@cvs.openbsd.org 2006/02/19 20:02:17 - [sshd.8] - sync the (s)hosts.equiv FILES entries w/ those from ssh.1; - - jmc@cvs.openbsd.org 2006/02/19 20:05:00 - [sshd.8] - grammar; - - jmc@cvs.openbsd.org 2006/02/19 20:12:25 - [ssh_config.5] - add some vertical space; - - stevesk@cvs.openbsd.org 2006/02/20 16:36:15 - [authfd.c channels.c includes.h session.c ssh-agent.c ssh.c] - move #include out of includes.h; ok djm@ - - stevesk@cvs.openbsd.org 2006/02/20 17:02:44 - [clientloop.c includes.h monitor.c progressmeter.c scp.c] - [serverloop.c session.c sftp.c ssh-agent.c ssh.c sshd.c] - move #include out of includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/02/20 17:19:54 - [auth-rhosts.c auth-rsa.c auth.c auth2-none.c auth2-pubkey.c] - [authfile.c clientloop.c includes.h readconf.c scp.c session.c] - [sftp-client.c sftp-common.c sftp-common.h sftp-glob.c] - [sftp-server.c sftp.c ssh-add.c ssh-keygen.c ssh.c sshconnect.c] - [sshconnect2.c sshd.c sshpty.c] - move #include out of includes.h; ok markus@ - - stevesk@cvs.openbsd.org 2006/02/22 00:04:45 - [canohost.c clientloop.c includes.h match.c readconf.c scp.c ssh.c] - [sshconnect.c] - move #include out of includes.h; ok djm@ - - jmc@cvs.openbsd.org 2006/02/24 10:25:14 - [ssh_config.5] - add section on patterns; - from dtucker + myself - - jmc@cvs.openbsd.org 2006/02/24 10:33:54 - [sshd_config.5] - signpost to PATTERNS; - - jmc@cvs.openbsd.org 2006/02/24 10:37:07 - [ssh_config.5] - tidy up the refs to PATTERNS; - - jmc@cvs.openbsd.org 2006/02/24 10:39:52 - [sshd.8] - signpost to PATTERNS section; - - jmc@cvs.openbsd.org 2006/02/24 20:22:16 - [ssh-keysign.8 ssh_config.5 sshd_config.5] - some consistency fixes; - - jmc@cvs.openbsd.org 2006/02/24 20:31:31 - [ssh.1 ssh_config.5 sshd.8 sshd_config.5] - more consistency fixes; - - jmc@cvs.openbsd.org 2006/02/24 23:20:07 - [ssh_config.5] - some grammar/wording fixes; - - jmc@cvs.openbsd.org 2006/02/24 23:43:57 - [sshd_config.5] - some grammar/wording fixes; - - jmc@cvs.openbsd.org 2006/02/24 23:51:17 - [sshd_config.5] - oops - bits i missed; - - jmc@cvs.openbsd.org 2006/02/25 12:26:17 - [ssh_config.5] - document the possible values for KbdInteractiveDevices; - help/ok dtucker - - jmc@cvs.openbsd.org 2006/02/25 12:28:34 - [sshd_config.5] - document the order in which allow/deny directives are processed; - help/ok dtucker - - jmc@cvs.openbsd.org 2006/02/26 17:17:18 - [ssh_config.5] - move PATTERNS to the end of the main body; requested by dtucker - - jmc@cvs.openbsd.org 2006/02/26 18:01:13 - [sshd_config.5] - subsection is pointless here; - - jmc@cvs.openbsd.org 2006/02/26 18:03:10 - [ssh_config.5] - comma; - - djm@cvs.openbsd.org 2006/02/28 01:10:21 - [session.c] - fix logout recording when privilege separation is disabled, analysis and - patch from vinschen at redhat.com; tested by dtucker@ ok deraadt@ - NB. ID sync only - patch already in portable - - djm@cvs.openbsd.org 2006/03/04 04:12:58 - [serverloop.c] - move a debug() outside of a signal handler; ok markus@ a little while back - - djm@cvs.openbsd.org 2006/03/12 04:23:07 - [ssh.c] - knf nit - - djm@cvs.openbsd.org 2006/03/13 08:16:00 - [sshd.c] - don't log that we are listening on a socket before the listen() call - actually succeeds, bz #1162 reported by Senthil Kumar; ok dtucker@ - - dtucker@cvs.openbsd.org 2006/03/13 08:33:00 - [packet.c] - Set TCP_NODELAY for all connections not just "interactive" ones. Fixes - poor performance and protocol stalls under some network conditions (mindrot - bugs #556 and #981). Patch originally from markus@, ok djm@ - - dtucker@cvs.openbsd.org 2006/03/13 08:43:16 - [ssh-keygen.c] - Make ssh-keygen handle CR and CRLF line termination when converting IETF - format keys, in adition to vanilla LF. mindrot #1157, tested by Chris - Pepper, ok djm@ - - dtucker@cvs.openbsd.org 2006/03/13 10:14:29 - [misc.c ssh_config.5 sshd_config.5] - Allow config directives to contain whitespace by surrounding them by double - quotes. mindrot #482, man page help from jmc@, ok djm@ - - dtucker@cvs.openbsd.org 2006/03/13 10:26:52 - [authfile.c authfile.h ssh-add.c] - Make ssh-add check file permissions before attempting to load private - key files multiple times; it will fail anyway and this prevents confusing - multiple prompts and warnings. mindrot #1138, ok djm@ - - djm@cvs.openbsd.org 2006/03/14 00:15:39 - [canohost.c] - log the originating address and not just the name when a reverse - mapping check fails, requested by linux AT linuon.com - - markus@cvs.openbsd.org 2006/03/14 16:32:48 - [ssh_config.5 sshd_config.5] - *AliveCountMax applies to protcol v2 only; ok dtucker, djm - - djm@cvs.openbsd.org 2006/03/07 09:07:40 - [kex.c kex.h monitor.c myproposal.h ssh-keyscan.c sshconnect2.c sshd.c] - Implement the diffie-hellman-group-exchange-sha256 key exchange method - using the SHA256 code in libc (and wrapper to make it into an OpenSSL - EVP), interop tested against CVS PuTTY - NB. no portability bits committed yet - - (djm) [configure.ac defines.h kex.c md-sha256.c] - [openbsd-compat/sha2.h openbsd-compat/openbsd-compat.h] - [openbsd-compat/sha2.c] First stab at portability glue for SHA256 - KEX support, should work with libc SHA256 support or OpenSSL - EVP_sha256 if present - - (djm) [includes.h] Restore accidentally dropped netinet/in.h - - (djm) [Makefile.in openbsd-compat/Makefile.in] Add added files - - (djm) [md-sha256.c configure.ac] md-sha256.c needs sha2.h if present - - (djm) [regress/.cvsignore] Ignore Makefile here - - (djm) [loginrec.c] Need stat.h - - (djm) [openbsd-compat/sha2.h] Avoid include macro clash with - system sha2.h - - (djm) [ssh-rand-helper.c] Needs a bunch of headers - - (djm) [ssh-agent.c] Restore dropped stat.h - - (djm) [openbsd-compat/sha2.h openbsd-compat/sha2.c] Comment out - SHA384, which we don't need and doesn't compile without tweaks - - (djm) [auth-pam.c clientloop.c includes.h monitor.c session.c] - [sftp-client.c ssh-keysign.c ssh.c sshconnect.c sshconnect2.c] - [sshd.c openbsd-compat/bsd-misc.c openbsd-compat/bsd-openpty.c] - [openbsd-compat/glob.c openbsd-compat/mktemp.c] - [openbsd-compat/readpassphrase.c] Lots of include fixes for - OpenSolaris - - (tim) [includes.h] put sys/stat.h back in to quiet some "macro redefined:" - - (tim) [openssh/sshpty.c openssh/openbsd-compat/port-tun.c] put in some - includes removed from includes.h - - (dtucker) [configure.ac] Fix glob test conversion to AC_TRY_COMPILE - - (djm) [includes.h] Put back paths.h, it is needed in defines.h - - (dtucker) [openbsd-compat/openbsd-compat.h] AIX (at least) needs - sys/ioctl.h for struct winsize. - - (dtucker) [configure.ac] login_cap.h requires sys/types.h on NetBSD. - -20060313 - - (dtucker) [configure.ac] Bug #1171: Don't use printf("%lld", longlong) - since not all platforms support it. Instead, use internal equivalent while - computing LLONG_MIN and LLONG_MAX. Remove special case for alpha-dec-osf* - as it's no longer required. Tested by Bernhard Simon, ok djm@ - -20060304 - - (dtucker) [contrib/cygwin/ssh-host-config] Require use of lastlog as a - file rather than directory, required as Cygwin will be importing lastlog(1). - Also tightens up permissions on the file. Patch from vinschen@redhat.com. - - (dtucker) [gss-serv-krb5.c] Bug #1166: Correct #ifdefs for gssapi_krb5.h - includes. Patch from gentoo.riverrat at gmail.com. - -20060226 - - (dtucker) [configure.ac] Bug #1156: QNX apparently needs SSHD_ACQUIRES_CTTY - patch from kraai at ftbfs.org. - -20060223 - - (dtucker) [sshd_config sshd_config.5] Update UsePAM to reflect current - reality. Pointed out by tryponraj at gmail.com. - -20060222 - - (dtucker) [openbsd-compat/openssl-compat.{c,h}] Minor tidy up: only - compile in compat code if required. - -20060221 - - (dtucker) [openbsd-compat/openssl-compat.h] Prevent warning about - redefinition of SSLeay_add_all_algorithms. - -20060220 - - (dtucker) [INSTALL configure.ac openbsd-compat/openssl-compat.{c,h}] - Add optional enabling of OpenSSL's (hardware) Engine support, via - configure --with-ssl-engine. Based in part on a diff by michal at - logix.cz. - -20060219 - - (dtucker) [Makefile.in configure.ac, added openbsd-compat/regress/] - Add first attempt at regress tests for compat library. ok djm@ - -20060214 - - (tim) [buildpkg.sh.in] Make the names consistent. - s/pkg_post_make_install_fixes.sh/pkg-post-make-install-fixes.sh/ OK dtucker@ - -20060212 - - (dtucker) [openbsd-compat/bsd-cygwin_util.c] Make loop counter unsigned - to silence compiler warning, from vinschen at redhat.com. - - (tim) [configure.ac] Bug #1149. Disable /etc/default/login check for QNX. - - (dtucker) [README version.h contrib/caldera/openssh.spec - contrib/redhat/openssh.spec contrib/suse/openssh.spec] Bump version - strings to match 4.3p2 release. - -20060208 - - (tim) [session.c] Logout records were not updated on systems with - post auth privsep disabled due to bug 1086 changes. Analysis and patch - by vinschen at redhat.com. OK tim@, dtucker@. - - (dtucker) [configure.ac] Typo in Ultrix and NewsOS sections (NEED_SETPRGP - -> NEED_SETPGRP), reported by Bernhard Simon. ok tim@ - -20060206 - - (tim) [configure.ac] Remove unnecessary tests for net/if.h and - netinet/in_systm.h. OK dtucker@. - -20060205 - - (tim) [configure.ac] Add AC_REVISION. Add sys/time.h to lastlog.h test - for Solaris. OK dtucker@. - - (tim) [configure.ac] Bug #1149. Changes in QNX section only. Patch by - kraai at ftbfs.org. - -20060203 - - (tim) [configure.ac] test for egrep (AC_PROG_EGREP) before first - AC_CHECK_HEADERS test. Without it, if AC_CHECK_HEADERS is first run - by a platform specific check, builtin standard includes tests will be - skipped on the other platforms. - Analysis and suggestion by vinschen at redhat.com, patch by dtucker@. - OK tim@, djm@. - -20060202 - - (dtucker) [configure.ac] Bug #1148: Fix "crippled AES" test so that it - works with picky compilers. Patch from alex.kiernan at thus.net. - -20060201 - - (djm) [regress/test-exec.sh] Try 'logname' as well as 'whoami' to - determine the user's login name - needed for regress tests on Solaris - 10 and OpenSolaris - - (djm) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2006/02/01 09:06:50 - [sshd.8] - - merge sections on protocols 1 and 2 into a single section - - remove configuration file section - ok markus - - jmc@cvs.openbsd.org 2006/02/01 09:11:41 - [sshd.8] - small tweak; - - (djm) [contrib/caldera/openssh.spec contrib/redhat/openssh.spec] - [contrib/suse/openssh.spec] Update versions ahead of release - - markus@cvs.openbsd.org 2006/02/01 11:27:22 - [version.h] - openssh 4.3 - - (djm) Release OpenSSH 4.3p1 - -20060131 - - (djm) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2006/01/20 11:21:45 - [ssh_config.5] - - word change, agreed w/ markus - - consistency fixes - - jmc@cvs.openbsd.org 2006/01/25 09:04:34 - [sshd.8] - move the options description up the page, and a few additional tweaks - whilst in here; - ok markus - - jmc@cvs.openbsd.org 2006/01/25 09:07:22 - [sshd.8] - move subsections to full sections; - - jmc@cvs.openbsd.org 2006/01/26 08:47:56 - [ssh.1] - add a section on verifying host keys in dns; - written with a lot of help from jakob; - feedback dtucker/markus; - ok markus - - reyk@cvs.openbsd.org 2006/01/30 12:22:22 - [channels.c] - mark channel as write failed or dead instead of read failed on error - of the channel output filter. - ok markus@ - - jmc@cvs.openbsd.org 2006/01/30 13:37:49 - [ssh.1] - remove an incorrect sentence; - reported by roumen petrov; - ok djm markus - - djm@cvs.openbsd.org 2006/01/31 10:19:02 - [misc.c misc.h scp.c sftp.c] - fix local arbitrary command execution vulnerability on local/local and - remote/remote copies (CVE-2006-0225, bz #1094), patch by - t8m AT centrum.cz, polished by dtucker@ and myself; ok markus@ - - djm@cvs.openbsd.org 2006/01/31 10:35:43 - [scp.c] - "scp a b c" shouldn't clobber "c" when it is not a directory, report and - fix from biorn@; ok markus@ - - (djm) Sync regress tests to OpenBSD: - - dtucker@cvs.openbsd.org 2005/03/10 10:20:39 - [regress/forwarding.sh] - Regress test for ClearAllForwardings (bz #994); ok markus@ - - dtucker@cvs.openbsd.org 2005/04/25 09:54:09 - [regress/multiplex.sh] - Don't call cleanup in multiplex as test-exec will cleanup anyway - found by tim@, ok djm@ - NB. ID sync only, we already had this - - djm@cvs.openbsd.org 2005/05/20 23:14:15 - [regress/test-exec.sh] - force addressfamily=inet for tests, unbreaking dynamic-forward regress for - recently committed nc SOCKS5 changes - - djm@cvs.openbsd.org 2005/05/24 04:10:54 - [regress/try-ciphers.sh] - oops, new arcfour modes here too - - markus@cvs.openbsd.org 2005/06/30 11:02:37 - [regress/scp.sh] - allow SUDO=sudo; from Alexander Bluhm - - grunk@cvs.openbsd.org 2005/11/14 21:25:56 - [regress/agent-getpeereid.sh] - all other scripts in this dir use $SUDO, not 'sudo', so pull this even - ok markus@ - - dtucker@cvs.openbsd.org 2005/12/14 04:36:39 - [regress/scp-ssh-wrapper.sh] - Fix assumption about how many args scp will pass; ok djm@ - NB. ID sync only, we already had this - - djm@cvs.openbsd.org 2006/01/27 06:49:21 - [scp.sh] - regress test for local to local scp copies; ok dtucker@ - - djm@cvs.openbsd.org 2006/01/31 10:23:23 - [scp.sh] - regression test for CVE-2006-0225 written by dtucker@ - - djm@cvs.openbsd.org 2006/01/31 10:36:33 - [scp.sh] - regress test for "scp a b c" where "c" is not a directory - -20060129 - - (dtucker) [configure.ac opensshd.init.in] Bug #1144: Use /bin/sh for the - opensshd.init script interpretter if /sbin/sh does not exist. ok tim@ - -20060120 - - (dtucker) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2006/01/15 17:37:05 - [ssh.1] - correction from deraadt - - jmc@cvs.openbsd.org 2006/01/18 10:53:29 - [ssh.1] - add a section on ssh-based vpn, based on reyk's README.tun; - - dtucker@cvs.openbsd.org 2006/01/20 00:14:55 - [scp.1 ssh.1 ssh_config.5 sftp.1] - Document RekeyLimit. Based on patch from jan.iven at cern.ch from mindrot - #1056 with feedback from jmc, djm and markus; ok jmc@ djm@ - -20060114 - - (djm) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2006/01/06 13:27:32 - [ssh.1] - weed out some duplicate info in the known_hosts FILES entries; - ok djm - - jmc@cvs.openbsd.org 2006/01/06 13:29:10 - [ssh.1] - final round of whacking FILES for duplicate info, and some consistency - fixes; - ok djm - - jmc@cvs.openbsd.org 2006/01/12 14:44:12 - [ssh.1] - split sections on tcp and x11 forwarding into two sections. - add an example in the tcp section, based on sth i wrote for ssh faq; - help + ok: djm markus dtucker - - jmc@cvs.openbsd.org 2006/01/12 18:48:48 - [ssh.1] - refer to `TCP' rather than `TCP/IP' in the context of connection - forwarding; - ok markus - - jmc@cvs.openbsd.org 2006/01/12 22:20:00 - [sshd.8] - refer to TCP forwarding, rather than TCP/IP forwarding; - - jmc@cvs.openbsd.org 2006/01/12 22:26:02 - [ssh_config.5] - refer to TCP forwarding, rather than TCP/IP forwarding; - - jmc@cvs.openbsd.org 2006/01/12 22:34:12 - [ssh.1] - back out a sentence - AUTHENTICATION already documents this; - -20060109 - - (dtucker) [contrib/cygwin/ssh-host-config] Make sshd service depend on - tcpip service so it's always started after IP is up. Patch from - vinschen at redhat.com. - -20060106 - - (djm) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2006/01/03 16:31:10 - [ssh.1] - move FILES to a -compact list, and make each files an item in that list. - this avoids nastly line wrap when we have long pathnames, and treats - each file as a separate item; - remove the .Pa too, since it is useless. - - jmc@cvs.openbsd.org 2006/01/03 16:35:30 - [ssh.1] - use a larger width for the ENVIRONMENT list; - - jmc@cvs.openbsd.org 2006/01/03 16:52:36 - [ssh.1] - put FILES in some sort of order: sort by pathname - - jmc@cvs.openbsd.org 2006/01/03 16:55:18 - [ssh.1] - tweak the description of ~/.ssh/environment - - jmc@cvs.openbsd.org 2006/01/04 18:42:46 - [ssh.1] - chop out some duplication in the .{r,s}hosts/{h,sh}osts.equiv FILES - entries; - ok markus - - jmc@cvs.openbsd.org 2006/01/04 18:45:01 - [ssh.1] - remove .Xr's to rsh(1) and telnet(1): they are hardly needed; - - jmc@cvs.openbsd.org 2006/01/04 19:40:24 - [ssh.1] - +.Xr ssh-keyscan 1 , - - jmc@cvs.openbsd.org 2006/01/04 19:50:09 - [ssh.1] - -.Xr gzip 1 , - - djm@cvs.openbsd.org 2006/01/05 23:43:53 - [misc.c] - check that stdio file descriptors are actually closed before clobbering - them in sanitise_stdfd(). problems occurred when a lower numbered fd was - closed, but higher ones weren't. spotted by, and patch tested by - Frédéric Olivié - -20060103 - - (djm) [channels.c] clean up harmless merge error, from reyk@ - -20060103 - - (djm) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2006/01/02 17:09:49 - [ssh_config.5 sshd_config.5] - some corrections from michael knudsen; - -20060102 - - (djm) [README.tun] Add README.tun, missed during sync of tun(4) support - - (djm) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2005/12/31 10:46:17 - [ssh.1] - merge the "LOGIN SESSION AND REMOTE EXECUTION" and "SERVER - AUTHENTICATION" sections into "AUTHENTICATION"; - some rewording done to make the text read better, plus some - improvements from djm; - ok djm - - jmc@cvs.openbsd.org 2005/12/31 13:44:04 - [ssh.1] - clean up ENVIRONMENT a little; - - jmc@cvs.openbsd.org 2005/12/31 13:45:19 - [ssh.1] - .Nm does not require an argument; - - stevesk@cvs.openbsd.org 2006/01/01 08:59:27 - [includes.h misc.c] - move ; ok djm@ - - stevesk@cvs.openbsd.org 2006/01/01 10:08:48 - [misc.c] - no trailing "\n" for debug() - - djm@cvs.openbsd.org 2006/01/02 01:20:31 - [sftp-client.c sftp-common.h sftp-server.c] - use a common max. packet length, no binary change - - reyk@cvs.openbsd.org 2006/01/02 07:53:44 - [misc.c] - clarify tun(4) opening - set the mode and bring the interface up. also - (re)sets the tun(4) layer 2 LINK0 flag for existing tunnel interfaces. - suggested and ok by djm@ - - jmc@cvs.openbsd.org 2006/01/02 12:31:06 - [ssh.1] - start to cut some duplicate info from FILES; - help/ok djm - -20060101 - - (djm) [Makefile.in configure.ac includes.h misc.c] - [openbsd-compat/port-tun.c openbsd-compat/port-tun.h] Add support - for tunnel forwarding for FreeBSD and NetBSD. NetBSD's support is - limited to IPv4 tunnels only, and most versions don't support the - tap(4) device at all. - - (djm) [configure.ac] Fix linux/if_tun.h test - - (djm) [openbsd-compat/port-tun.c] Linux needs linux/if.h too - -20051229 - - (djm) OpenBSD CVS Sync - - stevesk@cvs.openbsd.org 2005/12/28 22:46:06 - [canohost.c channels.c clientloop.c] - use 'break-in' for consistency; ok deraadt@ ok and input jmc@ - - reyk@cvs.openbsd.org 2005/12/30 15:56:37 - [channels.c channels.h clientloop.c] - add channel output filter interface. - ok djm@, suggested by markus@ - - jmc@cvs.openbsd.org 2005/12/30 16:59:00 - [sftp.1] - do not suggest that interactive authentication will work - with the -b flag; - based on a diff from john l. scarfone; - ok djm - - stevesk@cvs.openbsd.org 2005/12/31 01:38:45 - [ssh.1] - document -MM; ok djm@ - - (djm) [openbsd-compat/port-tun.c openbsd-compat/port-tun.h configure.ac] - [serverloop.c ssh.c openbsd-compat/Makefile.in] - [openbsd-compat/openbsd-compat.h] Implement tun(4) forwarding - compatability support for Linux, diff from reyk@ - - (djm) [configure.ac] Disable Linux tun(4) compat code if linux/tun.h does - not exist - - (djm) [configure.ac] oops, make that linux/if_tun.h - -20051229 - - (tim) [buildpkg.sh.in] grep for $SSHDUID instead of $SSHDGID on /etc/passwd - -20051224 - - (djm) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2005/12/20 21:59:43 - [ssh.1] - merge the sections on protocols 1 and 2 into one section on - authentication; - feedback djm dtucker - ok deraadt markus dtucker - - jmc@cvs.openbsd.org 2005/12/20 22:02:50 - [ssh.1] - .Ss -> .Sh: subsections have not made this page more readable - - jmc@cvs.openbsd.org 2005/12/20 22:09:41 - [ssh.1] - move info on ssh return values and config files up into the main - description; - - jmc@cvs.openbsd.org 2005/12/21 11:48:16 - [ssh.1] - -L and -R descriptions are now above, not below, ~C description; - - jmc@cvs.openbsd.org 2005/12/21 11:57:25 - [ssh.1] - options now described `above', rather than `later'; - - jmc@cvs.openbsd.org 2005/12/21 12:53:31 - [ssh.1] - -Y does X11 forwarding too; - ok markus - - stevesk@cvs.openbsd.org 2005/12/21 22:44:26 - [sshd.8] - clarify precedence of -p, Port, ListenAddress; ok and help jmc@ - - jmc@cvs.openbsd.org 2005/12/22 10:31:40 - [ssh_config.5] - put the description of "UsePrivilegedPort" in the correct place; - - jmc@cvs.openbsd.org 2005/12/22 11:23:42 - [ssh.1] - expand the description of -w somewhat; - help/ok reyk - - jmc@cvs.openbsd.org 2005/12/23 14:55:53 - [ssh.1] - - sync the description of -e w/ synopsis - - simplify the description of -I - - note that -I is only available if support compiled in, and that it - isn't by default - feedback/ok djm@ - - jmc@cvs.openbsd.org 2005/12/23 23:46:23 - [ssh.1] - less mark up for -c; - - djm@cvs.openbsd.org 2005/12/24 02:27:41 - [session.c sshd.c] - eliminate some code duplicated in privsep and non-privsep paths, and - explicitly clear SIGALRM handler; "groovy" deraadt@ - -20051220 - - (dtucker) OpenBSD CVS Sync - - reyk@cvs.openbsd.org 2005/12/13 15:03:02 - [serverloop.c] - if forced_tun_device is not set, it is -1 and not SSH_TUNID_ANY - - jmc@cvs.openbsd.org 2005/12/16 18:07:08 - [ssh.1] - move the option descriptions up the page: start of a restructure; - ok markus deraadt - - jmc@cvs.openbsd.org 2005/12/16 18:08:53 - [ssh.1] - simplify a sentence; - - jmc@cvs.openbsd.org 2005/12/16 18:12:22 - [ssh.1] - make the description of -c a little nicer; - - jmc@cvs.openbsd.org 2005/12/16 18:14:40 - [ssh.1] - signpost the protocol sections; - - stevesk@cvs.openbsd.org 2005/12/17 21:13:05 - [ssh_config.5 session.c] - spelling: fowarding, fowarded - - stevesk@cvs.openbsd.org 2005/12/17 21:36:42 - [ssh_config.5] - spelling: intented -> intended - - dtucker@cvs.openbsd.org 2005/12/20 04:41:07 - [ssh.c] - exit(255) on error to match description in ssh(1); bz #1137; ok deraadt@ - -20051219 - - (dtucker) [cipher-aes.c cipher-ctr.c cipher.c configure.ac - openbsd-compat/openssl-compat.h] Check for and work around broken AES - ciphers >128bit on (some) Solaris 10 systems. ok djm@ - -20051217 - - (dtucker) [defines.h] HP-UX system headers define "YES" and "NO" which - scp.c also uses, so undef them here. - - (dtucker) [configure.ac openbsd-compat/bsd-snprintf.c] Bug #1133: Our - snprintf replacement can have a conflicting declaration in HP-UX's system - headers (const vs. no const) so we now check for and work around it. Patch - from the dynamic duo of David Leonard and Ted Percival. - -20051214 - - (dtucker) OpenBSD CVS Sync (regress/) - - dtucker@cvs.openbsd.org 2005/12/30 04:36:39 - [regress/scp-ssh-wrapper.sh] - Fix assumption about how many args scp will pass; ok djm@ - -20051213 - - (djm) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2005/11/30 11:18:27 - [ssh.1] - timezone -> time zone - - jmc@cvs.openbsd.org 2005/11/30 11:45:20 - [ssh.1] - avoid ambiguities in describing TZ; - ok djm@ - - reyk@cvs.openbsd.org 2005/12/06 22:38:28 - [auth-options.c auth-options.h channels.c channels.h clientloop.c] - [misc.c misc.h readconf.c readconf.h scp.c servconf.c servconf.h] - [serverloop.c sftp.c ssh.1 ssh.c ssh_config ssh_config.5 sshconnect.c] - [sshconnect.h sshd.8 sshd_config sshd_config.5] - Add support for tun(4) forwarding over OpenSSH, based on an idea and - initial channel code bits by markus@. This is a simple and easy way to - use OpenSSH for ad hoc virtual private network connections, e.g. - administrative tunnels or secure wireless access. It's based on a new - ssh channel and works similar to the existing TCP forwarding support, - except that it depends on the tun(4) network interface on both ends of - the connection for layer 2 or layer 3 tunneling. This diff also adds - support for LocalCommand in the ssh(1) client. - ok djm@, markus@, jmc@ (manpages), tested and discussed with others - - djm@cvs.openbsd.org 2005/12/07 03:52:22 - [clientloop.c] - reyk forgot to compile with -Werror (missing header) - - jmc@cvs.openbsd.org 2005/12/07 10:52:13 - [ssh.1] - - avoid line split in SYNOPSIS - - add args to -w - - kill trailing whitespace - - jmc@cvs.openbsd.org 2005/12/08 14:59:44 - [ssh.1 ssh_config.5] - make `!command' a little clearer; - ok reyk - - jmc@cvs.openbsd.org 2005/12/08 15:06:29 - [ssh_config.5] - keep options in order; - - reyk@cvs.openbsd.org 2005/12/08 18:34:11 - [auth-options.c includes.h misc.c misc.h readconf.c servconf.c] - [serverloop.c ssh.c ssh_config.5 sshd_config.5 configure.ac] - two changes to the new ssh tunnel support. this breaks compatibility - with the initial commit but is required for a portable approach. - - make the tunnel id u_int and platform friendly, use predefined types. - - support configuration of layer 2 (ethernet) or layer 3 - (point-to-point, default) modes. configuration is done using the - Tunnel (yes|point-to-point|ethernet|no) option is ssh_config(5) and - restricted by the PermitTunnel (yes|point-to-point|ethernet|no) option - in sshd_config(5). - ok djm@, man page bits by jmc@ - - jmc@cvs.openbsd.org 2005/12/08 21:37:50 - [ssh_config.5] - new sentence, new line; - - markus@cvs.openbsd.org 2005/12/12 13:46:18 - [channels.c channels.h session.c] - make sure protocol messages for internal channels are ignored. - allow adjust messages for non-open channels; with and ok djm@ - - (djm) [misc.c] Disable tunnel code for non-OpenBSD (for now), enable - again by providing a sys_tun_open() function for your platform and - setting the CUSTOM_SYS_TUN_OPEN define. More work is required to match - OpenBSD's tunnel protocol, which prepends the address family to the - packet - -20051201 - - (djm) [envpass.sh] Remove regress script that was accidentally committed - in top level directory and not noticed for over a year :) - -20051129 - - (tim) [ssh-keygen.c] Move DSA length test after setting default when - bits == 0. - - (dtucker) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2005/11/29 02:04:55 - [ssh-keygen.c] - Populate default key sizes before checking them; from & ok tim@ - - (tim) [configure.ac sshd.8] Enable locked account check (a "*LK*" string) - for UnixWare. - -20051128 - - (dtucker) [regress/yes-head.sh] Work around breakage caused by some - versions of GNU head. Based on patch from zappaman at buraphalinux.org - - (dtucker) [includes.h] Bug #1122: __USE_GNU is a glibc internal macro, use - _GNU_SOURCE instead. Patch from t8m at centrum.cz. - - (dtucker) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2005/11/28 05:16:53 - [ssh-keygen.1 ssh-keygen.c] - Enforce DSA key length of exactly 1024 bits to comply with FIPS-186-2, - increase minumum RSA key size to 768 bits and update man page to reflect - these. Patch originally bz#1119 (senthilkumar_sen at hotpop.com), - ok djm@, grudging ok deraadt@. - - dtucker@cvs.openbsd.org 2005/11/28 06:02:56 - [ssh-agent.1] - Update agent socket path templates to reflect reality, correct xref for - time formats. bz#1121, patch from openssh at roumenpetrov.info, ok djm@ - -20051126 - - (dtucker) [configure.ac] Bug #1126: AIX 5.2 and 5.3 (and presumably newer, - when they're available) need the real UID set otherwise pam_chauthtok will - set ADMCHG after changing the password, forcing the user to change it - again immediately. - -20051125 - - (dtucker) [configure.ac] Apply tim's fix for older systems where the - resolver state in resolv.h is "state" not "__res_state". With slight - modification by me to also work on old AIXes. ok djm@ - - (dtucker) [progressmeter.c scp.c sftp-server.c] Use correct casts for - snprintf formats, fixes warnings on some 64 bit platforms. Patch from - shaw at vranix.com, ok djm@ - -20051124 - - (djm) [configure.ac openbsd-compat/Makefile.in openbsd-compat/bsd-asprintf.c - openbsd-compat/bsd-snprintf.c openbsd-compat/openbsd-compat.h] Add an - asprintf() implementation, after syncing our {v,}snprintf() implementation - with some extra fixes from Samba's version. With help and debugging from - dtucker and tim; ok dtucker@ - - (dtucker) [configure.ac] Fix typos in comments and AC_SEARCH_LIB argument - order in Reliant Unix block. Patch from johane at lysator.liu.se. - - (dtucker) [regress/test-exec.sh] Use 1024 bit keys since we generate so - many and use them only once. Speeds up testing on older/slower hardware. - -20051122 - - (dtucker) OpenBSD CVS Sync - - deraadt@cvs.openbsd.org 2005/11/12 18:37:59 - [ssh-add.c] - space - - deraadt@cvs.openbsd.org 2005/11/12 18:38:15 - [scp.c] - avoid close(-1), as in rcp; ok cloder - - millert@cvs.openbsd.org 2005/11/15 11:59:54 - [includes.h] - Include sys/queue.h explicitly instead of assuming some other header - will pull it in. At the moment it gets pulled in by sys/select.h - (which ssh has no business including) via event.h. OK markus@ - (ID sync only in -portable) - - dtucker@cvs.openbsd.org 2005/11/21 09:42:10 - [auth-krb5.c] - Perform Kerberos calls even for invalid users to prevent leaking - information about account validity. bz #975, patch originally from - Senthil Kumar, sanity checked by Simon Wilkinson, tested by djm@, biorn@, - ok markus@ - - dtucker@cvs.openbsd.org 2005/11/22 03:36:03 - [hostfile.c] - Correct format/arguments to debug call; spotted by shaw at vranix.com - ok djm@ - - (dtucker) [loginrec.c] Add casts to prevent compiler warnings, patch - from shaw at vranix.com. - -20051120 - - (dtucker) [openbsd-compat/openssl-compat.h] Add comment explaining what - is going on. - -20051112 - - (dtucker) [openbsd-compat/getrrsetbyname.c] Restore Portable-specific - ifdef lost during sync. Spotted by tim@. - - (dtucker) [openbsd-compat/{realpath.c,stroll.c,rresvport.c}] $OpenBSD tag. - - (dtucker) [configure.ac] Use "$AWK" instead of "awk" in gcc version test. - - (dtucker) [configure.ac] Remove duplicate utimes() check. ok djm@ - - (dtucker) [regress/reconfigure.sh] Fix potential race in the reconfigure - test: if sshd takes too long to reconfigure the subsequent connection will - fail. Zap pidfile before HUPing sshd which will rewrite it when it's ready. - -20051110 - - (dtucker) [openbsd-compat/setenv.c] Merge changes for __findenv from - OpenBSD getenv.c revs 1.4 - 1.8 (ANSIfication of arguments, removal of - "register"). - - (dtucker) [openbsd-compat/setenv.c] Make __findenv static, remove - unnecessary prototype. - - (dtucker) [openbsd-compat/setenv.c] Sync changes from OpenBSD setenv.c - revs 1.7 - 1.9. - - (dtucker) [auth-krb5.c] Fix -Wsign-compare warning in non-Heimdal path. - Patch from djm@. - - (dtucker) [configure.ac] Disable pointer-sign warnings on gcc 4.0+ - since they're not useful right now. Patch from djm@. - - (dtucker) [openbsd-compat/getgrouplist.c] Sync OpenBSD revs 1.10 - 1.2 (ANSI - prototypes, removal of "register"). - - (dtucker) [openbsd-compat/strlcat.c] Sync OpenBSD revs 1.11 - 1.12 (removal - of "register"). - - (dtucker) [openbsd-compat/{LOTS}] Move the "OPENBSD ORIGINAL" markers to - after the copyright notices. Having them at the top next to the CVSIDs - guarantees a conflict for each and every sync. - - (dtucker) [openbsd-compat/strlcpy.c] Update from OpenBSD 1.8 -> 1.10. - - (dtucker) [openbsd-compat/sigact.h] Add "OPENBSD ORIGINAL" marker. - - (dtucker) [openbsd-compat/strmode.c] Update from OpenBSD 1.5 -> 1.7. - Removal of rcsid, "whiteout" inode type. - - (dtucker) [openbsd-compat/basename.c] Update from OpenBSD 1.11 -> 1.14. - Removal of rcsid, will no longer strlcpy parts of the string. - - (dtucker) [openbsd-compat/strtoll.c] Update from OpenBSD 1.4 -> 1.5. - - (dtucker) [openbsd-compat/strtoul.c] Update from OpenBSD 1.5 -> 1.7. - - (dtucker) [openbsd-compat/readpassphrase.c] Update from OpenBSD 1.16 -> 1.18. - - (dtucker) [openbsd-compat/readpassphrase.h] Update from OpenBSD 1.3 -> 1.5. - - (dtucker) [openbsd-compat/glob.c] Update from OpenBSD 1.22 -> 1.25. - - (dtucker) [openbsd-compat/glob.h] Update from OpenBSD 1.8 -> 1.9. - - (dtucker) [openbsd-compat/getcwd.c] Update from OpenBSD 1.9 -> 1.14. - - (dtucker) [openbsd-compat/getcwd.c] Replace lstat with fstat to match up - with OpenBSD code since we don't support platforms without fstat any more. - - (dtucker) [openbsd-compat/inet_aton.c] Update from OpenBSD 1.7 -> 1.9. - - (dtucker) [openbsd-compat/inet_ntoa.c] Update from OpenBSD 1.4 -> 1.6. - - (dtucker) [openbsd-compat/inet_ntop.c] Update from OpenBSD 1.5 -> 1.7. - - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.5 -> 1.6. - - (dtucker) [openbsd-compat/strsep.c] Update from OpenBSD 1.5 -> 1.6. - - (dtucker) [openbsd-compat/daemon.c] Update from OpenBSD 1.10 -> 1.13. - - (dtucker) [openbsd-compat/mktemp.c] Update from OpenBSD 1.17 -> 1.19. - - (dtucker) [openbsd-compat/rresvport.c] Update from OpenBSD 1.6 -> 1.8. - - (dtucker) [openbsd-compat/bindresvport.c] Add "OPENBSD ORIGINAL" marker. - - (dtucker) [openbsd-compat/bindresvport.c] Update from OpenBSD 1.16 -> 1.17. - - (dtucker) [openbsd-compat/sigact.c] Update from OpenBSD 1.3 -> 1.4. - Id and copyright sync only, there were no substantial changes we need. - - (dtucker) [openbsd-compat/bsd-closefrom.c openbsd-compat/base64.c] - -Wsign-compare fixes from djm. - - (dtucker) [openbsd-compat/sigact.h] Update from OpenBSD 1.2 -> 1.3. - Id and copyright sync only, there were no substantial changes we need. - - (dtucker) [configure.ac] Try to get the gcc version number in a way that - doesn't change between versions, and use a safer default. - -20051105 - - (djm) OpenBSD CVS Sync - - markus@cvs.openbsd.org 2005/10/07 11:13:57 - [ssh-keygen.c] - change DSA default back to 1024, as it's defined for 1024 bits only - and this causes interop problems with other clients. moreover, - in order to improve the security of DSA you need to change more - components of DSA key generation (e.g. the internal SHA1 hash); - ok deraadt - - djm@cvs.openbsd.org 2005/10/10 10:23:08 - [channels.c channels.h clientloop.c serverloop.c session.c] - fix regression I introduced in 4.2: X11 forwardings initiated after - a session has exited (e.g. "(sleep 5; xterm) &") would not start. - bz #1086 reported by t8m AT centrum.cz; ok markus@ dtucker@ - - djm@cvs.openbsd.org 2005/10/11 23:37:37 - [channels.c] - bz #1076 set SO_REUSEADDR on X11 forwarding listner sockets, preventing - bind() failure when a previous connection's listeners are in TIME_WAIT, - reported by plattner AT inf.ethz.ch; ok dtucker@ - - stevesk@cvs.openbsd.org 2005/10/13 14:03:01 - [auth2-gss.c gss-genr.c gss-serv.c] - remove unneeded #includes; ok markus@ - - stevesk@cvs.openbsd.org 2005/10/13 14:20:37 - [gss-serv.c] - spelling in comments - - stevesk@cvs.openbsd.org 2005/10/13 19:08:08 - [gss-serv-krb5.c gss-serv.c] - unused declarations; ok deraadt@ - (id sync only for gss-serv-krb5.c) - - stevesk@cvs.openbsd.org 2005/10/13 19:13:41 - [dns.c] - unneeded #include, unused declaration, little knf; ok deraadt@ - - stevesk@cvs.openbsd.org 2005/10/13 22:24:31 - [auth2-gss.c gss-genr.c gss-serv.c monitor.c] - KNF; ok djm@ - - stevesk@cvs.openbsd.org 2005/10/14 02:17:59 - [ssh-keygen.c ssh.c sshconnect2.c] - no trailing "\n" for log functions; ok djm@ - - stevesk@cvs.openbsd.org 2005/10/14 02:29:37 - [channels.c clientloop.c] - free()->xfree(); ok djm@ - - stevesk@cvs.openbsd.org 2005/10/15 15:28:12 - [sshconnect.c] - make external definition static; ok deraadt@ - - stevesk@cvs.openbsd.org 2005/10/17 13:45:05 - [dns.c] - fix memory leaks from 2 sources: - 1) key_fingerprint_raw() - 2) malloc in dns_read_rdata() - ok jakob@ - - stevesk@cvs.openbsd.org 2005/10/17 14:01:28 - [dns.c] - remove #ifdef LWRES; ok jakob@ - - stevesk@cvs.openbsd.org 2005/10/17 14:13:35 - [dns.c dns.h] - more cleanups; ok jakob@ - - djm@cvs.openbsd.org 2005/10/30 01:23:19 - [ssh_config.5] - mention control socket fallback behaviour, reported by - tryponraj AT gmail.com - - djm@cvs.openbsd.org 2005/10/30 04:01:03 - [ssh-keyscan.c] - make ssh-keygen discard junk from server before SSH- ident, spotted by - dave AT cirt.net; ok dtucker@ - - djm@cvs.openbsd.org 2005/10/30 04:03:24 - [ssh.c] - fix misleading debug message; ok dtucker@ - - dtucker@cvs.openbsd.org 2005/10/30 08:29:29 - [canohost.c sshd.c] - Check for connections with IP options earlier and drop silently. ok djm@ - - jmc@cvs.openbsd.org 2005/10/30 08:43:47 - [ssh_config.5] - remove trailing whitespace; - - djm@cvs.openbsd.org 2005/10/30 08:52:18 - [clientloop.c packet.c serverloop.c session.c ssh-agent.c ssh-keygen.c] - [ssh.c sshconnect.c sshconnect1.c sshd.c] - no need to escape single quotes in comments, no binary change - - dtucker@cvs.openbsd.org 2005/10/31 06:15:04 - [sftp.c] - Fix sorting with "ls -1" command. From Robert Tsai, "looks right" deraadt@ - - djm@cvs.openbsd.org 2005/10/31 11:12:49 - [ssh-keygen.1 ssh-keygen.c] - generate a protocol 2 RSA key by default - - djm@cvs.openbsd.org 2005/10/31 11:48:29 - [serverloop.c] - make sure we clean up wtmp, etc. file when we receive a SIGTERM, - SIGINT or SIGQUIT when running without privilege separation (the - normal privsep case is already OK). Patch mainly by dtucker@ and - senthilkumar_sen AT hotpop.com; ok dtucker@ - - jmc@cvs.openbsd.org 2005/10/31 19:55:25 - [ssh-keygen.1] - grammar; - - dtucker@cvs.openbsd.org 2005/11/03 13:38:29 - [canohost.c] - Cache reverse lookups with and without DNS separately; ok markus@ - - djm@cvs.openbsd.org 2005/11/04 05:15:59 - [kex.c kex.h kexdh.c kexdhc.c kexdhs.c kexgex.c kexgexc.c kexgexs.c] - remove hardcoded hash lengths in key exchange code, allowing - implementation of KEX methods with different hashes (e.g. SHA-256); - ok markus@ dtucker@ stevesk@ - - djm@cvs.openbsd.org 2005/11/05 05:01:15 - [bufaux.c] - Fix leaks in error paths, bz #1109 and #1110 reported by kremenek AT - cs.stanford.edu; ok dtucker@ - - (dtucker) [README.platform] Add PAM section. - - (djm) [openbsd-compat/getrrsetbyname.c] Sync to latest OpenBSD version, - resolving memory leak bz#1111 reported by kremenek AT cs.stanford.edu; - ok dtucker@ - -20051102 - - (dtucker) [openbsd-compat/bsd-misc.c] Bug #1108: fix broken strdup(). - Reported by olavi at ipunplugged.com and antoine.brodin at laposte.net - via FreeBSD. - -20051030 - - (djm) [contrib/suse/openssh.spec contrib/suse/rc. - sshd contrib/suse/sysconfig.ssh] Bug #1106: Updated SuSE spec and init - files from imorgan AT nas.nasa.gov - - (dtucker) [session.c] Bug #1045do not check /etc/nologin when PAM is - enabled, instead allow PAM to handle it. Note that on platforms using PAM, - the pam_nologin module should be added to sshd's session stack in order to - maintain exising behaviour. Based on patch and discussion from t8m at - centrum.cz, ok djm@ - -20051025 - - (dtucker) [configure.ac] Relocate LLONG_MAX calculation to after the - sizeof(long long) checks, to make fixing bug #1104 easier (no changes - yet). - - (dtucker) [configure.ac] Bug #1104: Tru64's printf family doesn't - understand "%lld", even though the compiler has "long long", so handle - it as a special case. Patch tested by mcaskill.scott at epa.gov. - - (dtucker) [contrib/cygwin/ssh-user-config] Remove duplicate yes/no - prompt. Patch from vinschen at redhat.com. - -20051017 - - (dtucker) [configure.ac] Bug #1097: Fix configure for cross-compiling. - /etc/default/login report and testing from aabaker at iee.org, corrections - from tim@. - -20051009 - - (dtucker) [configure.ac defines.h openbsd-compat/vis.{c,h}] Sync current - versions from OpenBSD. ok djm@ - -20051008 - - (dtucker) [configure.ac] Bug #1098: define $MAIL for HP-UX; report from - brian.smith at agilent com. - - (djm) [configure.ac] missing 'test' call for -with-Werror test - -20051005 - - (dtucker) [configure.ac sshd.8] Enable locked account check (a prepended - "*LOCKED*" string) for FreeBSD. Patch jeremie at le-hen.org and - senthilkumar_sen at hotpop.com. - -20051003 - - (dtucker) OpenBSD CVS Sync - - markus@cvs.openbsd.org 2005/09/07 08:53:53 - [channels.c] - enforce chanid != NULL; ok djm - - markus@cvs.openbsd.org 2005/09/09 19:18:05 - [clientloop.c] - typo; from mark at mcs.vuw.ac.nz, bug #1082 - - djm@cvs.openbsd.org 2005/09/13 23:40:07 - [sshd.c ssh.c misc.h sftp.c ssh-keygen.c ssh-keysign.c sftp-server.c - scp.c misc.c ssh-keyscan.c ssh-add.c ssh-agent.c] - ensure that stdio fds are attached; ok deraadt@ - - djm@cvs.openbsd.org 2005/09/19 11:37:34 - [ssh_config.5 ssh.1] - mention ability to specify bind_address for DynamicForward and -D options; - bz#1077 spotted by Haruyama Seigo - - djm@cvs.openbsd.org 2005/09/19 11:47:09 - [sshd.c] - stop connection abort on rekey with delayed compression enabled when - post-auth privsep is disabled (e.g. when root is logged in); ok dtucker@ - - djm@cvs.openbsd.org 2005/09/19 11:48:10 - [gss-serv.c] - typo - - jmc@cvs.openbsd.org 2005/09/19 15:38:27 - [ssh.1] - some more .Bk/.Ek to avoid ugly line split; - - jmc@cvs.openbsd.org 2005/09/19 15:42:44 - [ssh.c] - update -D usage here too; - - djm@cvs.openbsd.org 2005/09/19 23:31:31 - [ssh.1] - spelling nit from stevesk@ - - djm@cvs.openbsd.org 2005/09/21 23:36:54 - [sshd_config.5] - aquire -> acquire, from stevesk@ - - djm@cvs.openbsd.org 2005/09/21 23:37:11 - [sshd.c] - change label at markus@'s request - - jaredy@cvs.openbsd.org 2005/09/30 20:34:26 - [ssh-keyscan.1] - deploy .An -nosplit; ok jmc - - dtucker@cvs.openbsd.org 2005/10/03 07:44:42 - [canohost.c] - Relocate check_ip_options call to prevent logging of garbage for - connections with IP options set. bz#1092 from David Leonard, - "looks good" deraadt@ - - (dtucker) [regress/README.regress] Bug #989: Document limitation that scp - is required in the system path for the multiplex test to work. - -20050930 - - (dtucker) [openbsd-compat/openbsd-compat.h] Bug #1096: Add prototype - for strtoll. Patch from o.flebbe at science-computing.de. - - (dtucker) [monitor.c] Bug #1087: Send loginmsg to preauth privsep - child during PAM account check without clearing it. This restores the - post-login warnings such as LDAP password expiry. Patch from Tomas Mraz - with help from several others. - -20050929 - - (dtucker) [monitor_wrap.c] Remove duplicate definition of loginmsg - introduced during sync. - -20050928 - - (dtucker) [entropy.c] Use u_char for receiving RNG seed for consistency. - - (dtucker) [auth-pam.c] Bug #1028: send final non-query messages from - PAM via keyboard-interactive. Patch tested by the folks at Vintela. - -20050927 - - (dtucker) [entropy.c] Remove unnecessary tests for getuid and geteuid - calls, since they can't possibly fail. ok djm@ - - (dtucker) [entropy.c entropy.h sshd.c] Pass RNG seed to the reexec'ed - process when sshd relies on ssh-random-helper. Should result in faster - logins on systems without a real random device or prngd. ok djm@ - -20050924 - - (dtucker) [auth2.c] Move start_pam() calls out of if-else block to remove - duplicate call. ok djm@ - -20050922 - - (dtucker) [configure.ac] Use -R linker flag for libedit too; patch from - skeleten at shillest.net. - - (dtucker) [configure.ac] Fix help for --with-opensc; patch from skeleten at - shillest.net. - -20050919 - - (tim) [aclocal.m4 configure.ac] Delete acconfig.h and add templates to - AC_DEFINE and AC_DEFINE_UNQUOTED to quiet autoconf 2.59 warning messages. - ok dtucker@ - -20050912 - - (tim) [configure.ac] Bug 1078. Fix --without-kerberos5. Reported by - Mike Frysinger. - -20050908 - - (tim) [defines.h openbsd-compat/port-uw.c] Add long password support to - OpenServer 6 and add osr5bigcrypt support so when someone migrates - passwords between UnixWare and OpenServer they will still work. OK dtucker@ - -$Id: ChangeLog,v 1.5204 2009/02/23 00:09:25 djm Exp $ - -- cgit v1.2.3 From 5d0d530c8c1cce0fdd1581ac1f7cfa6d709b99cd Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 23 Feb 2009 11:11:57 +1100 Subject: - (djm) [README] update for 5.2 --- ChangeLog | 1 + README | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1cb08f1ad..5a00264bd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,6 +9,7 @@ - djm@cvs.openbsd.org 2009/02/23 00:06:15 [version.h] openssh-5.2 + - (djm) [README] update for 5.2 20090222 - (djm) OpenBSD CVS Sync diff --git a/README b/README index 183d92f70..9de00c093 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -See http://www.openssh.com/txt/release-5.1 for the release notes. +See http://www.openssh.com/txt/release-5.2 for the release notes. - A Japanese translation of this document and of the OpenSSH FAQ is - available at http://www.unixuser.org/~haruyama/security/openssh/index.html @@ -62,4 +62,4 @@ References - [6] http://www.openbsd.org/cgi-bin/man.cgi?query=style&sektion=9 [7] http://www.openssh.com/faq.html -$Id: README,v 1.69 2008/07/21 08:21:52 djm Exp $ +$Id: README,v 1.70 2009/02/23 00:11:57 djm Exp $ -- cgit v1.2.3 From faec50b554730338c0e9f34966c11368920b6a78 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 23 Feb 2009 11:12:29 +1100 Subject: - (djm) Release openssh-5.2p1 --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index 5a00264bd..f802c0d7f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,6 +10,7 @@ [version.h] openssh-5.2 - (djm) [README] update for 5.2 + - (djm) Release openssh-5.2p1 20090222 - (djm) OpenBSD CVS Sync -- cgit v1.2.3