diff options
author | jsing <> | 2017-03-10 16:03:27 +0000 |
---|---|---|
committer | jsing <> | 2017-03-10 16:03:27 +0000 |
commit | efcbc859d153bd2908ab9c32fb042c03eb84d265 (patch) | |
tree | 87f5d914b19030ee7a5a08676faeef2fa8269f08 /src/lib/libssl/ssl_srvr.c | |
parent | 1cc414278817073fb56449c3b1ad7386acb12601 (diff) | |
download | openbsd-efcbc859d153bd2908ab9c32fb042c03eb84d265.tar.gz openbsd-efcbc859d153bd2908ab9c32fb042c03eb84d265.tar.bz2 openbsd-efcbc859d153bd2908ab9c32fb042c03eb84d265.zip |
Remove the handshake digests and related code, replacing remaining uses
with the handshake hash. For now tls1_digest_cached_records() is retained
to release the handshake buffer.
ok beck@ inoguchi@
Diffstat (limited to 'src/lib/libssl/ssl_srvr.c')
-rw-r--r-- | src/lib/libssl/ssl_srvr.c | 32 |
1 files changed, 8 insertions, 24 deletions
diff --git a/src/lib/libssl/ssl_srvr.c b/src/lib/libssl/ssl_srvr.c index a48cf246da..d98a76f8f0 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.10 2017/03/05 14:39:53 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_srvr.c,v 1.11 2017/03/10 16:03:27 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 | * |
@@ -493,18 +493,12 @@ ssl3_accept(SSL *s) | |||
493 | goto end; | 493 | goto end; |
494 | } | 494 | } |
495 | } else { | 495 | } else { |
496 | int offset = 0; | ||
497 | int dgst_num; | ||
498 | |||
499 | s->internal->state = SSL3_ST_SR_CERT_VRFY_A; | 496 | s->internal->state = SSL3_ST_SR_CERT_VRFY_A; |
500 | s->internal->init_num = 0; | 497 | s->internal->init_num = 0; |
501 | 498 | ||
502 | /* | 499 | /* |
503 | * We need to get hashes here so if there is | 500 | * We need to get hashes here so if there is |
504 | * a client cert, it can be verified | 501 | * a client cert, it can be verified. |
505 | * FIXME - digest processing for | ||
506 | * CertificateVerify should be generalized. | ||
507 | * But it is next step | ||
508 | */ | 502 | */ |
509 | if (S3I(s)->handshake_buffer) { | 503 | if (S3I(s)->handshake_buffer) { |
510 | if (!tls1_digest_cached_records(s)) { | 504 | if (!tls1_digest_cached_records(s)) { |
@@ -512,22 +506,12 @@ ssl3_accept(SSL *s) | |||
512 | goto end; | 506 | goto end; |
513 | } | 507 | } |
514 | } | 508 | } |
515 | for (dgst_num = 0; dgst_num < SSL_MAX_DIGEST; | 509 | if (!tls1_handshake_hash_value(s, |
516 | dgst_num++) | 510 | S3I(s)->tmp.cert_verify_md, |
517 | if (S3I(s)->handshake_dgst[dgst_num]) { | 511 | sizeof(S3I(s)->tmp.cert_verify_md), |
518 | int dgst_size; | 512 | NULL)) { |
519 | 513 | ret = -1; | |
520 | tls1_cert_verify_mac(s, | 514 | goto end; |
521 | EVP_MD_CTX_type( | ||
522 | S3I(s)->handshake_dgst[dgst_num]), | ||
523 | &(S3I(s)->tmp.cert_verify_md[offset])); | ||
524 | dgst_size = EVP_MD_CTX_size( | ||
525 | S3I(s)->handshake_dgst[dgst_num]); | ||
526 | if (dgst_size < 0) { | ||
527 | ret = -1; | ||
528 | goto end; | ||
529 | } | ||
530 | offset += dgst_size; | ||
531 | } | 515 | } |
532 | } | 516 | } |
533 | break; | 517 | break; |