diff options
author | tb <> | 2021-12-09 17:45:49 +0000 |
---|---|---|
committer | tb <> | 2021-12-09 17:45:49 +0000 |
commit | 7f76eb8796847dbd2050d240c944670b9a00e1c0 (patch) | |
tree | f2ee1942a8e0c77ea8238f6aac97bd6442d88a90 | |
parent | e7add5a48f0fbacb763e7b236ce4313a52b67073 (diff) | |
download | openbsd-7f76eb8796847dbd2050d240c944670b9a00e1c0.tar.gz openbsd-7f76eb8796847dbd2050d240c944670b9a00e1c0.tar.bz2 openbsd-7f76eb8796847dbd2050d240c944670b9a00e1c0.zip |
Convert s3_cbc.c to opaque EVP_MD_CTX.
ok inoguchi jsing
-rw-r--r-- | src/lib/libssl/s3_cbc.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/lib/libssl/s3_cbc.c b/src/lib/libssl/s3_cbc.c index 1c0286f087..e0289d894b 100644 --- a/src/lib/libssl/s3_cbc.c +++ b/src/lib/libssl/s3_cbc.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: s3_cbc.c,v 1.24 2021/05/16 14:10:43 jsing Exp $ */ | 1 | /* $OpenBSD: s3_cbc.c,v 1.25 2021/12/09 17:45:49 tb Exp $ */ |
2 | /* ==================================================================== | 2 | /* ==================================================================== |
3 | * Copyright (c) 2012 The OpenSSL Project. All rights reserved. | 3 | * Copyright (c) 2012 The OpenSSL Project. All rights reserved. |
4 | * | 4 | * |
@@ -404,7 +404,7 @@ ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, unsigned char* md_out, | |||
404 | unsigned char first_block[MAX_HASH_BLOCK_SIZE]; | 404 | unsigned char first_block[MAX_HASH_BLOCK_SIZE]; |
405 | unsigned char mac_out[EVP_MAX_MD_SIZE]; | 405 | unsigned char mac_out[EVP_MAX_MD_SIZE]; |
406 | unsigned int i, j, md_out_size_u; | 406 | unsigned int i, j, md_out_size_u; |
407 | EVP_MD_CTX md_ctx; | 407 | EVP_MD_CTX *md_ctx; |
408 | /* mdLengthSize is the number of bytes in the length field that terminates | 408 | /* mdLengthSize is the number of bytes in the length field that terminates |
409 | * the hash. */ | 409 | * the hash. */ |
410 | unsigned int md_length_size = 8; | 410 | unsigned int md_length_size = 8; |
@@ -605,9 +605,10 @@ ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, unsigned char* md_out, | |||
605 | mac_out[j] |= block[j]&is_block_b; | 605 | mac_out[j] |= block[j]&is_block_b; |
606 | } | 606 | } |
607 | 607 | ||
608 | EVP_MD_CTX_init(&md_ctx); | 608 | if ((md_ctx = EVP_MD_CTX_new()) == NULL) |
609 | if (!EVP_DigestInit_ex(&md_ctx, ctx->digest, NULL /* engine */)) { | 609 | return 0; |
610 | EVP_MD_CTX_cleanup(&md_ctx); | 610 | if (!EVP_DigestInit_ex(md_ctx, EVP_MD_CTX_md(ctx), NULL /* engine */)) { |
611 | EVP_MD_CTX_free(md_ctx); | ||
611 | return 0; | 612 | return 0; |
612 | } | 613 | } |
613 | 614 | ||
@@ -615,13 +616,13 @@ ssl3_cbc_digest_record(const EVP_MD_CTX *ctx, unsigned char* md_out, | |||
615 | for (i = 0; i < md_block_size; i++) | 616 | for (i = 0; i < md_block_size; i++) |
616 | hmac_pad[i] ^= 0x6a; | 617 | hmac_pad[i] ^= 0x6a; |
617 | 618 | ||
618 | EVP_DigestUpdate(&md_ctx, hmac_pad, md_block_size); | 619 | EVP_DigestUpdate(md_ctx, hmac_pad, md_block_size); |
619 | EVP_DigestUpdate(&md_ctx, mac_out, md_size); | 620 | EVP_DigestUpdate(md_ctx, mac_out, md_size); |
620 | 621 | ||
621 | EVP_DigestFinal(&md_ctx, md_out, &md_out_size_u); | 622 | EVP_DigestFinal(md_ctx, md_out, &md_out_size_u); |
622 | if (md_out_size) | 623 | if (md_out_size) |
623 | *md_out_size = md_out_size_u; | 624 | *md_out_size = md_out_size_u; |
624 | EVP_MD_CTX_cleanup(&md_ctx); | 625 | EVP_MD_CTX_free(md_ctx); |
625 | 626 | ||
626 | return 1; | 627 | return 1; |
627 | } | 628 | } |