summaryrefslogtreecommitdiff
path: root/src/lib/libssl/tls13_key_share.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/tls13_key_share.c')
-rw-r--r--src/lib/libssl/tls13_key_share.c26
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)
187int 187int
188tls13_key_share_public(struct tls13_key_share *ks, CBB *cbb) 188tls13_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
214static int 196static int