]> andersk Git - openssh.git/commitdiff
- (djm) Bug #138: Make protocol 1 blowfish work with old OpenSSL.
authordjm <djm>
Tue, 10 Sep 2002 12:26:17 +0000 (12:26 +0000)
committerdjm <djm>
Tue, 10 Sep 2002 12:26:17 +0000 (12:26 +0000)
   Patch from Robert Halubek <rob@adso.com.pl>

ChangeLog
cipher.c

index 44464f28dcf4728285bb4972ac82d7cc5d7ed6aa..070e02283f822ccae039a5aa6377e46c074de4da 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,8 @@
 20020910
  - (djm) Bug #365: Read /.ssh/environment properly under CygWin. 
    Patch from Mark Bradshaw <bradshaw@staff.crosswalk.com>
+ - (djm) Bug #138: Make protocol 1 blowfish work with old OpenSSL. 
+   Patch from Robert Halubek <rob@adso.com.pl>
 
 20020905 
  - (djm) OpenBSD CVS Sync
index 9e8ef999b8212a042b07bdedf5c0be319fd91fb4..1933d3eab4f7fd0f935e4d1cf797013657646d12 100644 (file)
--- a/cipher.c
+++ b/cipher.c
@@ -437,6 +437,18 @@ swap_bytes(const u_char *src, u_char *dst, int n)
        }
 }
 
+#ifdef SSH_OLD_EVP
+static void bf_ssh1_init (EVP_CIPHER_CTX * ctx, const unsigned char *key,
+                         const unsigned char *iv, int enc)
+{
+       if (iv != NULL)
+               memcpy (&(ctx->oiv[0]), iv, 8);
+       memcpy (&(ctx->iv[0]), &(ctx->oiv[0]), 8);
+       if (key != NULL)
+               BF_set_key (&(ctx->c.bf_ks), EVP_CIPHER_CTX_key_length (ctx),
+                           key);
+}
+#endif
 static int (*orig_bf)(EVP_CIPHER_CTX *, u_char *, const u_char *, u_int) = NULL;
 
 static int
@@ -458,6 +470,9 @@ evp_ssh1_bf(void)
        memcpy(&ssh1_bf, EVP_bf_cbc(), sizeof(EVP_CIPHER));
        orig_bf = ssh1_bf.do_cipher;
        ssh1_bf.nid = NID_undef;
+#ifdef SSH_OLD_EVP
+       ssh1_bf.init = bf_ssh1_init;
+#endif
        ssh1_bf.do_cipher = bf_ssh1_cipher;
        ssh1_bf.key_len = 32;
        return (&ssh1_bf);
This page took 0.070571 seconds and 5 git commands to generate.