summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libssl/tls13_client.c8
-rw-r--r--src/lib/libssl/tls13_internal.h8
-rw-r--r--src/lib/libssl/tls13_record_layer.c24
3 files changed, 23 insertions, 17 deletions
diff --git a/src/lib/libssl/tls13_client.c b/src/lib/libssl/tls13_client.c
index c8345f3a36..5353b5a3c8 100644
--- a/src/lib/libssl/tls13_client.c
+++ b/src/lib/libssl/tls13_client.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls13_client.c,v 1.8 2019/02/13 16:29:18 jsing Exp $ */ 1/* $OpenBSD: tls13_client.c,v 1.9 2019/02/14 17:55:31 jsing 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 *
@@ -308,8 +308,10 @@ tls13_server_hello_recv(struct tls13_ctx *ctx)
308 tls13_record_layer_set_aead(ctx->rl, ctx->aead); 308 tls13_record_layer_set_aead(ctx->rl, ctx->aead);
309 tls13_record_layer_set_hash(ctx->rl, ctx->hash); 309 tls13_record_layer_set_hash(ctx->rl, ctx->hash);
310 310
311 if (!tls13_record_layer_set_traffic_keys(ctx->rl, 311 if (!tls13_record_layer_set_read_traffic_key(ctx->rl,
312 &secrets->server_handshake_traffic, 312 &secrets->server_handshake_traffic))
313 goto err;
314 if (!tls13_record_layer_set_write_traffic_key(ctx->rl,
313 &secrets->client_handshake_traffic)) 315 &secrets->client_handshake_traffic))
314 goto err; 316 goto err;
315 317
diff --git a/src/lib/libssl/tls13_internal.h b/src/lib/libssl/tls13_internal.h
index 2d23e6609b..71abb6c443 100644
--- a/src/lib/libssl/tls13_internal.h
+++ b/src/lib/libssl/tls13_internal.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls13_internal.h,v 1.18 2019/02/14 17:50:07 jsing Exp $ */ 1/* $OpenBSD: tls13_internal.h,v 1.19 2019/02/14 17:55:32 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2018 Bob Beck <beck@openbsd.org> 3 * Copyright (c) 2018 Bob Beck <beck@openbsd.org>
4 * Copyright (c) 2018 Theo Buehler <tb@openbsd.org> 4 * Copyright (c) 2018 Theo Buehler <tb@openbsd.org>
@@ -114,8 +114,10 @@ void tls13_record_layer_set_aead(struct tls13_record_layer *rl,
114void tls13_record_layer_set_hash(struct tls13_record_layer *rl, 114void tls13_record_layer_set_hash(struct tls13_record_layer *rl,
115 const EVP_MD *hash); 115 const EVP_MD *hash);
116void tls13_record_layer_handshake_completed(struct tls13_record_layer *rl); 116void tls13_record_layer_handshake_completed(struct tls13_record_layer *rl);
117int tls13_record_layer_set_traffic_keys(struct tls13_record_layer *rl, 117int tls13_record_layer_set_read_traffic_key(struct tls13_record_layer *rl,
118 struct tls13_secret *read_key, struct tls13_secret *write_key); 118 struct tls13_secret *read_key);
119int tls13_record_layer_set_write_traffic_key(struct tls13_record_layer *rl,
120 struct tls13_secret *write_key);
119 121
120ssize_t tls13_read_handshake_data(struct tls13_record_layer *rl, uint8_t *buf, size_t n); 122ssize_t tls13_read_handshake_data(struct tls13_record_layer *rl, uint8_t *buf, size_t n);
121ssize_t tls13_write_handshake_data(struct tls13_record_layer *rl, const uint8_t *buf, 123ssize_t tls13_write_handshake_data(struct tls13_record_layer *rl, const uint8_t *buf,
diff --git a/src/lib/libssl/tls13_record_layer.c b/src/lib/libssl/tls13_record_layer.c
index b70f9f174e..dbb5695d5e 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.1 2019/01/20 10:31:54 jsing Exp $ */ 1/* $OpenBSD: tls13_record_layer.c,v 1.2 2019/02/14 17:55:32 jsing 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 *
@@ -260,21 +260,23 @@ tls13_record_layer_set_traffic_key(const EVP_AEAD *aead, EVP_AEAD_CTX *aead_ctx,
260} 260}
261 261
262int 262int
263tls13_record_layer_set_traffic_keys(struct tls13_record_layer *rl, 263tls13_record_layer_set_read_traffic_key(struct tls13_record_layer *rl,
264 struct tls13_secret *read_key, struct tls13_secret *write_key) 264 struct tls13_secret *read_key)
265{ 265{
266 memset(rl->read_seq_num, 0, TLS13_RECORD_SEQ_NUM_LEN); 266 memset(rl->read_seq_num, 0, TLS13_RECORD_SEQ_NUM_LEN);
267 memset(rl->write_seq_num, 0, TLS13_RECORD_SEQ_NUM_LEN);
268 267
269 if (!tls13_record_layer_set_traffic_key(rl->aead, &rl->read_aead_ctx, 268 return tls13_record_layer_set_traffic_key(rl->aead, &rl->read_aead_ctx,
270 rl->hash, &rl->read_iv, &rl->read_nonce, read_key)) 269 rl->hash, &rl->read_iv, &rl->read_nonce, read_key);
271 return 0; 270}
272 271
273 if (!tls13_record_layer_set_traffic_key(rl->aead, &rl->write_aead_ctx, 272int
274 rl->hash, &rl->write_iv, &rl->write_nonce, write_key)) 273tls13_record_layer_set_write_traffic_key(struct tls13_record_layer *rl,
275 return 0; 274 struct tls13_secret *write_key)
275{
276 memset(rl->write_seq_num, 0, TLS13_RECORD_SEQ_NUM_LEN);
276 277
277 return 1; 278 return tls13_record_layer_set_traffic_key(rl->aead, &rl->write_aead_ctx,
279 rl->hash, &rl->write_iv, &rl->write_nonce, write_key);
278} 280}
279 281
280static int 282static int