Latest update.
This commit is contained in:
+14
-79
@@ -171,75 +171,6 @@ EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e,
|
||||
return mac_key;
|
||||
}
|
||||
|
||||
int EVP_PKEY_check(EVP_PKEY_CTX *ctx)
|
||||
{
|
||||
EVP_PKEY *pkey = ctx->pkey;
|
||||
|
||||
if (pkey == NULL) {
|
||||
EVPerr(EVP_F_EVP_PKEY_CHECK, EVP_R_NO_KEY_SET);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* call customized check function first */
|
||||
if (ctx->pmeth->check != NULL)
|
||||
return ctx->pmeth->check(pkey);
|
||||
|
||||
/* use default check function in ameth */
|
||||
if (pkey->ameth == NULL || pkey->ameth->pkey_check == NULL) {
|
||||
EVPerr(EVP_F_EVP_PKEY_CHECK,
|
||||
EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
|
||||
return -2;
|
||||
}
|
||||
|
||||
return pkey->ameth->pkey_check(pkey);
|
||||
}
|
||||
|
||||
int EVP_PKEY_public_check(EVP_PKEY_CTX *ctx)
|
||||
{
|
||||
EVP_PKEY *pkey = ctx->pkey;
|
||||
|
||||
if (pkey == NULL) {
|
||||
EVPerr(EVP_F_EVP_PKEY_PUBLIC_CHECK, EVP_R_NO_KEY_SET);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* call customized public key check function first */
|
||||
if (ctx->pmeth->public_check != NULL)
|
||||
return ctx->pmeth->public_check(pkey);
|
||||
|
||||
/* use default public key check function in ameth */
|
||||
if (pkey->ameth == NULL || pkey->ameth->pkey_public_check == NULL) {
|
||||
EVPerr(EVP_F_EVP_PKEY_PUBLIC_CHECK,
|
||||
EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
|
||||
return -2;
|
||||
}
|
||||
|
||||
return pkey->ameth->pkey_public_check(pkey);
|
||||
}
|
||||
|
||||
int EVP_PKEY_param_check(EVP_PKEY_CTX *ctx)
|
||||
{
|
||||
EVP_PKEY *pkey = ctx->pkey;
|
||||
|
||||
if (pkey == NULL) {
|
||||
EVPerr(EVP_F_EVP_PKEY_PARAM_CHECK, EVP_R_NO_KEY_SET);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* call customized param check function first */
|
||||
if (ctx->pmeth->param_check != NULL)
|
||||
return ctx->pmeth->param_check(pkey);
|
||||
|
||||
/* use default param check function in ameth */
|
||||
if (pkey->ameth == NULL || pkey->ameth->pkey_param_check == NULL) {
|
||||
EVPerr(EVP_F_EVP_PKEY_PARAM_CHECK,
|
||||
EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
|
||||
return -2;
|
||||
}
|
||||
|
||||
return pkey->ameth->pkey_param_check(pkey);
|
||||
}
|
||||
|
||||
#endif /* FIPS_MODE */
|
||||
|
||||
/*- All methods below can also be used in FIPS_MODE */
|
||||
@@ -277,7 +208,8 @@ int EVP_PKEY_key_fromdata_init(EVP_PKEY_CTX *ctx)
|
||||
|
||||
int EVP_PKEY_fromdata(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey, OSSL_PARAM params[])
|
||||
{
|
||||
void *provdata = NULL;
|
||||
void *keydata = NULL;
|
||||
int selection;
|
||||
|
||||
if (ctx == NULL || (ctx->operation & EVP_PKEY_OP_TYPE_FROMDATA) == 0) {
|
||||
ERR_raise(ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
|
||||
@@ -295,13 +227,16 @@ int EVP_PKEY_fromdata(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey, OSSL_PARAM params[])
|
||||
return -1;
|
||||
}
|
||||
|
||||
provdata =
|
||||
evp_keymgmt_fromdata(*ppkey, ctx->keymgmt, params,
|
||||
ctx->operation == EVP_PKEY_OP_PARAMFROMDATA);
|
||||
if (ctx->operation == EVP_PKEY_OP_PARAMFROMDATA)
|
||||
selection = OSSL_KEYMGMT_SELECT_ALL_PARAMETERS;
|
||||
else
|
||||
selection = OSSL_KEYMGMT_SELECT_KEYPAIR;
|
||||
keydata = evp_keymgmt_util_fromdata(*ppkey, ctx->keymgmt, selection,
|
||||
params);
|
||||
|
||||
if (provdata == NULL)
|
||||
if (keydata == NULL)
|
||||
return 0;
|
||||
/* provdata is cached in *ppkey, so we need not bother with it further */
|
||||
/* keydata is cached in *ppkey, so we need not bother with it further */
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -316,7 +251,8 @@ const OSSL_PARAM *EVP_PKEY_param_fromdata_settable(EVP_PKEY_CTX *ctx)
|
||||
{
|
||||
/* We call fromdata_init to get ctx->keymgmt populated */
|
||||
if (fromdata_init(ctx, EVP_PKEY_OP_UNDEFINED))
|
||||
return evp_keymgmt_importdomparam_types(ctx->keymgmt);
|
||||
return evp_keymgmt_import_types(ctx->keymgmt,
|
||||
OSSL_KEYMGMT_SELECT_ALL_PARAMETERS);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -324,8 +260,7 @@ const OSSL_PARAM *EVP_PKEY_key_fromdata_settable(EVP_PKEY_CTX *ctx)
|
||||
{
|
||||
/* We call fromdata_init to get ctx->keymgmt populated */
|
||||
if (fromdata_init(ctx, EVP_PKEY_OP_UNDEFINED))
|
||||
return evp_keymgmt_importdomparam_types(ctx->keymgmt);
|
||||
return evp_keymgmt_import_types(ctx->keymgmt,
|
||||
OSSL_KEYMGMT_SELECT_KEYPAIR);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user