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, 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 | ||
38 | struct tls13_key_share * | 38 | struct tls13_key_share * |
39 | tls13_key_share_new(int nid) | 39 | tls13_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: | 56 | struct tls13_key_share * |
54 | tls13_key_share_free(ks); | 57 | tls13_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 | ||
59 | void | 67 | void |