diff options
Diffstat (limited to 'src/lib/libssl/ssl_clnt.c')
-rw-r--r-- | src/lib/libssl/ssl_clnt.c | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/src/lib/libssl/ssl_clnt.c b/src/lib/libssl/ssl_clnt.c index da4b966bc6..223190c0a0 100644 --- a/src/lib/libssl/ssl_clnt.c +++ b/src/lib/libssl/ssl_clnt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_clnt.c,v 1.6 2017/02/28 14:08:49 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_clnt.c,v 1.7 2017/03/01 14:01:24 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -1472,29 +1472,20 @@ ssl3_get_server_key_exchange(SSL *s) | |||
1472 | } | 1472 | } |
1473 | 1473 | ||
1474 | if (pkey->type == EVP_PKEY_RSA && !SSL_USE_SIGALGS(s)) { | 1474 | if (pkey->type == EVP_PKEY_RSA && !SSL_USE_SIGALGS(s)) { |
1475 | int num; | ||
1476 | |||
1477 | j = 0; | 1475 | j = 0; |
1478 | q = md_buf; | 1476 | q = md_buf; |
1479 | for (num = 2; num > 0; num--) { | 1477 | if (!EVP_DigestInit_ex(&md_ctx, EVP_md5_sha1(), NULL)) { |
1480 | if (!EVP_DigestInit_ex(&md_ctx, | 1478 | al = SSL_AD_INTERNAL_ERROR; |
1481 | (num == 2) ? EVP_md5() : EVP_sha1(), | 1479 | goto f_err; |
1482 | NULL)) { | ||
1483 | al = SSL_AD_INTERNAL_ERROR; | ||
1484 | goto f_err; | ||
1485 | } | ||
1486 | EVP_DigestUpdate(&md_ctx, | ||
1487 | s->s3->client_random, | ||
1488 | SSL3_RANDOM_SIZE); | ||
1489 | EVP_DigestUpdate(&md_ctx, | ||
1490 | s->s3->server_random, | ||
1491 | SSL3_RANDOM_SIZE); | ||
1492 | EVP_DigestUpdate(&md_ctx, param, param_len); | ||
1493 | EVP_DigestFinal_ex(&md_ctx, q, | ||
1494 | (unsigned int *)&i); | ||
1495 | q += i; | ||
1496 | j += i; | ||
1497 | } | 1480 | } |
1481 | EVP_DigestUpdate(&md_ctx, s->s3->client_random, | ||
1482 | SSL3_RANDOM_SIZE); | ||
1483 | EVP_DigestUpdate(&md_ctx, s->s3->server_random, | ||
1484 | SSL3_RANDOM_SIZE); | ||
1485 | EVP_DigestUpdate(&md_ctx, param, param_len); | ||
1486 | EVP_DigestFinal_ex(&md_ctx, q, (unsigned int *)&i); | ||
1487 | q += i; | ||
1488 | j += i; | ||
1498 | i = RSA_verify(NID_md5_sha1, md_buf, j, | 1489 | i = RSA_verify(NID_md5_sha1, md_buf, j, |
1499 | p, n, pkey->pkey.rsa); | 1490 | p, n, pkey->pkey.rsa); |
1500 | if (i < 0) { | 1491 | if (i < 0) { |