diff options
author | tb <> | 2021-01-05 17:49:04 +0000 |
---|---|---|
committer | tb <> | 2021-01-05 17:49:04 +0000 |
commit | 8a5a9f5a4539ade1d81e458202d68c537ad0f49e (patch) | |
tree | a0911e4e92384d95a079c5aaa61db95a904339b7 | |
parent | 212445dd1cb5612d11be53e5175a2eb21157f374 (diff) | |
download | openbsd-8a5a9f5a4539ade1d81e458202d68c537ad0f49e.tar.gz openbsd-8a5a9f5a4539ade1d81e458202d68c537ad0f49e.tar.bz2 openbsd-8a5a9f5a4539ade1d81e458202d68c537ad0f49e.zip |
Convert tls13_record_layer.c to tls13_secret_{init,cleanup}()
ok jsing
-rw-r--r-- | src/lib/libssl/tls13_record_layer.c | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/src/lib/libssl/tls13_record_layer.c b/src/lib/libssl/tls13_record_layer.c index 6d3f3f4929..bbecc60674 100644 --- a/src/lib/libssl/tls13_record_layer.c +++ b/src/lib/libssl/tls13_record_layer.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: tls13_record_layer.c,v 1.57 2021/01/04 16:46:07 tb Exp $ */ | 1 | /* $OpenBSD: tls13_record_layer.c,v 1.58 2021/01/05 17:49:04 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> |
4 | * | 4 | * |
@@ -146,10 +146,10 @@ tls13_record_layer_free(struct tls13_record_layer *rl) | |||
146 | EVP_AEAD_CTX_cleanup(&rl->read_aead_ctx); | 146 | EVP_AEAD_CTX_cleanup(&rl->read_aead_ctx); |
147 | EVP_AEAD_CTX_cleanup(&rl->write_aead_ctx); | 147 | EVP_AEAD_CTX_cleanup(&rl->write_aead_ctx); |
148 | 148 | ||
149 | freezero(rl->read_iv.data, rl->read_iv.len); | 149 | tls13_secret_cleanup(&rl->read_iv); |
150 | freezero(rl->write_iv.data, rl->write_iv.len); | 150 | tls13_secret_cleanup(&rl->write_iv); |
151 | freezero(rl->read_nonce.data, rl->read_nonce.len); | 151 | tls13_secret_cleanup(&rl->read_nonce); |
152 | freezero(rl->write_nonce.data, rl->write_nonce.len); | 152 | tls13_secret_cleanup(&rl->write_nonce); |
153 | 153 | ||
154 | freezero(rl, sizeof(struct tls13_record_layer)); | 154 | freezero(rl, sizeof(struct tls13_record_layer)); |
155 | } | 155 | } |
@@ -440,25 +440,15 @@ tls13_record_layer_set_traffic_key(const EVP_AEAD *aead, EVP_AEAD_CTX *aead_ctx, | |||
440 | 440 | ||
441 | EVP_AEAD_CTX_cleanup(aead_ctx); | 441 | EVP_AEAD_CTX_cleanup(aead_ctx); |
442 | 442 | ||
443 | freezero(iv->data, iv->len); | 443 | tls13_secret_cleanup(iv); |
444 | iv->data = NULL; | 444 | tls13_secret_cleanup(nonce); |
445 | iv->len = 0; | ||
446 | 445 | ||
447 | freezero(nonce->data, nonce->len); | 446 | if (!tls13_secret_init(iv, EVP_AEAD_nonce_length(aead))) |
448 | nonce->data = NULL; | ||
449 | nonce->len = 0; | ||
450 | |||
451 | if ((iv->data = calloc(1, EVP_AEAD_nonce_length(aead))) == NULL) | ||
452 | goto err; | 447 | goto err; |
453 | iv->len = EVP_AEAD_nonce_length(aead); | 448 | if (!tls13_secret_init(nonce, EVP_AEAD_nonce_length(aead))) |
454 | |||
455 | if ((nonce->data = calloc(1, EVP_AEAD_nonce_length(aead))) == NULL) | ||
456 | goto err; | 449 | goto err; |
457 | nonce->len = EVP_AEAD_nonce_length(aead); | 450 | if (!tls13_secret_init(&key, EVP_AEAD_key_length(aead))) |
458 | |||
459 | if ((key.data = calloc(1, EVP_AEAD_key_length(aead))) == NULL) | ||
460 | goto err; | 451 | goto err; |
461 | key.len = EVP_AEAD_key_length(aead); | ||
462 | 452 | ||
463 | if (!tls13_hkdf_expand_label(iv, hash, traffic_key, "iv", &context)) | 453 | if (!tls13_hkdf_expand_label(iv, hash, traffic_key, "iv", &context)) |
464 | goto err; | 454 | goto err; |
@@ -472,7 +462,7 @@ tls13_record_layer_set_traffic_key(const EVP_AEAD *aead, EVP_AEAD_CTX *aead_ctx, | |||
472 | ret = 1; | 462 | ret = 1; |
473 | 463 | ||
474 | err: | 464 | err: |
475 | freezero(key.data, key.len); | 465 | tls13_secret_cleanup(&key); |
476 | 466 | ||
477 | return ret; | 467 | return ret; |
478 | } | 468 | } |