source: trunk/third/openssh/mpaux.c @ 16801

Revision 16801, 1.3 KB checked in by ghudson, 23 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r16800, which included commits to RCS files with non-trunk default branches.
Line 
1/*
2 * Author: Tatu Ylonen <ylo@cs.hut.fi>
3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
4 *                    All rights reserved
5 * This file contains various auxiliary functions related to multiple
6 * precision integers.
7 *
8 * As far as I am concerned, the code I have written for this software
9 * can be used freely for any purpose.  Any derived versions of this
10 * software must be clearly marked as such, and if the derived work is
11 * incompatible with the protocol description in the RFC file, it must be
12 * called by a name other than "ssh" or "Secure Shell".
13 */
14
15#include "includes.h"
16RCSID("$OpenBSD: mpaux.c,v 1.16 2001/02/08 19:30:52 itojun Exp $");
17
18#include <openssl/bn.h>
19#include "getput.h"
20#include "xmalloc.h"
21
22#include <openssl/md5.h>
23
24#include "mpaux.h"
25
26void
27compute_session_id(u_char session_id[16],
28    u_char cookie[8],
29    BIGNUM* host_key_n,
30    BIGNUM* session_key_n)
31{
32        u_int host_key_bytes = BN_num_bytes(host_key_n);
33        u_int session_key_bytes = BN_num_bytes(session_key_n);
34        u_int bytes = host_key_bytes + session_key_bytes;
35        u_char *buf = xmalloc(bytes);
36        MD5_CTX md;
37
38        BN_bn2bin(host_key_n, buf);
39        BN_bn2bin(session_key_n, buf + host_key_bytes);
40        MD5_Init(&md);
41        MD5_Update(&md, buf, bytes);
42        MD5_Update(&md, cookie, 8);
43        MD5_Final(session_id, &md);
44        memset(buf, 0, bytes);
45        xfree(buf);
46}
Note: See TracBrowser for help on using the repository browser.