summaryrefslogtreecommitdiff
path: root/mpaux.c
diff options
context:
space:
mode:
Diffstat (limited to 'mpaux.c')
-rw-r--r--mpaux.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/mpaux.c b/mpaux.c
index 7bc7c13b8..24e9ce138 100644
--- a/mpaux.c
+++ b/mpaux.c
@@ -15,7 +15,7 @@
15*/ 15*/
16 16
17#include "includes.h" 17#include "includes.h"
18RCSID("$Id: mpaux.c,v 1.7 1999/11/24 13:26:22 damien Exp $"); 18RCSID("$Id: mpaux.c,v 1.8 1999/12/13 23:47:16 damien Exp $");
19 19
20#include "getput.h" 20#include "getput.h"
21#include "xmalloc.h" 21#include "xmalloc.h"
@@ -35,17 +35,17 @@ compute_session_id(unsigned char session_id[16],
35 BIGNUM* host_key_n, 35 BIGNUM* host_key_n,
36 BIGNUM* session_key_n) 36 BIGNUM* session_key_n)
37{ 37{
38 unsigned int host_key_bits = BN_num_bits(host_key_n); 38 unsigned int host_key_bytes = BN_num_bytes(host_key_n);
39 unsigned int session_key_bits = BN_num_bits(session_key_n); 39 unsigned int session_key_bytes = BN_num_bytes(session_key_n);
40 unsigned int bytes = (host_key_bits + 7) / 8 + (session_key_bits + 7) / 8 + 8; 40 unsigned int bytes = host_key_bytes + session_key_bytes;
41 unsigned char *buf = xmalloc(bytes); 41 unsigned char *buf = xmalloc(bytes);
42 MD5_CTX md; 42 MD5_CTX md;
43 43
44 BN_bn2bin(host_key_n, buf); 44 BN_bn2bin(host_key_n, buf);
45 BN_bn2bin(session_key_n, buf + (host_key_bits + 7) / 8); 45 BN_bn2bin(session_key_n, buf + host_key_bytes);
46 memcpy(buf + (host_key_bits + 7) / 8 + (session_key_bits + 7) / 8, cookie, 8);
47 MD5_Init(&md); 46 MD5_Init(&md);
48 MD5_Update(&md, buf, bytes); 47 MD5_Update(&md, buf, bytes);
48 MD5_Update(&md, cookie, 8);
49 MD5_Final(session_id, &md); 49 MD5_Final(session_id, &md);
50 memset(buf, 0, bytes); 50 memset(buf, 0, bytes);
51 xfree(buf); 51 xfree(buf);