diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/kdf/tls1_prf.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/lib/libcrypto/kdf/tls1_prf.c b/src/lib/libcrypto/kdf/tls1_prf.c index 6d8263cbae..75b44f4c6c 100644 --- a/src/lib/libcrypto/kdf/tls1_prf.c +++ b/src/lib/libcrypto/kdf/tls1_prf.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls1_prf.c,v 1.18 2024/07/09 16:50:07 tb Exp $ */ | 1 | /* $OpenBSD: tls1_prf.c,v 1.19 2024/07/09 16:51:01 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project | 3 | * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project |
| 4 | * 2016. | 4 | * 2016. |
| @@ -68,7 +68,7 @@ | |||
| 68 | #include "evp_local.h" | 68 | #include "evp_local.h" |
| 69 | 69 | ||
| 70 | static int tls1_prf_alg(const EVP_MD *md, | 70 | static int tls1_prf_alg(const EVP_MD *md, |
| 71 | const unsigned char *secret, size_t slen, | 71 | const unsigned char *secret, size_t secret_len, |
| 72 | const unsigned char *seed, size_t seed_len, | 72 | const unsigned char *seed, size_t seed_len, |
| 73 | unsigned char *out, size_t olen); | 73 | unsigned char *out, size_t olen); |
| 74 | 74 | ||
| @@ -316,7 +316,7 @@ tls1_prf_P_hash(const EVP_MD *md, | |||
| 316 | 316 | ||
| 317 | static int | 317 | static int |
| 318 | tls1_prf_alg(const EVP_MD *md, | 318 | tls1_prf_alg(const EVP_MD *md, |
| 319 | const unsigned char *secret, size_t slen, | 319 | const unsigned char *secret, size_t secret_len, |
| 320 | const unsigned char *seed, size_t seed_len, | 320 | const unsigned char *seed, size_t seed_len, |
| 321 | unsigned char *out, size_t olen) | 321 | unsigned char *out, size_t olen) |
| 322 | { | 322 | { |
| @@ -324,7 +324,8 @@ tls1_prf_alg(const EVP_MD *md, | |||
| 324 | if (EVP_MD_type(md) == NID_md5_sha1) { | 324 | if (EVP_MD_type(md) == NID_md5_sha1) { |
| 325 | size_t i; | 325 | size_t i; |
| 326 | unsigned char *tmp; | 326 | unsigned char *tmp; |
| 327 | if (!tls1_prf_P_hash(EVP_md5(), secret, slen/2 + (slen & 1), | 327 | if (!tls1_prf_P_hash(EVP_md5(), |
| 328 | secret, secret_len/2 + (secret_len & 1), | ||
| 328 | seed, seed_len, out, olen)) | 329 | seed, seed_len, out, olen)) |
| 329 | return 0; | 330 | return 0; |
| 330 | 331 | ||
| @@ -332,8 +333,8 @@ tls1_prf_alg(const EVP_MD *md, | |||
| 332 | KDFerror(ERR_R_MALLOC_FAILURE); | 333 | KDFerror(ERR_R_MALLOC_FAILURE); |
| 333 | return 0; | 334 | return 0; |
| 334 | } | 335 | } |
| 335 | if (!tls1_prf_P_hash(EVP_sha1(), secret + slen/2, | 336 | if (!tls1_prf_P_hash(EVP_sha1(), secret + secret_len/2, |
| 336 | slen/2 + (slen & 1), seed, seed_len, tmp, olen)) { | 337 | secret_len/2 + (secret_len & 1), seed, seed_len, tmp, olen)) { |
| 337 | freezero(tmp, olen); | 338 | freezero(tmp, olen); |
| 338 | return 0; | 339 | return 0; |
| 339 | } | 340 | } |
| @@ -342,7 +343,7 @@ tls1_prf_alg(const EVP_MD *md, | |||
| 342 | freezero(tmp, olen); | 343 | freezero(tmp, olen); |
| 343 | return 1; | 344 | return 1; |
| 344 | } | 345 | } |
| 345 | if (!tls1_prf_P_hash(md, secret, slen, seed, seed_len, out, olen)) | 346 | if (!tls1_prf_P_hash(md, secret, secret_len, seed, seed_len, out, olen)) |
| 346 | return 0; | 347 | return 0; |
| 347 | 348 | ||
| 348 | return 1; | 349 | return 1; |
