summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libssl/tls13_client.c5
-rw-r--r--src/lib/libssl/tls13_handshake.c24
-rw-r--r--src/lib/libssl/tls13_handshake.h3
-rw-r--r--src/lib/libssl/tls13_internal.h4
4 files changed, 29 insertions, 7 deletions
diff --git a/src/lib/libssl/tls13_client.c b/src/lib/libssl/tls13_client.c
index 1729401505..a9f1b6bbd5 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.15 2019/04/04 16:53:57 jsing Exp $ */ 1/* $OpenBSD: tls13_client.c,v 1.16 2019/04/05 20:23:38 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 *
@@ -339,9 +339,6 @@ tls13_server_hello_recv(struct tls13_ctx *ctx)
339 if (s->method->internal->version < TLS1_3_VERSION) 339 if (s->method->internal->version < TLS1_3_VERSION)
340 return 1; 340 return 1;
341 341
342 if (ctx->handshake_stage.hs_type & WITH_HRR)
343 return 1;
344
345 /* XXX - handle other key share types. */ 342 /* XXX - handle other key share types. */
346 if (ctx->hs->x25519_peer_public == NULL) { 343 if (ctx->hs->x25519_peer_public == NULL) {
347 /* XXX - alert. */ 344 /* XXX - alert. */
diff --git a/src/lib/libssl/tls13_handshake.c b/src/lib/libssl/tls13_handshake.c
index fd49e03adc..542410bd39 100644
--- a/src/lib/libssl/tls13_handshake.c
+++ b/src/lib/libssl/tls13_handshake.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls13_handshake.c,v 1.34 2019/04/05 05:13:12 tb Exp $ */ 1/* $OpenBSD: tls13_handshake.c,v 1.35 2019/04/05 20:23:38 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2018-2019 Theo Buehler <tb@openbsd.org> 3 * Copyright (c) 2018-2019 Theo Buehler <tb@openbsd.org>
4 * Copyright (c) 2019 Joel Sing <jsing@openbsd.org> 4 * Copyright (c) 2019 Joel Sing <jsing@openbsd.org>
@@ -98,6 +98,12 @@ struct tls13_handshake_action state_machine[] = {
98 .send = tls13_server_hello_send, 98 .send = tls13_server_hello_send,
99 .recv = tls13_server_hello_recv, 99 .recv = tls13_server_hello_recv,
100 }, 100 },
101 [SERVER_HELLO_RETRY] = {
102 .handshake_type = TLS13_MT_SERVER_HELLO,
103 .sender = TLS13_HS_SERVER,
104 .send = tls13_server_hello_retry_send,
105 .recv = tls13_server_hello_retry_recv,
106 },
101 [SERVER_ENCRYPTED_EXTENSIONS] = { 107 [SERVER_ENCRYPTED_EXTENSIONS] = {
102 .handshake_type = TLS13_MT_ENCRYPTED_EXTENSIONS, 108 .handshake_type = TLS13_MT_ENCRYPTED_EXTENSIONS,
103 .sender = TLS13_HS_SERVER, 109 .sender = TLS13_HS_SERVER,
@@ -156,6 +162,7 @@ enum tls13_message_type handshakes[][TLS13_NUM_MESSAGE_TYPES] = {
156 CLIENT_HELLO, 162 CLIENT_HELLO,
157 SERVER_HELLO, 163 SERVER_HELLO,
158 CLIENT_HELLO_RETRY, 164 CLIENT_HELLO_RETRY,
165 SERVER_HELLO_RETRY,
159 SERVER_ENCRYPTED_EXTENSIONS, 166 SERVER_ENCRYPTED_EXTENSIONS,
160 SERVER_CERTIFICATE_REQUEST, 167 SERVER_CERTIFICATE_REQUEST,
161 SERVER_CERTIFICATE, 168 SERVER_CERTIFICATE,
@@ -179,6 +186,7 @@ enum tls13_message_type handshakes[][TLS13_NUM_MESSAGE_TYPES] = {
179 CLIENT_HELLO, 186 CLIENT_HELLO,
180 SERVER_HELLO, 187 SERVER_HELLO,
181 CLIENT_HELLO_RETRY, 188 CLIENT_HELLO_RETRY,
189 SERVER_HELLO_RETRY,
182 SERVER_ENCRYPTED_EXTENSIONS, 190 SERVER_ENCRYPTED_EXTENSIONS,
183 SERVER_CERTIFICATE, 191 SERVER_CERTIFICATE,
184 SERVER_CERTIFICATE_VERIFY, 192 SERVER_CERTIFICATE_VERIFY,
@@ -198,6 +206,7 @@ enum tls13_message_type handshakes[][TLS13_NUM_MESSAGE_TYPES] = {
198 CLIENT_HELLO, 206 CLIENT_HELLO,
199 SERVER_HELLO, 207 SERVER_HELLO,
200 CLIENT_HELLO_RETRY, 208 CLIENT_HELLO_RETRY,
209 SERVER_HELLO_RETRY,
201 SERVER_ENCRYPTED_EXTENSIONS, 210 SERVER_ENCRYPTED_EXTENSIONS,
202 SERVER_FINISHED, 211 SERVER_FINISHED,
203 CLIENT_FINISHED, 212 CLIENT_FINISHED,
@@ -220,6 +229,7 @@ enum tls13_message_type handshakes[][TLS13_NUM_MESSAGE_TYPES] = {
220 CLIENT_HELLO, 229 CLIENT_HELLO,
221 SERVER_HELLO, 230 SERVER_HELLO,
222 CLIENT_HELLO_RETRY, 231 CLIENT_HELLO_RETRY,
232 SERVER_HELLO_RETRY,
223 SERVER_ENCRYPTED_EXTENSIONS, 233 SERVER_ENCRYPTED_EXTENSIONS,
224 SERVER_CERTIFICATE_REQUEST, 234 SERVER_CERTIFICATE_REQUEST,
225 SERVER_CERTIFICATE, 235 SERVER_CERTIFICATE,
@@ -404,6 +414,12 @@ tls13_client_hello_retry_send(struct tls13_ctx *ctx)
404} 414}
405 415
406int 416int
417tls13_server_hello_retry_recv(struct tls13_ctx *ctx)
418{
419 return 0;
420}
421
422int
407tls13_client_hello_retry_recv(struct tls13_ctx *ctx) 423tls13_client_hello_retry_recv(struct tls13_ctx *ctx)
408{ 424{
409 return 0; 425 return 0;
@@ -473,6 +489,12 @@ tls13_server_hello_send(struct tls13_ctx *ctx)
473} 489}
474 490
475int 491int
492tls13_server_hello_retry_send(struct tls13_ctx *ctx)
493{
494 return 0;
495}
496
497int
476tls13_server_encrypted_extensions_send(struct tls13_ctx *ctx) 498tls13_server_encrypted_extensions_send(struct tls13_ctx *ctx)
477{ 499{
478 return 0; 500 return 0;
diff --git a/src/lib/libssl/tls13_handshake.h b/src/lib/libssl/tls13_handshake.h
index cbbec744d3..9910dab106 100644
--- a/src/lib/libssl/tls13_handshake.h
+++ b/src/lib/libssl/tls13_handshake.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls13_handshake.h,v 1.2 2019/01/20 22:36:19 tb Exp $ */ 1/* $OpenBSD: tls13_handshake.h,v 1.3 2019/04/05 20:23:38 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2019 Theo Buehler <tb@openbsd.org> 3 * Copyright (c) 2019 Theo Buehler <tb@openbsd.org>
4 * 4 *
@@ -35,6 +35,7 @@ enum tls13_message_type {
35 CLIENT_HELLO, 35 CLIENT_HELLO,
36 SERVER_HELLO, 36 SERVER_HELLO,
37 CLIENT_HELLO_RETRY, 37 CLIENT_HELLO_RETRY,
38 SERVER_HELLO_RETRY,
38 SERVER_ENCRYPTED_EXTENSIONS, 39 SERVER_ENCRYPTED_EXTENSIONS,
39 SERVER_CERTIFICATE_REQUEST, 40 SERVER_CERTIFICATE_REQUEST,
40 SERVER_CERTIFICATE, 41 SERVER_CERTIFICATE,
diff --git a/src/lib/libssl/tls13_internal.h b/src/lib/libssl/tls13_internal.h
index c9ef37a39f..1d7a7eb699 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.27 2019/04/04 16:53:57 jsing Exp $ */ 1/* $OpenBSD: tls13_internal.h,v 1.28 2019/04/05 20:23:38 tb 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>
@@ -229,6 +229,8 @@ int tls13_client_key_update_send(struct tls13_ctx *ctx);
229int tls13_client_key_update_recv(struct tls13_ctx *ctx); 229int tls13_client_key_update_recv(struct tls13_ctx *ctx);
230int tls13_server_hello_recv(struct tls13_ctx *ctx); 230int tls13_server_hello_recv(struct tls13_ctx *ctx);
231int tls13_server_hello_send(struct tls13_ctx *ctx); 231int tls13_server_hello_send(struct tls13_ctx *ctx);
232int tls13_server_hello_retry_recv(struct tls13_ctx *ctx);
233int tls13_server_hello_retry_send(struct tls13_ctx *ctx);
232int tls13_server_encrypted_extensions_recv(struct tls13_ctx *ctx); 234int tls13_server_encrypted_extensions_recv(struct tls13_ctx *ctx);
233int tls13_server_encrypted_extensions_send(struct tls13_ctx *ctx); 235int tls13_server_encrypted_extensions_send(struct tls13_ctx *ctx);
234int tls13_server_certificate_recv(struct tls13_ctx *ctx); 236int tls13_server_certificate_recv(struct tls13_ctx *ctx);