1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-03-22 06:38:37 -05:00

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.)

[originally from svn r2293]
This commit is contained in:
Jacob Nevins 2002-12-08 16:54:31 +00:00
parent 5d20178a12
commit 4ffd0ca9d1
2 changed files with 8 additions and 8 deletions

2
Recipe
View File

@ -98,7 +98,7 @@ NONSSH = telnet raw rlogin ldisc
# SSH back end (putty, plink, pscp, psftp). # SSH back end (putty, plink, pscp, psftp).
SSH = ssh sshcrc sshdes sshmd5 sshrsa sshrand sshsha sshblowf SSH = ssh sshcrc sshdes sshmd5 sshrsa sshrand sshsha sshblowf
+ sshdh sshcrcda sshpubk sshzlib sshdss x11fwd portfwd + sshdh sshcrcda sshpubk sshzlib sshdss x11fwd portfwd
+ sshaes sshsh512 sshbn + sshaes sshsh512 sshbn wildcard
WINSSH = SSH noise pageantc WINSSH = SSH noise pageantc
UXSSH = SSH uxnoise uxagentc UXSSH = SSH uxnoise uxagentc

14
ssh.c
View File

@ -1776,9 +1776,9 @@ static void ssh_detect_bugs(Ssh ssh, char *vstring)
if (cfg.sshbug_hmac2 == BUG_ON || if (cfg.sshbug_hmac2 == BUG_ON ||
(cfg.sshbug_hmac2 == BUG_AUTO && (cfg.sshbug_hmac2 == BUG_AUTO &&
(!strncmp(imp, "2.1.0", 5) || !strncmp(imp, "2.0.", 4) || (wc_match("2.1.0*", imp) || wc_match("2.0.*", imp) ||
!strncmp(imp, "2.2.0", 5) || !strncmp(imp, "2.3.0", 5) || wc_match("2.2.0*", imp) || wc_match("2.3.0*", imp) ||
!strncmp(imp, "2.1 ", 4)))) { wc_match("2.1 *", imp)))) {
/* /*
* These versions have the HMAC bug. * 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 || if (cfg.sshbug_derivekey2 == BUG_ON ||
(cfg.sshbug_derivekey2 == BUG_AUTO && (cfg.sshbug_derivekey2 == BUG_AUTO &&
(!strncmp(imp, "2.0.", 4)))) { (wc_match("2.0.*", imp)))) {
/* /*
* These versions have the key-derivation bug (failing to * These versions have the key-derivation bug (failing to
* include the literal shared secret in the hashes that * 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 || if (cfg.sshbug_rsapad2 == BUG_ON ||
(cfg.sshbug_rsapad2 == BUG_AUTO && (cfg.sshbug_rsapad2 == BUG_AUTO &&
((!strncmp(imp, "OpenSSH_2.", 10) && imp[10]>='5' && imp[10]<='9') || (wc_match("OpenSSH_2.[5-9]*", imp) ||
(!strncmp(imp, "OpenSSH_3.", 10) && imp[10]>='0' && imp[10]<='2')))){ wc_match("OpenSSH_3.[0-2]*", imp)))) {
/* /*
* These versions have the SSH2 RSA padding bug. * 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) { 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; ssh->remote_bugs |= BUG_SSH2_DH_GEX;
logevent("We believe remote version has SSH2 DH group exchange bug"); logevent("We believe remote version has SSH2 DH group exchange bug");