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, 17 insertions, 9 deletions
diff --git a/src/lib/libssl/tls13_key_share.c b/src/lib/libssl/tls13_key_share.c
index c38a3e3cb8..5404c04070 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.3 2020/02/04 18:06:26 jsing Exp $ */ 1/* $OpenBSD: tls13_key_share.c,v 1.4 2020/04/17 17:16:53 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2020 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2020 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -36,24 +36,32 @@ struct tls13_key_share {
36}; 36};
37 37
38struct tls13_key_share * 38struct tls13_key_share *
39tls13_key_share_new(int nid) 39tls13_key_share_new(uint16_t group_id)
40{ 40{
41 struct tls13_key_share *ks; 41 struct tls13_key_share *ks;
42 int nid;
42 43
43 if ((ks = calloc(1, sizeof(struct tls13_key_share))) == NULL) 44 if ((nid = tls1_ec_curve_id2nid(group_id)) == 0)
44 goto err; 45 return NULL;
45 46
46 if ((ks->group_id = tls1_ec_nid2curve_id(nid)) == 0) 47 if ((ks = calloc(1, sizeof(struct tls13_key_share))) == NULL)
47 goto err; 48 return NULL;
48 49
50 ks->group_id = group_id;
49 ks->nid = nid; 51 ks->nid = nid;
50 52
51 return ks; 53 return ks;
54}
52 55
53 err: 56struct tls13_key_share *
54 tls13_key_share_free(ks); 57tls13_key_share_new_nid(int nid)
58{
59 uint16_t group_id;
60
61 if ((group_id = tls1_ec_nid2curve_id(nid)) == 0)
62 return NULL;
55 63
56 return NULL; 64 return tls13_key_share_new(group_id);
57} 65}
58 66
59void 67void