diff options
Diffstat (limited to 'src/lib/libssl/tls13_key_share.c')
| -rw-r--r-- | src/lib/libssl/tls13_key_share.c | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/src/lib/libssl/tls13_key_share.c b/src/lib/libssl/tls13_key_share.c index 0d1c091462..70f1b673f6 100644 --- a/src/lib/libssl/tls13_key_share.c +++ b/src/lib/libssl/tls13_key_share.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_key_share.c,v 1.6 2020/04/18 14:07:56 jsing Exp $ */ | 1 | /* $OpenBSD: tls13_key_share.c,v 1.7 2022/01/04 11:01:58 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2020 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2020 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -187,28 +187,10 @@ tls13_key_share_public_x25519(struct tls13_key_share *ks, CBB *cbb) | |||
| 187 | int | 187 | int |
| 188 | tls13_key_share_public(struct tls13_key_share *ks, CBB *cbb) | 188 | tls13_key_share_public(struct tls13_key_share *ks, CBB *cbb) |
| 189 | { | 189 | { |
| 190 | CBB key_exchange; | 190 | if (ks->nid == NID_X25519) |
| 191 | 191 | return tls13_key_share_public_x25519(ks, cbb); | |
| 192 | if (!CBB_add_u16(cbb, ks->group_id)) | ||
| 193 | goto err; | ||
| 194 | if (!CBB_add_u16_length_prefixed(cbb, &key_exchange)) | ||
| 195 | goto err; | ||
| 196 | |||
| 197 | if (ks->nid == NID_X25519) { | ||
| 198 | if (!tls13_key_share_public_x25519(ks, &key_exchange)) | ||
| 199 | goto err; | ||
| 200 | } else { | ||
| 201 | if (!tls13_key_share_public_ecdhe_ecp(ks, &key_exchange)) | ||
| 202 | goto err; | ||
| 203 | } | ||
| 204 | |||
| 205 | if (!CBB_flush(cbb)) | ||
| 206 | goto err; | ||
| 207 | |||
| 208 | return 1; | ||
| 209 | 192 | ||
| 210 | err: | 193 | return tls13_key_share_public_ecdhe_ecp(ks, cbb); |
| 211 | return 0; | ||
| 212 | } | 194 | } |
| 213 | 195 | ||
| 214 | static int | 196 | static int |
