diff options
author | tb <> | 2021-06-28 15:36:51 +0000 |
---|---|---|
committer | tb <> | 2021-06-28 15:36:51 +0000 |
commit | ae04ae2ebac1029c925e431a99bae7f6e4ab2900 (patch) | |
tree | c8018c73f512e6f8a828e6b313e41a54439d86e0 /src | |
parent | de2554facf2b2abbf75cfd7110e03bfafca9a740 (diff) | |
download | openbsd-ae04ae2ebac1029c925e431a99bae7f6e4ab2900.tar.gz openbsd-ae04ae2ebac1029c925e431a99bae7f6e4ab2900.tar.bz2 openbsd-ae04ae2ebac1029c925e431a99bae7f6e4ab2900.zip |
The state machine now takes care of setting the legacy state,
so it is no longer necessary in to do this by hand in various
places of the code interfacing with the legacy stack.
ok jsing
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libssl/tls13_legacy.c | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/src/lib/libssl/tls13_legacy.c b/src/lib/libssl/tls13_legacy.c index f71bac48cd..cd9ec9942d 100644 --- a/src/lib/libssl/tls13_legacy.c +++ b/src/lib/libssl/tls13_legacy.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: tls13_legacy.c,v 1.24 2021/04/19 16:51:56 jsing Exp $ */ | 1 | /* $OpenBSD: tls13_legacy.c,v 1.25 2021/06/28 15:36:51 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 | * |
@@ -361,8 +361,6 @@ tls13_use_legacy_client(struct tls13_ctx *ctx) | |||
361 | s->internal->handshake_func = s->method->internal->ssl_connect; | 361 | s->internal->handshake_func = s->method->internal->ssl_connect; |
362 | s->client_version = s->version = s->method->internal->max_tls_version; | 362 | s->client_version = s->version = s->method->internal->max_tls_version; |
363 | 363 | ||
364 | ctx->hs->state = SSL3_ST_CR_SRVR_HELLO_A; | ||
365 | |||
366 | return 1; | 364 | return 1; |
367 | } | 365 | } |
368 | 366 | ||
@@ -378,8 +376,6 @@ tls13_use_legacy_server(struct tls13_ctx *ctx) | |||
378 | s->client_version = s->version = s->method->internal->max_tls_version; | 376 | s->client_version = s->version = s->method->internal->max_tls_version; |
379 | s->server = 1; | 377 | s->server = 1; |
380 | 378 | ||
381 | ctx->hs->state = SSL3_ST_SR_CLNT_HELLO_A; | ||
382 | |||
383 | return 1; | 379 | return 1; |
384 | } | 380 | } |
385 | 381 | ||
@@ -406,13 +402,10 @@ tls13_legacy_accept(SSL *ssl) | |||
406 | } | 402 | } |
407 | 403 | ||
408 | ERR_clear_error(); | 404 | ERR_clear_error(); |
409 | ctx->hs->state = SSL_ST_ACCEPT; | ||
410 | 405 | ||
411 | ret = tls13_server_accept(ctx); | 406 | ret = tls13_server_accept(ctx); |
412 | if (ret == TLS13_IO_USE_LEGACY) | 407 | if (ret == TLS13_IO_USE_LEGACY) |
413 | return ssl->method->internal->ssl_accept(ssl); | 408 | return ssl->method->internal->ssl_accept(ssl); |
414 | if (ret == TLS13_IO_SUCCESS) | ||
415 | ctx->hs->state = SSL_ST_OK; | ||
416 | 409 | ||
417 | return tls13_legacy_return_code(ssl, ret); | 410 | return tls13_legacy_return_code(ssl, ret); |
418 | } | 411 | } |
@@ -448,13 +441,10 @@ tls13_legacy_connect(SSL *ssl) | |||
448 | } | 441 | } |
449 | 442 | ||
450 | ERR_clear_error(); | 443 | ERR_clear_error(); |
451 | ctx->hs->state = SSL_ST_CONNECT; | ||
452 | 444 | ||
453 | ret = tls13_client_connect(ctx); | 445 | ret = tls13_client_connect(ctx); |
454 | if (ret == TLS13_IO_USE_LEGACY) | 446 | if (ret == TLS13_IO_USE_LEGACY) |
455 | return ssl->method->internal->ssl_connect(ssl); | 447 | return ssl->method->internal->ssl_connect(ssl); |
456 | if (ret == TLS13_IO_SUCCESS) | ||
457 | ctx->hs->state = SSL_ST_OK; | ||
458 | 448 | ||
459 | return tls13_legacy_return_code(ssl, ret); | 449 | return tls13_legacy_return_code(ssl, ret); |
460 | } | 450 | } |