/* pmeth_lib.c */
-/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
+/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 2006.
*/
/* ====================================================================
&rsa_pkey_meth,
&dh_pkey_meth,
&dsa_pkey_meth,
+#ifndef OPENSSL_NO_EC
&ec_pkey_meth,
+#endif
&hmac_pkey_meth,
};
DECLARE_OBJ_BSEARCH_CMP_FN(const EVP_PKEY_METHOD *, const EVP_PKEY_METHOD *,
- pmeth_cmp);
+ pmeth);
static int pmeth_cmp(const EVP_PKEY_METHOD * const *a,
const EVP_PKEY_METHOD * const *b)
}
IMPLEMENT_OBJ_BSEARCH_CMP_FN(const EVP_PKEY_METHOD *, const EVP_PKEY_METHOD *,
- pmeth_cmp);
+ pmeth);
const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type)
{
if (idx >= 0)
return sk_EVP_PKEY_METHOD_value(app_pkey_methods, idx);
}
- ret = OBJ_bsearch(const EVP_PKEY_METHOD *, &t,
- const EVP_PKEY_METHOD *, standard_methods,
- sizeof(standard_methods)/sizeof(EVP_PKEY_METHOD *),
- pmeth_cmp);
+ ret = OBJ_bsearch_pmeth(&t, standard_methods,
+ sizeof(standard_methods)/sizeof(EVP_PKEY_METHOD *));
if (!ret || !*ret)
return NULL;
return *ret;
return NULL;
id = pkey->ameth->pkey_id;
}
+#ifndef OPENSSL_NO_ENGINE
/* Try to find an ENGINE which implements this method */
if (e)
{
if (e)
pmeth = ENGINE_get_pkey_meth(e, id);
else
+#endif
pmeth = EVP_PKEY_meth_find(id);
if (pmeth == NULL)
ret = OPENSSL_malloc(sizeof(EVP_PKEY_CTX));
if (!ret)
{
+#ifndef OPENSSL_NO_ENGINE
if (e)
ENGINE_finish(e);
+#endif
EVPerr(EVP_F_INT_CTX_NEW,ERR_R_MALLOC_FAILURE);
return NULL;
}
void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth,
int (*encrypt_init)(EVP_PKEY_CTX *ctx),
- int (*encrypt)(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
+ int (*encryptfn)(EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
const unsigned char *in, size_t inlen))
{
pmeth->encrypt_init = encrypt_init;
- pmeth->encrypt = encrypt;
+ pmeth->encrypt = encryptfn;
}
void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth,