diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libssl/tls13_key_schedule.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/lib/libssl/tls13_key_schedule.c b/src/lib/libssl/tls13_key_schedule.c index 8a0b3e8af4..91f59e46f9 100644 --- a/src/lib/libssl/tls13_key_schedule.c +++ b/src/lib/libssl/tls13_key_schedule.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_key_schedule.c,v 1.7 2018/11/13 01:25:13 beck Exp $ */ | 1 | /* $OpenBSD: tls13_key_schedule.c,v 1.8 2019/11/17 21:01:08 beck Exp $ */ |
| 2 | /* Copyright (c) 2018, Bob Beck <beck@openbsd.org> | 2 | /* Copyright (c) 2018, Bob Beck <beck@openbsd.org> |
| 3 | * | 3 | * |
| 4 | * Permission to use, copy, modify, and/or distribute this software for any | 4 | * Permission to use, copy, modify, and/or distribute this software for any |
| @@ -354,23 +354,27 @@ tls13_derive_application_secrets(struct tls13_secrets *secrets, | |||
| 354 | int | 354 | int |
| 355 | tls13_update_client_traffic_secret(struct tls13_secrets *secrets) | 355 | tls13_update_client_traffic_secret(struct tls13_secrets *secrets) |
| 356 | { | 356 | { |
| 357 | struct tls13_secret context = { .data = "", .len = 0 }; | ||
| 358 | |||
| 357 | if (!secrets->init_done || !secrets->early_done || | 359 | if (!secrets->init_done || !secrets->early_done || |
| 358 | !secrets->handshake_done || !secrets->schedule_done) | 360 | !secrets->handshake_done || !secrets->schedule_done) |
| 359 | return 0; | 361 | return 0; |
| 360 | 362 | ||
| 361 | return tls13_hkdf_expand_label(&secrets->client_application_traffic, | 363 | return tls13_hkdf_expand_label(&secrets->client_application_traffic, |
| 362 | secrets->digest, &secrets->client_application_traffic, | 364 | secrets->digest, &secrets->client_application_traffic, |
| 363 | "traffic upd", &secrets->empty_hash); | 365 | "traffic upd", &context); |
| 364 | } | 366 | } |
| 365 | 367 | ||
| 366 | int | 368 | int |
| 367 | tls13_update_server_traffic_secret(struct tls13_secrets *secrets) | 369 | tls13_update_server_traffic_secret(struct tls13_secrets *secrets) |
| 368 | { | 370 | { |
| 371 | struct tls13_secret context = { .data = "", .len = 0 }; | ||
| 372 | |||
| 369 | if (!secrets->init_done || !secrets->early_done || | 373 | if (!secrets->init_done || !secrets->early_done || |
| 370 | !secrets->handshake_done || !secrets->schedule_done) | 374 | !secrets->handshake_done || !secrets->schedule_done) |
| 371 | return 0; | 375 | return 0; |
| 372 | 376 | ||
| 373 | return tls13_hkdf_expand_label(&secrets->server_application_traffic, | 377 | return tls13_hkdf_expand_label(&secrets->server_application_traffic, |
| 374 | secrets->digest, &secrets->server_application_traffic, | 378 | secrets->digest, &secrets->server_application_traffic, |
| 375 | "traffic upd", &secrets->empty_hash); | 379 | "traffic upd", &context); |
| 376 | } | 380 | } |
