diff options
Diffstat (limited to 'src/lib/libcrypto/evp/pmeth_gn.c')
-rw-r--r-- | src/lib/libcrypto/evp/pmeth_gn.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/lib/libcrypto/evp/pmeth_gn.c b/src/lib/libcrypto/evp/pmeth_gn.c index 066291b800..a8a4cc97db 100644 --- a/src/lib/libcrypto/evp/pmeth_gn.c +++ b/src/lib/libcrypto/evp/pmeth_gn.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pmeth_gn.c,v 1.8 2021/12/04 16:08:32 tb Exp $ */ | 1 | /* $OpenBSD: pmeth_gn.c,v 1.9 2022/01/10 11:52:43 tb Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project 2006. | 3 | * project 2006. |
4 | */ | 4 | */ |
@@ -64,6 +64,7 @@ | |||
64 | #include <openssl/evp.h> | 64 | #include <openssl/evp.h> |
65 | #include <openssl/objects.h> | 65 | #include <openssl/objects.h> |
66 | 66 | ||
67 | #include "asn1_locl.h" | ||
67 | #include "bn_lcl.h" | 68 | #include "bn_lcl.h" |
68 | #include "evp_locl.h" | 69 | #include "evp_locl.h" |
69 | 70 | ||
@@ -222,3 +223,24 @@ merr: | |||
222 | EVP_PKEY_CTX_free(mac_ctx); | 223 | EVP_PKEY_CTX_free(mac_ctx); |
223 | return mac_key; | 224 | return mac_key; |
224 | } | 225 | } |
226 | |||
227 | int | ||
228 | EVP_PKEY_check(EVP_PKEY_CTX *ctx) | ||
229 | { | ||
230 | EVP_PKEY *pkey; | ||
231 | |||
232 | if ((pkey = ctx->pkey) == NULL) { | ||
233 | EVPerror(EVP_R_NO_KEY_SET); | ||
234 | return 0; | ||
235 | } | ||
236 | |||
237 | if (ctx->pmeth->check != NULL) | ||
238 | return ctx->pmeth->check(pkey); | ||
239 | |||
240 | if (pkey->ameth == NULL || pkey->ameth->pkey_check == NULL) { | ||
241 | EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE); | ||
242 | return -2; | ||
243 | } | ||
244 | |||
245 | return pkey->ameth->pkey_check(pkey); | ||
246 | } | ||