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.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/lib/libssl/tls13_key_share.c b/src/lib/libssl/tls13_key_share.c
index 58544dc1db..0d1c091462 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.5 2020/04/18 13:43:47 jsing Exp $ */ 1/* $OpenBSD: tls13_key_share.c,v 1.6 2020/04/18 14:07:56 jsing Exp $ */
2/* 2/*
3 * Copyright (c) 2020 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2020 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -86,6 +86,22 @@ tls13_key_share_group(struct tls13_key_share *ks)
86 return ks->group_id; 86 return ks->group_id;
87} 87}
88 88
89int
90tls13_key_share_peer_pkey(struct tls13_key_share *ks, EVP_PKEY *pkey)
91{
92 if (ks->nid == NID_X25519 && ks->x25519_peer_public != NULL) {
93 if (!ssl_kex_dummy_ecdhe_x25519(pkey))
94 return 0;
95 } else if (ks->ecdhe_peer != NULL) {
96 if (!EVP_PKEY_set1_EC_KEY(pkey, ks->ecdhe_peer))
97 return 0;
98 } else {
99 return 0;
100 }
101
102 return 1;
103}
104
89static int 105static int
90tls13_key_share_generate_ecdhe_ecp(struct tls13_key_share *ks) 106tls13_key_share_generate_ecdhe_ecp(struct tls13_key_share *ks)
91{ 107{