]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: Make sure puttygen is new enough to successfully run the
authordtucker@openbsd.org <dtucker@openbsd.org>
Wed, 17 Feb 2021 03:59:00 +0000 (03:59 +0000)
committerDarren Tucker <dtucker@dtucker.net>
Wed, 17 Feb 2021 04:08:29 +0000 (15:08 +1100)
PuTTY interop tests, otherwise skip them.

OpenBSD-Regress-ID: 34565bb50b8aec58331ed02a5e9e0a9a929bef51

regress/test-exec.sh

index db5d2f9c90c61389b4128e2583f643e8c0616d24..11475938bed6a199d5e54cc969fda2e7f1b22410 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: test-exec.sh,v 1.76 2020/04/04 23:04:41 dtucker Exp $
+#      $OpenBSD: test-exec.sh,v 1.77 2021/02/17 03:59:00 dtucker Exp $
 #      Placed in the Public Domain.
 
 #SUDO=sudo
@@ -601,10 +601,11 @@ if test -x "$CONCH" ; then
        REGRESS_INTEROP_CONCH=yes
 fi
 
-# If PuTTY is present and we are running a PuTTY test, prepare keys and
-# configuration
+# If PuTTY is present, new enough and we are running a PuTTY test, prepare
+# keys and configuration.
 REGRESS_INTEROP_PUTTY=no
-if test -x "$PUTTYGEN" -a -x "$PLINK" ; then
+if test -x "$PUTTYGEN" -a -x "$PLINK" &&
+    "$PUTTYGEN" --help 2>&1 | grep -- --new-passphrase >/dev/null; then
        REGRESS_INTEROP_PUTTY=yes
 fi
 case "$SCRIPT" in
@@ -617,13 +618,13 @@ if test "$REGRESS_INTEROP_PUTTY" = "yes" ; then
 
        # Add a PuTTY key to authorized_keys
        rm -f ${OBJ}/putty.rsa2
-       if ! puttygen -t rsa -o ${OBJ}/putty.rsa2 \
+       if ! "$PUTTYGEN" -t rsa -o ${OBJ}/putty.rsa2 \
            --random-device=/dev/urandom \
            --new-passphrase /dev/null < /dev/null > /dev/null; then
-               echo "Your installed version of PuTTY is too old to support --new-passphrase; trying without (may require manual interaction) ..." >&2
-               puttygen -t rsa -o ${OBJ}/putty.rsa2 < /dev/null > /dev/null
+               echo "Your installed version of PuTTY is too old to support --new-passphrase, skipping test" >&2
+               exit 1
        fi
-       puttygen -O public-openssh ${OBJ}/putty.rsa2 \
+       "$PUTTYGEN" -O public-openssh ${OBJ}/putty.rsa2 \
            >> $OBJ/authorized_keys_$USER
 
        # Convert rsa2 host key to PuTTY format
@@ -647,8 +648,6 @@ if test "$REGRESS_INTEROP_PUTTY" = "yes" ; then
 
        PUTTYDIR=${OBJ}/.putty
        export PUTTYDIR
-
-       REGRESS_INTEROP_PUTTY=yes
 fi
 
 # create a proxy version of the client config