diff options
Diffstat (limited to 'src/lib/libssl/tls13_key_share.c')
| -rw-r--r-- | src/lib/libssl/tls13_key_share.c | 18 |
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 | ||
| 89 | int | ||
| 90 | tls13_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 | |||
| 89 | static int | 105 | static int |
| 90 | tls13_key_share_generate_ecdhe_ecp(struct tls13_key_share *ks) | 106 | tls13_key_share_generate_ecdhe_ecp(struct tls13_key_share *ks) |
| 91 | { | 107 | { |
