diff options
| author | jsing <> | 2019-02-07 15:54:18 +0000 |
|---|---|---|
| committer | jsing <> | 2019-02-07 15:54:18 +0000 |
| commit | 07839f12a4d842b9648d0a31f5b549efbf7d6621 (patch) | |
| tree | 74f4d1218bdcbb7a9def216ef74472ac98f74e33 /src/lib/libssl/tls13_client.c | |
| parent | 6ef6589e7621680420e316ecc5abd355ab997a3c (diff) | |
| download | openbsd-07839f12a4d842b9648d0a31f5b549efbf7d6621.tar.gz openbsd-07839f12a4d842b9648d0a31f5b549efbf7d6621.tar.bz2 openbsd-07839f12a4d842b9648d0a31f5b549efbf7d6621.zip | |
Implement processing of EncryptedExtensions in the TLS 1.3 client.
ok bcook@ tb@
Diffstat (limited to 'src/lib/libssl/tls13_client.c')
| -rw-r--r-- | src/lib/libssl/tls13_client.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/lib/libssl/tls13_client.c b/src/lib/libssl/tls13_client.c index 4d34cf9943..0f0c673f2c 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.2 2019/02/04 16:18:15 jsing Exp $ */ | 1 | /* $OpenBSD: tls13_client.c,v 1.3 2019/02/07 15:54:18 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 | * |
| @@ -230,6 +230,8 @@ tls13_server_hello_process(struct tls13_ctx *ctx, CBS *cbs) | |||
| 230 | return 1; | 230 | return 1; |
| 231 | 231 | ||
| 232 | err: | 232 | err: |
| 233 | /* XXX - send alert. */ | ||
| 234 | |||
| 233 | return 0; | 235 | return 0; |
| 234 | } | 236 | } |
| 235 | 237 | ||
| @@ -253,6 +255,7 @@ tls13_server_hello_recv(struct tls13_ctx *ctx) | |||
| 253 | 255 | ||
| 254 | if (S3I(s)->hs_tls13.server_version < TLS1_3_VERSION) { | 256 | if (S3I(s)->hs_tls13.server_version < TLS1_3_VERSION) { |
| 255 | /* XXX - switch back to legacy client. */ | 257 | /* XXX - switch back to legacy client. */ |
| 258 | goto err; | ||
| 256 | } | 259 | } |
| 257 | 260 | ||
| 258 | if (ctx->handshake_stage.hs_type & WITH_HRR) | 261 | if (ctx->handshake_stage.hs_type & WITH_HRR) |
| @@ -314,3 +317,26 @@ tls13_server_hello_recv(struct tls13_ctx *ctx) | |||
| 314 | freezero(shared_key, X25519_KEY_LENGTH); | 317 | freezero(shared_key, X25519_KEY_LENGTH); |
| 315 | return ret; | 318 | return ret; |
| 316 | } | 319 | } |
| 320 | |||
| 321 | int | ||
| 322 | tls13_server_encrypted_extensions_recv(struct tls13_ctx *ctx) | ||
| 323 | { | ||
| 324 | int alert; | ||
| 325 | CBS cbs; | ||
| 326 | |||
| 327 | if (!tls13_handshake_msg_content(ctx->hs_msg, &cbs)) | ||
| 328 | goto err; | ||
| 329 | |||
| 330 | if (!tlsext_client_parse(ctx->ssl, &cbs, &alert, SSL_TLSEXT_MSG_EE)) | ||
| 331 | goto err; | ||
| 332 | |||
| 333 | if (CBS_len(&cbs) != 0) | ||
| 334 | goto err; | ||
| 335 | |||
| 336 | return 1; | ||
| 337 | |||
| 338 | err: | ||
| 339 | /* XXX - send alert. */ | ||
| 340 | |||
| 341 | return 0; | ||
| 342 | } | ||
