summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/evp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/evp')
-rw-r--r--src/lib/libcrypto/evp/evp_local.h10
-rw-r--r--src/lib/libcrypto/evp/pmeth_gn.c60
2 files changed, 12 insertions, 58 deletions
diff --git a/src/lib/libcrypto/evp/evp_local.h b/src/lib/libcrypto/evp/evp_local.h
index 5d541ffec4..54cd65d0af 100644
--- a/src/lib/libcrypto/evp/evp_local.h
+++ b/src/lib/libcrypto/evp/evp_local.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: evp_local.h,v 1.24 2024/08/28 07:15:04 tb Exp $ */ 1/* $OpenBSD: evp_local.h,v 1.25 2024/08/29 16:58:19 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 2000. 3 * project 2000.
4 */ 4 */
@@ -140,10 +140,6 @@ struct evp_pkey_asn1_method_st {
140 int (*item_sign)(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn, 140 int (*item_sign)(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,
141 X509_ALGOR *alg1, X509_ALGOR *alg2, ASN1_BIT_STRING *sig); 141 X509_ALGOR *alg1, X509_ALGOR *alg2, ASN1_BIT_STRING *sig);
142 142
143 int (*pkey_check)(const EVP_PKEY *pk);
144 int (*pkey_public_check)(const EVP_PKEY *pk);
145 int (*pkey_param_check)(const EVP_PKEY *pk);
146
147 int (*set_priv_key)(EVP_PKEY *pk, const unsigned char *private_key, 143 int (*set_priv_key)(EVP_PKEY *pk, const unsigned char *private_key,
148 size_t len); 144 size_t len);
149 int (*set_pub_key)(EVP_PKEY *pk, const unsigned char *public_key, 145 int (*set_pub_key)(EVP_PKEY *pk, const unsigned char *public_key,
@@ -322,10 +318,6 @@ struct evp_pkey_method_st {
322 const unsigned char *tbs, size_t tbslen); 318 const unsigned char *tbs, size_t tbslen);
323 int (*digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig, 319 int (*digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig,
324 size_t siglen, const unsigned char *tbs, size_t tbslen); 320 size_t siglen, const unsigned char *tbs, size_t tbslen);
325
326 int (*check)(EVP_PKEY *pkey);
327 int (*public_check)(EVP_PKEY *pkey);
328 int (*param_check)(EVP_PKEY *pkey);
329} /* EVP_PKEY_METHOD */; 321} /* EVP_PKEY_METHOD */;
330 322
331void evp_pkey_set_cb_translate(BN_GENCB *cb, EVP_PKEY_CTX *ctx); 323void evp_pkey_set_cb_translate(BN_GENCB *cb, EVP_PKEY_CTX *ctx);
diff --git a/src/lib/libcrypto/evp/pmeth_gn.c b/src/lib/libcrypto/evp/pmeth_gn.c
index 1c355e594a..415690cd0e 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.19 2024/04/17 08:24:11 tb Exp $ */ 1/* $OpenBSD: pmeth_gn.c,v 1.20 2024/08/29 16:58:19 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 */
@@ -226,68 +226,30 @@ merr:
226} 226}
227LCRYPTO_ALIAS(EVP_PKEY_new_mac_key); 227LCRYPTO_ALIAS(EVP_PKEY_new_mac_key);
228 228
229/*
230 * XXX - remove the API below in the next bump.
231 */
232
229int 233int
230EVP_PKEY_check(EVP_PKEY_CTX *ctx) 234EVP_PKEY_check(EVP_PKEY_CTX *ctx)
231{ 235{
232 EVP_PKEY *pkey; 236 EVPerror(ERR_R_DISABLED);
233 237 return -2;
234 if ((pkey = ctx->pkey) == NULL) {
235 EVPerror(EVP_R_NO_KEY_SET);
236 return 0;
237 }
238
239 if (ctx->pmeth->check != NULL)
240 return ctx->pmeth->check(pkey);
241
242 if (pkey->ameth == NULL || pkey->ameth->pkey_check == NULL) {
243 EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
244 return -2;
245 }
246
247 return pkey->ameth->pkey_check(pkey);
248} 238}
249LCRYPTO_ALIAS(EVP_PKEY_check); 239LCRYPTO_ALIAS(EVP_PKEY_check);
250 240
251int 241int
252EVP_PKEY_public_check(EVP_PKEY_CTX *ctx) 242EVP_PKEY_public_check(EVP_PKEY_CTX *ctx)
253{ 243{
254 EVP_PKEY *pkey; 244 EVPerror(ERR_R_DISABLED);
255 245 return -2;
256 if ((pkey = ctx->pkey) == NULL) {
257 EVPerror(EVP_R_NO_KEY_SET);
258 return 0;
259 }
260
261 if (ctx->pmeth->public_check != NULL)
262 return ctx->pmeth->public_check(pkey);
263
264 if (pkey->ameth == NULL || pkey->ameth->pkey_public_check == NULL) {
265 EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
266 return -2;
267 }
268
269 return pkey->ameth->pkey_public_check(pkey);
270} 246}
271LCRYPTO_ALIAS(EVP_PKEY_public_check); 247LCRYPTO_ALIAS(EVP_PKEY_public_check);
272 248
273int 249int
274EVP_PKEY_param_check(EVP_PKEY_CTX *ctx) 250EVP_PKEY_param_check(EVP_PKEY_CTX *ctx)
275{ 251{
276 EVP_PKEY *pkey; 252 EVPerror(ERR_R_DISABLED);
277 253 return -2;
278 if ((pkey = ctx->pkey) == NULL) {
279 EVPerror(EVP_R_NO_KEY_SET);
280 return 0;
281 }
282
283 if (ctx->pmeth->param_check != NULL)
284 return ctx->pmeth->param_check(pkey);
285
286 if (pkey->ameth == NULL || pkey->ameth->pkey_param_check == NULL) {
287 EVPerror(EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
288 return -2;
289 }
290
291 return pkey->ameth->pkey_param_check(pkey);
292} 254}
293LCRYPTO_ALIAS(EVP_PKEY_param_check); 255LCRYPTO_ALIAS(EVP_PKEY_param_check);