From 831301f67b585b2981a02375b77ea9e53393a983 Mon Sep 17 00:00:00 2001 From: jacob Date: Sun, 8 Dec 2002 16:54:31 +0000 Subject: [PATCH] Modify bug-compatibility checks to use wildcards. Should have exactly the same behaviour as before (tested a little bit), but should be easier to expand. (This is the easy bit -- work still needs to be done to fix ssh2-keyderive-nonbug, vshell-no-bug-compat, etc -- but should be easier now.) git-svn-id: svn://svn.tartarus.org/sgt/putty@2293 cda61777-01e9-0310-a592-d414129be87e --- Recipe | 2 +- ssh.c | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Recipe b/Recipe index 778eb0d0..3b1ed12d 100644 --- a/Recipe +++ b/Recipe @@ -98,7 +98,7 @@ NONSSH = telnet raw rlogin ldisc # SSH back end (putty, plink, pscp, psftp). SSH = ssh sshcrc sshdes sshmd5 sshrsa sshrand sshsha sshblowf + sshdh sshcrcda sshpubk sshzlib sshdss x11fwd portfwd - + sshaes sshsh512 sshbn + + sshaes sshsh512 sshbn wildcard WINSSH = SSH noise pageantc UXSSH = SSH uxnoise uxagentc diff --git a/ssh.c b/ssh.c index 99721f85..6c60bd2a 100644 --- a/ssh.c +++ b/ssh.c @@ -1776,9 +1776,9 @@ static void ssh_detect_bugs(Ssh ssh, char *vstring) if (cfg.sshbug_hmac2 == BUG_ON || (cfg.sshbug_hmac2 == BUG_AUTO && - (!strncmp(imp, "2.1.0", 5) || !strncmp(imp, "2.0.", 4) || - !strncmp(imp, "2.2.0", 5) || !strncmp(imp, "2.3.0", 5) || - !strncmp(imp, "2.1 ", 4)))) { + (wc_match("2.1.0*", imp) || wc_match("2.0.*", imp) || + wc_match("2.2.0*", imp) || wc_match("2.3.0*", imp) || + wc_match("2.1 *", imp)))) { /* * These versions have the HMAC bug. */ @@ -1788,7 +1788,7 @@ static void ssh_detect_bugs(Ssh ssh, char *vstring) if (cfg.sshbug_derivekey2 == BUG_ON || (cfg.sshbug_derivekey2 == BUG_AUTO && - (!strncmp(imp, "2.0.", 4)))) { + (wc_match("2.0.*", imp)))) { /* * These versions have the key-derivation bug (failing to * include the literal shared secret in the hashes that @@ -1800,8 +1800,8 @@ static void ssh_detect_bugs(Ssh ssh, char *vstring) if (cfg.sshbug_rsapad2 == BUG_ON || (cfg.sshbug_rsapad2 == BUG_AUTO && - ((!strncmp(imp, "OpenSSH_2.", 10) && imp[10]>='5' && imp[10]<='9') || - (!strncmp(imp, "OpenSSH_3.", 10) && imp[10]>='0' && imp[10]<='2')))){ + (wc_match("OpenSSH_2.[5-9]*", imp) || + wc_match("OpenSSH_3.[0-2]*", imp)))) { /* * These versions have the SSH2 RSA padding bug. */ @@ -1811,7 +1811,7 @@ static void ssh_detect_bugs(Ssh ssh, char *vstring) if (cfg.sshbug_dhgex2 == BUG_ON) { /* - * These versions have the SSH2 DH GEX bug. + * User specified the SSH2 DH GEX bug. */ ssh->remote_bugs |= BUG_SSH2_DH_GEX; logevent("We believe remote version has SSH2 DH group exchange bug"); -- 2.11.0