diff options
author | tb <> | 2019-04-05 20:23:38 +0000 |
---|---|---|
committer | tb <> | 2019-04-05 20:23:38 +0000 |
commit | 55bc1fb8c12e9ebee84e4f4cd679dc16b3000b2c (patch) | |
tree | 6f5b00fafa4585971679b89854e3ba9289deccf5 /src/lib/libssl/tls13_client.c | |
parent | d81e0a2e2b99c3aa745b51cb8193793f267d2a22 (diff) | |
download | openbsd-55bc1fb8c12e9ebee84e4f4cd679dc16b3000b2c.tar.gz openbsd-55bc1fb8c12e9ebee84e4f4cd679dc16b3000b2c.tar.bz2 openbsd-55bc1fb8c12e9ebee84e4f4cd679dc16b3000b2c.zip |
By design, our state machine is a DAG contrary to the state machine in
the spec. To avoid the obvious loop in the RFC's state machine, we added
a CLIENT_HELLO_RETRY state which is a second ClientHello with special
rules. There is, however, no state to react to this second client hello.
This adds a matching SERVER_HELLO_RETRY state to the handshakes table.
This means in particular that the WITH_HRR state cannot be set in
tls13_server_hello_recv(), so remove this now dead check.
ok jsing
Diffstat (limited to 'src/lib/libssl/tls13_client.c')
-rw-r--r-- | src/lib/libssl/tls13_client.c | 5 |
1 files changed, 1 insertions, 4 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. */ |