diff options
author | Damien Miller <djm@mindrot.org> | 2000-10-14 16:23:11 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2000-10-14 16:23:11 +1100 |
commit | 874d77bb134a21a5cf625956b60173376a993ba8 (patch) | |
tree | 93dd73b2ff1fbf0ad5f3978a2c4e0d8438a0bf7c /compat.c | |
parent | 89d9796fbedef4eed6956a2c095c7cc25330c28d (diff) |
- (djm) Big OpenBSD sync:
- markus@cvs.openbsd.org 2000/09/30 10:27:44
[log.c]
allow loglevel debug
- markus@cvs.openbsd.org 2000/10/03 11:59:57
[packet.c]
hmac->mac
- markus@cvs.openbsd.org 2000/10/03 12:03:03
[auth-krb4.c auth-passwd.c auth-rh-rsa.c auth-rhosts.c auth-rsa.c auth1.c]
move fake-auth from auth1.c to individual auth methods, disables s/key in
debug-msg
- markus@cvs.openbsd.org 2000/10/03 12:16:48
ssh.c
do not resolve canonname, i have no idea why this was added oin ossh
- markus@cvs.openbsd.org 2000/10/09 15:30:44
ssh-keygen.1 ssh-keygen.c
-X now reads private ssh.com DSA keys, too.
- markus@cvs.openbsd.org 2000/10/09 15:32:34
auth-options.c
clear options on every call.
- markus@cvs.openbsd.org 2000/10/09 15:51:00
authfd.c authfd.h
interop with ssh-agent2, from <res@shore.net>
- markus@cvs.openbsd.org 2000/10/10 14:20:45
compat.c
use rexexp for version string matching
- provos@cvs.openbsd.org 2000/10/10 22:02:18
[kex.c kex.h myproposal.h ssh.h ssh2.h sshconnect2.c sshd.c dh.c dh.h]
First rough implementation of the diffie-hellman group exchange. The
client can ask the server for bigger groups to perform the diffie-hellman
in, thus increasing the attack complexity when using ciphers with longer
keys. University of Windsor provided network, T the company.
- markus@cvs.openbsd.org 2000/10/11 13:59:52
[auth-rsa.c auth2.c]
clear auth options unless auth sucessfull
- markus@cvs.openbsd.org 2000/10/11 14:00:27
[auth-options.h]
clear auth options unless auth sucessfull
- markus@cvs.openbsd.org 2000/10/11 14:03:27
[scp.1 scp.c]
support 'scp -o' with help from mouring@pconline.com
- markus@cvs.openbsd.org 2000/10/11 14:11:35
[dh.c]
Wall
- markus@cvs.openbsd.org 2000/10/11 14:14:40
[auth.h auth2.c readconf.c readconf.h readpass.c servconf.c servconf.h]
[ssh.h sshconnect2.c sshd_config auth2-skey.c cli.c cli.h]
add support for s/key (kbd-interactive) to ssh2, based on work by
mkiernan@avantgo.com and me
- markus@cvs.openbsd.org 2000/10/11 14:27:24
[auth.c auth1.c auth2.c authfile.c cipher.c cipher.h kex.c kex.h]
[myproposal.h packet.c readconf.c session.c ssh.c ssh.h sshconnect1.c]
[sshconnect2.c sshd.c]
new cipher framework
- markus@cvs.openbsd.org 2000/10/11 14:45:21
[cipher.c]
remove DES
- markus@cvs.openbsd.org 2000/10/12 03:59:20
[cipher.c cipher.h sshconnect1.c sshconnect2.c sshd.c]
enable DES in SSH-1 clients only
- markus@cvs.openbsd.org 2000/10/12 08:21:13
[kex.h packet.c]
remove unused
- markus@cvs.openbsd.org 2000/10/13 12:34:46
[sshd.c]
Kludge for F-Secure Macintosh < 1.0.2; appro@fy.chalmers.se
- markus@cvs.openbsd.org 2000/10/13 12:59:15
[cipher.c cipher.h myproposal.h rijndael.c rijndael.h]
rijndael/aes support
- markus@cvs.openbsd.org 2000/10/13 13:10:54
[sshd.8]
more info about -V
- markus@cvs.openbsd.org 2000/10/13 13:12:02
[myproposal.h]
prefer no compression
Diffstat (limited to 'compat.c')
-rw-r--r-- | compat.c | 41 |
1 files changed, 27 insertions, 14 deletions
@@ -23,12 +23,13 @@ | |||
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include "includes.h" | 25 | #include "includes.h" |
26 | RCSID("$OpenBSD: compat.c,v 1.23 2000/09/07 21:13:37 markus Exp $"); | 26 | RCSID("$OpenBSD: compat.c,v 1.24 2000/10/10 20:20:45 markus Exp $"); |
27 | 27 | ||
28 | #include "ssh.h" | 28 | #include "ssh.h" |
29 | #include "packet.h" | 29 | #include "packet.h" |
30 | #include "xmalloc.h" | 30 | #include "xmalloc.h" |
31 | #include "compat.h" | 31 | #include "compat.h" |
32 | #include <regex.h> | ||
32 | 33 | ||
33 | int compat13 = 0; | 34 | int compat13 = 0; |
34 | int compat20 = 0; | 35 | int compat20 = 0; |
@@ -50,27 +51,39 @@ enable_compat13(void) | |||
50 | void | 51 | void |
51 | compat_datafellows(const char *version) | 52 | compat_datafellows(const char *version) |
52 | { | 53 | { |
53 | int i; | 54 | int i, ret; |
54 | size_t len; | 55 | char ebuf[1024]; |
55 | struct { | 56 | regex_t reg; |
56 | char *version; | 57 | static struct { |
58 | char *pat; | ||
57 | int bugs; | 59 | int bugs; |
58 | } check[] = { | 60 | } check[] = { |
59 | {"2.1.0", SSH_BUG_SIGBLOB|SSH_BUG_HMAC}, | 61 | {"^.*MindTerm", 0}, |
60 | {"2.0.1", SSH_BUG_SIGBLOB|SSH_BUG_HMAC|SSH_BUG_PUBKEYAUTH|SSH_BUG_X11FWD}, | 62 | {"^2\\.1\\.0 ", SSH_BUG_SIGBLOB|SSH_BUG_HMAC}, |
61 | {"2.", SSH_BUG_HMAC|SSH_COMPAT_SESSIONID_ENCODING}, | 63 | {"^2\\.0\\.", SSH_BUG_SIGBLOB|SSH_BUG_HMAC|SSH_BUG_PUBKEYAUTH|SSH_BUG_X11FWD}, |
62 | {NULL, 0} | 64 | {"^2\\.[23]\\.0 ", SSH_BUG_HMAC|SSH_COMPAT_SESSIONID_ENCODING}, |
65 | {"^2\\.[2-9]\\.", SSH_COMPAT_SESSIONID_ENCODING}, | ||
66 | {"^2\\.", SSH_BUG_HMAC|SSH_COMPAT_SESSIONID_ENCODING}, | ||
67 | {NULL, 0} | ||
63 | }; | 68 | }; |
64 | /* process table, return first match */ | 69 | /* process table, return first match */ |
65 | for (i = 0; check[i].version; i++) { | 70 | for (i = 0; check[i].pat; i++) { |
66 | len = strlen(check[i].version); | 71 | ret = regcomp(®, check[i].pat, REG_EXTENDED|REG_NOSUB); |
67 | if (strlen(version) >= len && | 72 | if (ret != 0) { |
68 | (strncmp(version, check[i].version, len) == 0)) { | 73 | regerror(ret, ®, ebuf, sizeof(ebuf)); |
69 | verbose("datafellows: %.200s", version); | 74 | ebuf[sizeof(ebuf)-1] = '\0'; |
75 | error("regerror: %s", ebuf); | ||
76 | continue; | ||
77 | } | ||
78 | ret = regexec(®, version, 0, NULL, 0); | ||
79 | regfree(®); | ||
80 | if (ret == 0) { | ||
81 | debug("match: %s pat %s\n", version, check[i].pat); | ||
70 | datafellows = check[i].bugs; | 82 | datafellows = check[i].bugs; |
71 | return; | 83 | return; |
72 | } | 84 | } |
73 | } | 85 | } |
86 | debug("no match: %s", version); | ||
74 | } | 87 | } |
75 | 88 | ||
76 | #define SEP "," | 89 | #define SEP "," |