summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2017-03-01 14:01:24 +0000
committerjsing <>2017-03-01 14:01:24 +0000
commit613ead8355aec8a2fe15dc50bc542e103c781b55 (patch)
treef0f805682bcc8d26903692648cf6f3cfb6dab422
parent0cc22310c7e25a62c19ace035c038ac7a66671dd (diff)
downloadopenbsd-613ead8355aec8a2fe15dc50bc542e103c781b55.tar.gz
openbsd-613ead8355aec8a2fe15dc50bc542e103c781b55.tar.bz2
openbsd-613ead8355aec8a2fe15dc50bc542e103c781b55.zip
Convert ssl3_{get,send}_server_key_exchange() to EVP_md5_sha1().
ok inoguchi@
-rw-r--r--src/lib/libssl/ssl_algs.c4
-rw-r--r--src/lib/libssl/ssl_clnt.c33
-rw-r--r--src/lib/libssl/ssl_srvr.c36
3 files changed, 29 insertions, 44 deletions
diff --git a/src/lib/libssl/ssl_algs.c b/src/lib/libssl/ssl_algs.c
index ee1919c725..efbf1a4f31 100644
--- a/src/lib/libssl/ssl_algs.c
+++ b/src/lib/libssl/ssl_algs.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_algs.c,v 1.23 2016/11/06 12:08:32 jsing Exp $ */ 1/* $OpenBSD: ssl_algs.c,v 1.24 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 *
@@ -101,8 +101,10 @@ SSL_library_init(void)
101#endif 101#endif
102 102
103 EVP_add_digest(EVP_md5()); 103 EVP_add_digest(EVP_md5());
104 EVP_add_digest(EVP_md5_sha1());
104 EVP_add_digest_alias(SN_md5, "ssl2-md5"); 105 EVP_add_digest_alias(SN_md5, "ssl2-md5");
105 EVP_add_digest_alias(SN_md5, "ssl3-md5"); 106 EVP_add_digest_alias(SN_md5, "ssl3-md5");
107
106 EVP_add_digest(EVP_sha1()); /* RSA with sha1 */ 108 EVP_add_digest(EVP_sha1()); /* RSA with sha1 */
107 EVP_add_digest_alias(SN_sha1, "ssl3-sha1"); 109 EVP_add_digest_alias(SN_sha1, "ssl3-sha1");
108 EVP_add_digest_alias(SN_sha1WithRSAEncryption, SN_sha1WithRSA); 110 EVP_add_digest_alias(SN_sha1WithRSAEncryption, SN_sha1WithRSA);
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) {
diff --git a/src/lib/libssl/ssl_srvr.c b/src/lib/libssl/ssl_srvr.c
index 8e7c1f4418..ddf8755707 100644
--- a/src/lib/libssl/ssl_srvr.c
+++ b/src/lib/libssl/ssl_srvr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_srvr.c,v 1.7 2017/02/28 14:08:50 jsing Exp $ */ 1/* $OpenBSD: ssl_srvr.c,v 1.8 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 *
@@ -1445,16 +1445,13 @@ ssl3_send_server_key_exchange(SSL *s)
1445 unsigned char *params = NULL; 1445 unsigned char *params = NULL;
1446 size_t params_len; 1446 size_t params_len;
1447 unsigned char *q; 1447 unsigned char *q;
1448 int j, num;
1449 unsigned char md_buf[MD5_DIGEST_LENGTH + SHA_DIGEST_LENGTH]; 1448 unsigned char md_buf[MD5_DIGEST_LENGTH + SHA_DIGEST_LENGTH];
1450 unsigned int u; 1449 unsigned int u;
1451 EVP_PKEY *pkey; 1450 EVP_PKEY *pkey;
1452 const EVP_MD *md = NULL; 1451 const EVP_MD *md = NULL;
1453 unsigned char *p, *d; 1452 unsigned char *p, *d;
1454 int al, i; 1453 int al, i, j, n, kn;
1455 unsigned long type; 1454 unsigned long type;
1456 int n;
1457 int kn;
1458 BUF_MEM *buf; 1455 BUF_MEM *buf;
1459 EVP_MD_CTX md_ctx; 1456 EVP_MD_CTX md_ctx;
1460 1457
@@ -1522,23 +1519,18 @@ ssl3_send_server_key_exchange(SSL *s)
1522 if (pkey->type == EVP_PKEY_RSA && !SSL_USE_SIGALGS(s)) { 1519 if (pkey->type == EVP_PKEY_RSA && !SSL_USE_SIGALGS(s)) {
1523 q = md_buf; 1520 q = md_buf;
1524 j = 0; 1521 j = 0;
1525 for (num = 2; num > 0; num--) { 1522 if (!EVP_DigestInit_ex(&md_ctx, EVP_md5_sha1(),
1526 if (!EVP_DigestInit_ex(&md_ctx, 1523 NULL))
1527 (num == 2) ? EVP_md5() : EVP_sha1(), 1524 goto err;
1528 NULL)) 1525 EVP_DigestUpdate(&md_ctx, s->s3->client_random,
1529 goto err; 1526 SSL3_RANDOM_SIZE);
1530 EVP_DigestUpdate(&md_ctx, 1527 EVP_DigestUpdate(&md_ctx, s->s3->server_random,
1531 s->s3->client_random, 1528 SSL3_RANDOM_SIZE);
1532 SSL3_RANDOM_SIZE); 1529 EVP_DigestUpdate(&md_ctx, d, n);
1533 EVP_DigestUpdate(&md_ctx, 1530 EVP_DigestFinal_ex(&md_ctx, q,
1534 s->s3->server_random, 1531 (unsigned int *)&i);
1535 SSL3_RANDOM_SIZE); 1532 q += i;
1536 EVP_DigestUpdate(&md_ctx, d, n); 1533 j += i;
1537 EVP_DigestFinal_ex(&md_ctx, q,
1538 (unsigned int *)&i);
1539 q += i;
1540 j += i;
1541 }
1542 if (RSA_sign(NID_md5_sha1, md_buf, j, 1534 if (RSA_sign(NID_md5_sha1, md_buf, j,
1543 &(p[2]), &u, pkey->pkey.rsa) <= 0) { 1535 &(p[2]), &u, pkey->pkey.rsa) <= 0) {
1544 SSLerror(s, ERR_R_RSA_LIB); 1536 SSLerror(s, ERR_R_RSA_LIB);