1 |
< |
/* $OpenBSD: kexdh.c,v 1.23 2006/08/03 03:34:42 deraadt Exp $ */ |
1 |
> |
/* $OpenBSD: kexdh.c,v 1.24 2014/01/09 23:20:00 djm Exp $ */ |
2 |
|
/* |
3 |
|
* Copyright (c) 2001 Markus Friedl. All rights reserved. |
4 |
|
* |
36 |
|
#include "key.h" |
37 |
|
#include "cipher.h" |
38 |
|
#include "kex.h" |
39 |
+ |
#include "digest.h" |
40 |
+ |
#include "log.h" |
41 |
|
|
42 |
|
void |
43 |
|
kex_dh_hash( |
52 |
|
u_char **hash, u_int *hashlen) |
53 |
|
{ |
54 |
|
Buffer b; |
55 |
< |
static u_char digest[EVP_MAX_MD_SIZE]; |
54 |
< |
const EVP_MD *evp_md = EVP_sha1(); |
55 |
< |
EVP_MD_CTX md; |
55 |
> |
static u_char digest[SSH_DIGEST_MAX_LENGTH]; |
56 |
|
|
57 |
|
buffer_init(&b); |
58 |
|
buffer_put_cstring(&b, client_version_string); |
74 |
|
#ifdef DEBUG_KEX |
75 |
|
buffer_dump(&b); |
76 |
|
#endif |
77 |
< |
EVP_DigestInit(&md, evp_md); |
78 |
< |
EVP_DigestUpdate(&md, buffer_ptr(&b), buffer_len(&b)); |
79 |
< |
EVP_DigestFinal(&md, digest, NULL); |
77 |
> |
if (ssh_digest_buffer(SSH_DIGEST_SHA1, &b, digest, sizeof(digest)) != 0) |
78 |
> |
fatal("%s: ssh_digest_buffer failed", __func__); |
79 |
|
|
80 |
|
buffer_free(&b); |
81 |
|
|
82 |
|
#ifdef DEBUG_KEX |
83 |
< |
dump_digest("hash", digest, EVP_MD_size(evp_md)); |
83 |
> |
dump_digest("hash", digest, ssh_digest_bytes(SSH_DIGEST_SHA1)); |
84 |
|
#endif |
85 |
|
*hash = digest; |
86 |
< |
*hashlen = EVP_MD_size(evp_md); |
86 |
> |
*hashlen = ssh_digest_bytes(SSH_DIGEST_SHA1); |
87 |
|
} |