summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_tlsext.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/ssl_tlsext.c')
-rw-r--r--src/lib/libssl/ssl_tlsext.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lib/libssl/ssl_tlsext.c b/src/lib/libssl/ssl_tlsext.c
index 58ba11954d..3d1d1c8b7b 100644
--- a/src/lib/libssl/ssl_tlsext.c
+++ b/src/lib/libssl/ssl_tlsext.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_tlsext.c,v 1.59 2020/02/01 12:41:58 jsing Exp $ */ 1/* $OpenBSD: ssl_tlsext.c,v 1.60 2020/02/06 13:14:17 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org>
4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> 4 * Copyright (c) 2017 Doug Hogan <doug@openbsd.org>
@@ -1338,11 +1338,17 @@ tlsext_keyshare_client_parse(SSL *s, CBS *cbs, int *alert)
1338 /* Unpack server share. */ 1338 /* Unpack server share. */
1339 if (!CBS_get_u16(cbs, &group)) 1339 if (!CBS_get_u16(cbs, &group))
1340 goto err; 1340 goto err;
1341
1342 if (CBS_len(cbs) == 0) {
1343 /* HRR does not include an actual key share. */
1344 /* XXX - we should know that we are in a HRR... */
1345 S3I(s)->hs_tls13.server_group = group;
1346 return 1;
1347 }
1348
1341 if (!CBS_get_u16_length_prefixed(cbs, &key_exchange)) 1349 if (!CBS_get_u16_length_prefixed(cbs, &key_exchange))
1342 return 0; 1350 return 0;
1343 1351
1344 /* XXX - Handle other groups and verify that they're valid. */
1345
1346 if (!tls13_key_share_peer_public(S3I(s)->hs_tls13.key_share, 1352 if (!tls13_key_share_peer_public(S3I(s)->hs_tls13.key_share,
1347 group, &key_exchange)) 1353 group, &key_exchange))
1348 goto err; 1354 goto err;