diff options
| author | jsing <> | 2024-07-20 04:04:23 +0000 |
|---|---|---|
| committer | jsing <> | 2024-07-20 04:04:23 +0000 |
| commit | 026ea65c83ed46dcfd89ada1f6250daa4fcc01b3 (patch) | |
| tree | b04719de2f91b0f8d7c9c7acb93cef76a89b9948 /src/lib/libssl/tls13_client.c | |
| parent | bea193397b98da148fada221ab7ddef17f6749cf (diff) | |
| download | openbsd-026ea65c83ed46dcfd89ada1f6250daa4fcc01b3.tar.gz openbsd-026ea65c83ed46dcfd89ada1f6250daa4fcc01b3.tar.bz2 openbsd-026ea65c83ed46dcfd89ada1f6250daa4fcc01b3.zip | |
Remove cipher from SSL_SESSION.
For a long time SSL_SESSION has had both a cipher ID and a pointer to
an SSL_CIPHER (and not both are guaranteed to be populated). There is also
a pointer to an SSL_CIPHER in the SSL_HANDSHAKE that denotes the cipher
being used for this connection. Some code has been using the cipher from
SSL_SESSION and some code has been using the cipher from SSL_HANDSHAKE.
Remove cipher from SSL_SESSION and use the version in SSL_HANDSHAKE
everywhere. If resuming from a session then we need to use the SSL_SESSION
cipher ID to set the SSL_HANDSHAKE cipher. And we still need to ensure that
we update the cipher ID in the SSL_SESSION whenever the SSL_HANDSHAKE
cipher changes (this only occurs in a few places).
ok tb@
Diffstat (limited to 'src/lib/libssl/tls13_client.c')
| -rw-r--r-- | src/lib/libssl/tls13_client.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/libssl/tls13_client.c b/src/lib/libssl/tls13_client.c index 053cf1689b..8f6894fd88 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.102 2023/06/10 15:34:36 tb Exp $ */ | 1 | /* $OpenBSD: tls13_client.c,v 1.103 2024/07/20 04:04:23 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 | * |
| @@ -347,7 +347,7 @@ tls13_client_engage_record_protection(struct tls13_ctx *ctx) | |||
| 347 | &shared_key_len)) | 347 | &shared_key_len)) |
| 348 | goto err; | 348 | goto err; |
| 349 | 349 | ||
| 350 | s->session->cipher = ctx->hs->cipher; | 350 | s->session->cipher_id = ctx->hs->cipher->id; |
| 351 | s->session->ssl_version = ctx->hs->tls13.server_version; | 351 | s->session->ssl_version = ctx->hs->tls13.server_version; |
| 352 | 352 | ||
| 353 | if ((ctx->aead = tls13_cipher_aead(ctx->hs->cipher)) == NULL) | 353 | if ((ctx->aead = tls13_cipher_aead(ctx->hs->cipher)) == NULL) |
