summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--compat.c10
-rw-r--r--compat.h3
-rw-r--r--kex.c8
4 files changed, 19 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index d722b4980..021ce2270 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,9 @@
3 - markus@cvs.openbsd.org 2001/04/30 11:18:52 3 - markus@cvs.openbsd.org 2001/04/30 11:18:52
4 [readconf.c readconf.h ssh.1 ssh.c sshconnect.c] 4 [readconf.c readconf.h ssh.1 ssh.c sshconnect.c]
5 implement 'ssh -b bind_address' like 'telnet -b' 5 implement 'ssh -b bind_address' like 'telnet -b'
6 - markus@cvs.openbsd.org 2001/04/30 15:50:46
7 [compat.c compat.h kex.c]
8 allow interop with weaker key generation used by ssh-2.0.x, x < 10
6 - (tim) [contrib/caldera/openssh.spec] add Requires line for Caldera 3.1 9 - (tim) [contrib/caldera/openssh.spec] add Requires line for Caldera 3.1
7 10
820010430 1120010430
@@ -5289,4 +5292,4 @@
5289 - Wrote replacements for strlcpy and mkdtemp 5292 - Wrote replacements for strlcpy and mkdtemp
5290 - Released 1.0pre1 5293 - Released 1.0pre1
5291 5294
5292$Id: ChangeLog,v 1.1186 2001/04/30 18:00:11 tim Exp $ 5295$Id: ChangeLog,v 1.1187 2001/04/30 23:06:57 mouring Exp $
diff --git a/compat.c b/compat.c
index 683da100f..faf66fe42 100644
--- a/compat.c
+++ b/compat.c
@@ -23,7 +23,7 @@
23 */ 23 */
24 24
25#include "includes.h" 25#include "includes.h"
26RCSID("$OpenBSD: compat.c,v 1.48 2001/04/29 19:16:52 markus Exp $"); 26RCSID("$OpenBSD: compat.c,v 1.49 2001/04/30 15:50:46 markus Exp $");
27 27
28#ifdef HAVE_LIBPCRE 28#ifdef HAVE_LIBPCRE
29# include <pcreposix.h> 29# include <pcreposix.h>
@@ -94,11 +94,17 @@ compat_datafellows(const char *version)
94 SSH_BUG_PKSERVICE|SSH_BUG_X11FWD| 94 SSH_BUG_PKSERVICE|SSH_BUG_X11FWD|
95 SSH_BUG_PKOK|SSH_BUG_RSASIGMD5| 95 SSH_BUG_PKOK|SSH_BUG_RSASIGMD5|
96 SSH_BUG_HBSERVICE|SSH_BUG_OPENFAILURE }, 96 SSH_BUG_HBSERVICE|SSH_BUG_OPENFAILURE },
97 { "^2\\.0\\.", SSH_BUG_SIGBLOB|SSH_BUG_HMAC| 97 { "^2\\.0\\.1[0-2]", SSH_BUG_SIGBLOB|SSH_BUG_HMAC|
98 SSH_OLD_SESSIONID|SSH_BUG_DEBUG| 98 SSH_OLD_SESSIONID|SSH_BUG_DEBUG|
99 SSH_BUG_PKSERVICE|SSH_BUG_X11FWD| 99 SSH_BUG_PKSERVICE|SSH_BUG_X11FWD|
100 SSH_BUG_PKAUTH|SSH_BUG_PKOK| 100 SSH_BUG_PKAUTH|SSH_BUG_PKOK|
101 SSH_BUG_RSASIGMD5|SSH_BUG_OPENFAILURE }, 101 SSH_BUG_RSASIGMD5|SSH_BUG_OPENFAILURE },
102 { "^2\\.0\\.", SSH_BUG_SIGBLOB|SSH_BUG_HMAC|
103 SSH_OLD_SESSIONID|SSH_BUG_DEBUG|
104 SSH_BUG_PKSERVICE|SSH_BUG_X11FWD|
105 SSH_BUG_PKAUTH|SSH_BUG_PKOK|
106 SSH_BUG_RSASIGMD5|SSH_BUG_OPENFAILURE|
107 SSH_BUG_DERIVEKEY },
102 { "^2\\.[23]\\.0", SSH_BUG_HMAC|SSH_BUG_RSASIGMD5 }, 108 { "^2\\.[23]\\.0", SSH_BUG_HMAC|SSH_BUG_RSASIGMD5 },
103 { "^2\\.3\\.", SSH_BUG_RSASIGMD5 }, 109 { "^2\\.3\\.", SSH_BUG_RSASIGMD5 },
104 { "^2\\.[2-9]\\.", 0 }, 110 { "^2\\.[2-9]\\.", 0 },
diff --git a/compat.h b/compat.h
index fa509c247..0ccc1ed37 100644
--- a/compat.h
+++ b/compat.h
@@ -21,7 +21,7 @@
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 */ 23 */
24/* RCSID("$OpenBSD: compat.h,v 1.24 2001/04/29 19:16:52 markus Exp $"); */ 24/* RCSID("$OpenBSD: compat.h,v 1.25 2001/04/30 15:50:46 markus Exp $"); */
25 25
26#ifndef COMPAT_H 26#ifndef COMPAT_H
27#define COMPAT_H 27#define COMPAT_H
@@ -49,6 +49,7 @@
49#define SSH_BUG_NOREKEY 0x00008000 49#define SSH_BUG_NOREKEY 0x00008000
50#define SSH_BUG_HBSERVICE 0x00010000 50#define SSH_BUG_HBSERVICE 0x00010000
51#define SSH_BUG_OPENFAILURE 0x00020000 51#define SSH_BUG_OPENFAILURE 0x00020000
52#define SSH_BUG_DERIVEKEY 0x00040000
52 53
53void enable_compat13(void); 54void enable_compat13(void);
54void enable_compat20(void); 55void enable_compat20(void);
diff --git a/kex.c b/kex.c
index 69ba102e1..6b68ba504 100644
--- a/kex.c
+++ b/kex.c
@@ -23,7 +23,7 @@
23 */ 23 */
24 24
25#include "includes.h" 25#include "includes.h"
26RCSID("$OpenBSD: kex.c,v 1.33 2001/04/05 10:42:50 markus Exp $"); 26RCSID("$OpenBSD: kex.c,v 1.34 2001/04/30 15:50:46 markus Exp $");
27 27
28#include <openssl/crypto.h> 28#include <openssl/crypto.h>
29 29
@@ -375,7 +375,8 @@ derive_key(Kex *kex, int id, int need, u_char *hash, BIGNUM *shared_secret)
375 375
376 /* K1 = HASH(K || H || "A" || session_id) */ 376 /* K1 = HASH(K || H || "A" || session_id) */
377 EVP_DigestInit(&md, evp_md); 377 EVP_DigestInit(&md, evp_md);
378 EVP_DigestUpdate(&md, buffer_ptr(&b), buffer_len(&b)); 378 if (!(datafellows & SSH_BUG_DERIVEKEY))
379 EVP_DigestUpdate(&md, buffer_ptr(&b), buffer_len(&b));
379 EVP_DigestUpdate(&md, hash, mdsz); 380 EVP_DigestUpdate(&md, hash, mdsz);
380 EVP_DigestUpdate(&md, &c, 1); 381 EVP_DigestUpdate(&md, &c, 1);
381 EVP_DigestUpdate(&md, kex->session_id, kex->session_id_len); 382 EVP_DigestUpdate(&md, kex->session_id, kex->session_id_len);
@@ -388,7 +389,8 @@ derive_key(Kex *kex, int id, int need, u_char *hash, BIGNUM *shared_secret)
388 */ 389 */
389 for (have = mdsz; need > have; have += mdsz) { 390 for (have = mdsz; need > have; have += mdsz) {
390 EVP_DigestInit(&md, evp_md); 391 EVP_DigestInit(&md, evp_md);
391 EVP_DigestUpdate(&md, buffer_ptr(&b), buffer_len(&b)); 392 if (!(datafellows & SSH_BUG_DERIVEKEY))
393 EVP_DigestUpdate(&md, buffer_ptr(&b), buffer_len(&b));
392 EVP_DigestUpdate(&md, hash, mdsz); 394 EVP_DigestUpdate(&md, hash, mdsz);
393 EVP_DigestUpdate(&md, digest, have); 395 EVP_DigestUpdate(&md, digest, have);
394 EVP_DigestFinal(&md, digest + have, NULL); 396 EVP_DigestFinal(&md, digest + have, NULL);