]> andersk Git - openssh.git/blobdiff - monitor_wrap.c
- millert@cvs.openbsd.org 2002/06/28 01:49:31
[openssh.git] / monitor_wrap.c
index e408746275660a1c0a6a01b8e3f3c8997c9d354c..938a67d90f49e3cd857c0961e01028aa61912a53 100644 (file)
@@ -25,7 +25,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: monitor_wrap.c,v 1.10 2002/06/19 00:27:55 deraadt Exp $");
+RCSID("$OpenBSD: monitor_wrap.c,v 1.12 2002/06/26 15:00:32 deraadt Exp $");
 
 #include <openssl/bn.h>
 #include <openssl/dh.h>
@@ -411,7 +411,7 @@ mm_newkeys_from_blob(u_char *blob, int blen)
        enc->key = buffer_get_string(&b, &enc->key_len);
        enc->iv = buffer_get_string(&b, &len);
        if (len != enc->block_size)
-               fatal("%s: bad ivlen: expected %d != %d", __func__,
+               fatal("%s: bad ivlen: expected %u != %u", __func__,
                    enc->block_size, len);
 
        if (enc->name == NULL || cipher_by_name(enc->name) != enc->cipher)
@@ -425,7 +425,7 @@ mm_newkeys_from_blob(u_char *blob, int blen)
        mac->enabled = buffer_get_int(&b);
        mac->key = buffer_get_string(&b, &len);
        if (len > mac->key_len)
-               fatal("%s: bad mac key length: %d > %d", __func__, len,
+               fatal("%s: bad mac key length: %u > %d", __func__, len,
                    mac->key_len);
        mac->key_len = len;
 
@@ -436,7 +436,7 @@ mm_newkeys_from_blob(u_char *blob, int blen)
 
        len = buffer_len(&b);
        if (len != 0)
-               error("newkeys_from_blob: remaining bytes in blob %d", len);
+               error("newkeys_from_blob: remaining bytes in blob %u", len);
        buffer_free(&b);
        return (newkey);
 }
@@ -520,13 +520,21 @@ mm_send_keystate(struct monitor *pmonitor)
 
        if (!compat20) {
                u_char iv[24];
-               int ivlen;
+               u_char *key;
+               u_int ivlen, keylen;
 
                buffer_put_int(&m, packet_get_protocol_flags());
 
                buffer_put_int(&m, packet_get_ssh1_cipher());
 
-               debug3("%s: Sending ssh1 IV", __func__);
+               debug3("%s: Sending ssh1 KEY+IV", __func__);
+               keylen = packet_get_encryption_key(NULL);
+               key = xmalloc(keylen+1);        /* add 1 if keylen == 0 */
+               keylen = packet_get_encryption_key(key);
+               buffer_put_string(&m, key, keylen);
+               memset(key, 0, keylen);
+               xfree(key);
+
                ivlen = packet_get_keyiv_len(MODE_OUT);
                packet_get_keyiv(MODE_OUT, iv, ivlen);
                buffer_put_string(&m, iv, ivlen);
This page took 0.29884 seconds and 4 git commands to generate.