}
/* Create and populate a decoder method */
-void *ossl_decoder_from_dispatch(int id, const OSSL_ALGORITHM *algodef,
- OSSL_PROVIDER *prov)
+void *ossl_decoder_from_algorithm(int id, const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov)
{
OSSL_DECODER *decoder = NULL;
const OSSL_DISPATCH *fns = algodef->implementation;
return NULL;
decoder->base.id = id;
decoder->base.propdef = algodef->property_definition;
+ decoder->base.description = algodef->algorithm_description;
for (; fns->function_id != 0; fns++) {
switch (fns->function_id) {
/*
* The core fetching functionality passes the names of the implementation.
* This function is responsible to getting an identity number for them,
- * then call ossl_decoder_from_dispatch() with that identity number.
+ * then call ossl_decoder_from_algorithm() with that identity number.
*/
static void *construct_decoder(const OSSL_ALGORITHM *algodef,
OSSL_PROVIDER *prov, void *data)
void *method = NULL;
if (id != 0)
- method = ossl_decoder_from_dispatch(id, algodef, prov);
+ method = ossl_decoder_from_algorithm(id, algodef, prov);
/*
* Flag to indicate that there was actual construction errors. This
void *method = NULL;
if (id != 0)
- method = ossl_decoder_from_dispatch(id, algodef, provider);
+ method = ossl_decoder_from_algorithm(id, algodef, provider);
if (method != NULL) {
data->user_fn(method, data->user_arg);
OSSL_PROVIDER *prov;
int id;
const char *propdef;
+ const char *description;
CRYPTO_REF_COUNT refcnt;
CRYPTO_RWLOCK *lock;
}
/* Create and populate a encoder method */
-static void *encoder_from_dispatch(int id, const OSSL_ALGORITHM *algodef,
- OSSL_PROVIDER *prov)
+static void *encoder_from_algorithm(int id, const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov)
{
OSSL_ENCODER *encoder = NULL;
const OSSL_DISPATCH *fns = algodef->implementation;
return NULL;
encoder->base.id = id;
encoder->base.propdef = algodef->property_definition;
+ encoder->base.description = algodef->algorithm_description;
for (; fns->function_id != 0; fns++) {
switch (fns->function_id) {
/*
* The core fetching functionality passes the names of the implementation.
* This function is responsible to getting an identity number for them,
- * then call encoder_from_dispatch() with that identity number.
+ * then call encoder_from_algorithm() with that identity number.
*/
static void *construct_encoder(const OSSL_ALGORITHM *algodef,
OSSL_PROVIDER *prov, void *data)
void *method = NULL;
if (id != 0)
- method = encoder_from_dispatch(id, algodef, prov);
+ method = encoder_from_algorithm(id, algodef, prov);
/*
* Flag to indicate that there was actual construction errors. This
if (id != 0)
method =
- encoder_from_dispatch(id, algodef, provider);
+ encoder_from_algorithm(id, algodef, provider);
if (method != NULL) {
data->user_fn(method, data->user_arg);
return cipher;
}
-static void *evp_asym_cipher_from_dispatch(int name_id,
- const OSSL_DISPATCH *fns,
- OSSL_PROVIDER *prov)
+static void *evp_asym_cipher_from_algorithm(int name_id,
+ const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov)
{
+ const OSSL_DISPATCH *fns = algodef->implementation;
EVP_ASYM_CIPHER *cipher = NULL;
int ctxfncnt = 0, encfncnt = 0, decfncnt = 0;
int gparamfncnt = 0, sparamfncnt = 0;
}
cipher->name_id = name_id;
+ cipher->description = algodef->algorithm_description;
for (; fns->function_id != 0; fns++) {
switch (fns->function_id) {
const char *properties)
{
return evp_generic_fetch(ctx, OSSL_OP_ASYM_CIPHER, algorithm, properties,
- evp_asym_cipher_from_dispatch,
+ evp_asym_cipher_from_algorithm,
(int (*)(void *))EVP_ASYM_CIPHER_up_ref,
(void (*)(void *))EVP_ASYM_CIPHER_free);
}
{
evp_generic_do_all(libctx, OSSL_OP_ASYM_CIPHER,
(void (*)(void *, void *))fn, arg,
- evp_asym_cipher_from_dispatch,
+ evp_asym_cipher_from_algorithm,
(void (*)(void *))EVP_ASYM_CIPHER_free);
}
return ok;
}
-static void *evp_md_from_dispatch(int name_id,
- const OSSL_DISPATCH *fns,
- OSSL_PROVIDER *prov)
+static void *evp_md_from_algorithm(int name_id,
+ const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov)
{
+ const OSSL_DISPATCH *fns = algodef->implementation;
EVP_MD *md = NULL;
int fncnt = 0;
#endif
md->name_id = name_id;
+ md->description = algodef->algorithm_description;
for (; fns->function_id != 0; fns++) {
switch (fns->function_id) {
{
EVP_MD *md =
evp_generic_fetch(ctx, OSSL_OP_DIGEST, algorithm, properties,
- evp_md_from_dispatch, evp_md_up_ref, evp_md_free);
+ evp_md_from_algorithm, evp_md_up_ref, evp_md_free);
return md;
}
{
evp_generic_do_all(libctx, OSSL_OP_DIGEST,
(void (*)(void *, void *))fn, arg,
- evp_md_from_dispatch, evp_md_free);
+ evp_md_from_algorithm, evp_md_free);
}
}
#endif
-static void *evp_cipher_from_dispatch(const int name_id,
- const OSSL_DISPATCH *fns,
- OSSL_PROVIDER *prov)
+static void *evp_cipher_from_algorithm(const int name_id,
+ const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov)
{
+ const OSSL_DISPATCH *fns = algodef->implementation;
EVP_CIPHER *cipher = NULL;
int fnciphcnt = 0, fnctxcnt = 0;
#endif
cipher->name_id = name_id;
+ cipher->description = algodef->algorithm_description;
for (; fns->function_id != 0; fns++) {
switch (fns->function_id) {
{
EVP_CIPHER *cipher =
evp_generic_fetch(ctx, OSSL_OP_CIPHER, algorithm, properties,
- evp_cipher_from_dispatch, evp_cipher_up_ref,
+ evp_cipher_from_algorithm, evp_cipher_up_ref,
evp_cipher_free);
return cipher;
{
evp_generic_do_all(libctx, OSSL_OP_CIPHER,
(void (*)(void *, void *))fn, arg,
- evp_cipher_from_dispatch, evp_cipher_free);
+ evp_cipher_from_algorithm, evp_cipher_free);
}
unsigned int flag_construct_error_occurred : 1;
- void *(*method_from_dispatch)(int name_id, const OSSL_DISPATCH *,
- OSSL_PROVIDER *);
+ void *(*method_from_algorithm)(int name_id, const OSSL_ALGORITHM *,
+ OSSL_PROVIDER *);
int (*refcnt_up_method)(void *method);
void (*destruct_method)(void *method);
};
if (name_id == 0)
return NULL;
- method = methdata->method_from_dispatch(name_id, algodef->implementation,
- prov);
+ method = methdata->method_from_algorithm(name_id, algodef, prov);
/*
* Flag to indicate that there was actual construction errors. This
int name_id, const char *name,
const char *properties,
void *(*new_method)(int name_id,
- const OSSL_DISPATCH *fns,
+ const OSSL_ALGORITHM *algodef,
OSSL_PROVIDER *prov),
int (*up_ref_method)(void *),
void (*free_method)(void *))
mcmdata.name_id = name_id;
mcmdata.names = name;
mcmdata.propquery = properties;
- mcmdata.method_from_dispatch = new_method;
+ mcmdata.method_from_algorithm = new_method;
mcmdata.refcnt_up_method = up_ref_method;
mcmdata.destruct_method = free_method;
mcmdata.flag_construct_error_occurred = 0;
void *evp_generic_fetch(OSSL_LIB_CTX *libctx, int operation_id,
const char *name, const char *properties,
void *(*new_method)(int name_id,
- const OSSL_DISPATCH *fns,
+ const OSSL_ALGORITHM *algodef,
OSSL_PROVIDER *prov),
int (*up_ref_method)(void *),
void (*free_method)(void *))
void *evp_generic_fetch_by_number(OSSL_LIB_CTX *libctx, int operation_id,
int name_id, const char *properties,
void *(*new_method)(int name_id,
- const OSSL_DISPATCH *fns,
+ const OSSL_ALGORITHM *algodef,
OSSL_PROVIDER *prov),
int (*up_ref_method)(void *),
void (*free_method)(void *))
struct do_all_data_st {
void (*user_fn)(void *method, void *arg);
void *user_arg;
- void *(*new_method)(const int name_id, const OSSL_DISPATCH *fns,
+ void *(*new_method)(const int name_id, const OSSL_ALGORITHM *algodef,
OSSL_PROVIDER *prov);
void (*free_method)(void *);
};
void *method = NULL;
if (name_id != 0)
- method = data->new_method(name_id, algo->implementation, provider);
+ method = data->new_method(name_id, algo, provider);
if (method != NULL) {
data->user_fn(method, data->user_arg);
void (*user_fn)(void *method, void *arg),
void *user_arg,
void *(*new_method)(int name_id,
- const OSSL_DISPATCH *fns,
+ const OSSL_ALGORITHM *algodef,
OSSL_PROVIDER *prov),
void (*free_method)(void *))
{
int id; /* libcrypto internal */
int name_id;
+ const char *description;
OSSL_PROVIDER *prov;
CRYPTO_REF_COUNT refcnt;
CRYPTO_RWLOCK *lock;
struct evp_keyexch_st {
int name_id;
+ const char *description;
OSSL_PROVIDER *prov;
CRYPTO_REF_COUNT refcnt;
CRYPTO_RWLOCK *lock;
struct evp_signature_st {
int name_id;
+ const char *description;
OSSL_PROVIDER *prov;
CRYPTO_REF_COUNT refcnt;
CRYPTO_RWLOCK *lock;
struct evp_asym_cipher_st {
int name_id;
+ const char *description;
OSSL_PROVIDER *prov;
CRYPTO_REF_COUNT refcnt;
CRYPTO_RWLOCK *lock;
struct evp_kem_st {
int name_id;
+ const char *description;
OSSL_PROVIDER *prov;
CRYPTO_REF_COUNT refcnt;
CRYPTO_RWLOCK *lock;
void *evp_generic_fetch(OSSL_LIB_CTX *ctx, int operation_id,
const char *name, const char *properties,
void *(*new_method)(int name_id,
- const OSSL_DISPATCH *fns,
+ const OSSL_ALGORITHM *algodef,
OSSL_PROVIDER *prov),
int (*up_ref_method)(void *),
void (*free_method)(void *));
void *evp_generic_fetch_by_number(OSSL_LIB_CTX *ctx, int operation_id,
int name_id, const char *properties,
void *(*new_method)(int name_id,
- const OSSL_DISPATCH *fns,
+ const OSSL_ALGORITHM *algodef,
OSSL_PROVIDER *prov),
int (*up_ref_method)(void *),
void (*free_method)(void *));
void (*user_fn)(void *method, void *arg),
void *user_arg,
void *(*new_method)(int name_id,
- const OSSL_DISPATCH *fns,
+ const OSSL_ALGORITHM *algodef,
OSSL_PROVIDER *prov),
void (*free_method)(void *));
struct evp_rand_st {
OSSL_PROVIDER *prov;
int name_id;
+ const char *description;
CRYPTO_REF_COUNT refcnt;
CRYPTO_RWLOCK *refcnt_lock;
rand->meth->unlock(rand->data);
}
-static void *evp_rand_from_dispatch(int name_id,
- const OSSL_DISPATCH *fns,
- OSSL_PROVIDER *prov)
+static void *evp_rand_from_algorithm(int name_id,
+ const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov)
{
+ const OSSL_DISPATCH *fns = algodef->implementation;
EVP_RAND *rand = NULL;
int fnrandcnt = 0, fnctxcnt = 0, fnlockcnt = 0, fnenablelockcnt = 0;
#ifdef FIPS_MODULE
return NULL;
}
rand->name_id = name_id;
+ rand->description = algodef->algorithm_description;
rand->dispatch = fns;
for (; fns->function_id != 0; fns++) {
switch (fns->function_id) {
const char *properties)
{
return evp_generic_fetch(libctx, OSSL_OP_RAND, algorithm, properties,
- evp_rand_from_dispatch, evp_rand_up_ref,
+ evp_rand_from_algorithm, evp_rand_up_ref,
evp_rand_free);
}
{
evp_generic_do_all(libctx, OSSL_OP_RAND,
(void (*)(void *, void *))fn, arg,
- evp_rand_from_dispatch, evp_rand_free);
+ evp_rand_from_algorithm, evp_rand_free);
}
int EVP_RAND_names_do_all(const EVP_RAND *rand,
return exchange;
}
-static void *evp_keyexch_from_dispatch(int name_id,
- const OSSL_DISPATCH *fns,
- OSSL_PROVIDER *prov)
+static void *evp_keyexch_from_algorithm(int name_id,
+ const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov)
{
+ const OSSL_DISPATCH *fns = algodef->implementation;
EVP_KEYEXCH *exchange = NULL;
int fncnt = 0, sparamfncnt = 0, gparamfncnt = 0;
}
exchange->name_id = name_id;
+ exchange->description = algodef->algorithm_description;
for (; fns->function_id != 0; fns++) {
switch (fns->function_id) {
const char *properties)
{
return evp_generic_fetch(ctx, OSSL_OP_KEYEXCH, algorithm, properties,
- evp_keyexch_from_dispatch,
+ evp_keyexch_from_algorithm,
(int (*)(void *))EVP_KEYEXCH_up_ref,
(void (*)(void *))EVP_KEYEXCH_free);
}
{
evp_generic_do_all(libctx, OSSL_OP_KEYEXCH,
(void (*)(void *, void *))fn, arg,
- evp_keyexch_from_dispatch,
+ evp_keyexch_from_algorithm,
(void (*)(void *))EVP_KEYEXCH_free);
}
return kdf;
}
-static void *evp_kdf_from_dispatch(int name_id,
- const OSSL_DISPATCH *fns,
- OSSL_PROVIDER *prov)
+static void *evp_kdf_from_algorithm(int name_id,
+ const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov)
{
+ const OSSL_DISPATCH *fns = algodef->implementation;
EVP_KDF *kdf = NULL;
int fnkdfcnt = 0, fnctxcnt = 0;
return NULL;
}
kdf->name_id = name_id;
+ kdf->description = algodef->algorithm_description;
for (; fns->function_id != 0; fns++) {
switch (fns->function_id) {
const char *properties)
{
return evp_generic_fetch(libctx, OSSL_OP_KDF, algorithm, properties,
- evp_kdf_from_dispatch, evp_kdf_up_ref,
+ evp_kdf_from_algorithm, evp_kdf_up_ref,
evp_kdf_free);
}
{
evp_generic_do_all(libctx, OSSL_OP_KDF,
(void (*)(void *, void *))fn, arg,
- evp_kdf_from_dispatch, evp_kdf_free);
+ evp_kdf_from_algorithm, evp_kdf_free);
}
return kem;
}
-static void *evp_kem_from_dispatch(int name_id, const OSSL_DISPATCH *fns,
- OSSL_PROVIDER *prov)
+static void *evp_kem_from_algorithm(int name_id, const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov)
{
+ const OSSL_DISPATCH *fns = algodef->implementation;
EVP_KEM *kem = NULL;
int ctxfncnt = 0, encfncnt = 0, decfncnt = 0;
int gparamfncnt = 0, sparamfncnt = 0;
}
kem->name_id = name_id;
+ kem->description = algodef->algorithm_description;
for (; fns->function_id != 0; fns++) {
switch (fns->function_id) {
const char *properties)
{
return evp_generic_fetch(ctx, OSSL_OP_KEM, algorithm, properties,
- evp_kem_from_dispatch,
+ evp_kem_from_algorithm,
(int (*)(void *))EVP_KEM_up_ref,
(void (*)(void *))EVP_KEM_free);
}
void *arg)
{
evp_generic_do_all(libctx, OSSL_OP_KEM, (void (*)(void *, void *))fn, arg,
- evp_kem_from_dispatch,
+ evp_kem_from_algorithm,
(void (*)(void *))EVP_KEM_free);
}
return keymgmt;
}
-static void *keymgmt_from_dispatch(int name_id,
- const OSSL_DISPATCH *fns,
- OSSL_PROVIDER *prov)
+static void *keymgmt_from_algorithm(int name_id,
+ const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov)
{
+ const OSSL_DISPATCH *fns = algodef->implementation;
EVP_KEYMGMT *keymgmt = NULL;
int setparamfncnt = 0, getparamfncnt = 0;
int setgenparamfncnt = 0;
return NULL;
}
keymgmt->name_id = name_id;
+ keymgmt->description = algodef->algorithm_description;
for (; fns->function_id != 0; fns++) {
switch (fns->function_id) {
{
return evp_generic_fetch_by_number(ctx,
OSSL_OP_KEYMGMT, name_id, properties,
- keymgmt_from_dispatch,
+ keymgmt_from_algorithm,
(int (*)(void *))EVP_KEYMGMT_up_ref,
(void (*)(void *))EVP_KEYMGMT_free);
}
const char *properties)
{
return evp_generic_fetch(ctx, OSSL_OP_KEYMGMT, algorithm, properties,
- keymgmt_from_dispatch,
+ keymgmt_from_algorithm,
(int (*)(void *))EVP_KEYMGMT_up_ref,
(void (*)(void *))EVP_KEYMGMT_free);
}
{
evp_generic_do_all(libctx, OSSL_OP_KEYMGMT,
(void (*)(void *, void *))fn, arg,
- keymgmt_from_dispatch,
+ keymgmt_from_algorithm,
(void (*)(void *))EVP_KEYMGMT_free);
}
return mac;
}
-static void *evp_mac_from_dispatch(int name_id,
- const OSSL_DISPATCH *fns,
- OSSL_PROVIDER *prov)
+static void *evp_mac_from_algorithm(int name_id,
+ const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov)
{
+ const OSSL_DISPATCH *fns = algodef->implementation;
EVP_MAC *mac = NULL;
int fnmaccnt = 0, fnctxcnt = 0;
return NULL;
}
mac->name_id = name_id;
+ mac->description = algodef->algorithm_description;
for (; fns->function_id != 0; fns++) {
switch (fns->function_id) {
const char *properties)
{
return evp_generic_fetch(libctx, OSSL_OP_MAC, algorithm, properties,
- evp_mac_from_dispatch, evp_mac_up_ref,
+ evp_mac_from_algorithm, evp_mac_up_ref,
evp_mac_free);
}
{
evp_generic_do_all(libctx, OSSL_OP_MAC,
(void (*)(void *, void *))fn, arg,
- evp_mac_from_dispatch, evp_mac_free);
+ evp_mac_from_algorithm, evp_mac_free);
}
return signature;
}
-static void *evp_signature_from_dispatch(int name_id,
- const OSSL_DISPATCH *fns,
- OSSL_PROVIDER *prov)
+static void *evp_signature_from_algorithm(int name_id,
+ const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov)
{
+ const OSSL_DISPATCH *fns = algodef->implementation;
EVP_SIGNATURE *signature = NULL;
int ctxfncnt = 0, signfncnt = 0, verifyfncnt = 0, verifyrecfncnt = 0;
int digsignfncnt = 0, digverifyfncnt = 0;
}
signature->name_id = name_id;
+ signature->description = algodef->algorithm_description;
for (; fns->function_id != 0; fns++) {
switch (fns->function_id) {
const char *properties)
{
return evp_generic_fetch(ctx, OSSL_OP_SIGNATURE, algorithm, properties,
- evp_signature_from_dispatch,
+ evp_signature_from_algorithm,
(int (*)(void *))EVP_SIGNATURE_up_ref,
(void (*)(void *))EVP_SIGNATURE_free);
}
{
evp_generic_do_all(libctx, OSSL_OP_SIGNATURE,
(void (*)(void *, void *))fn, arg,
- evp_signature_from_dispatch,
+ evp_signature_from_algorithm,
(void (*)(void *))EVP_SIGNATURE_free);
}
OSSL_PROVIDER *prov;
int scheme_id;
const char *propdef;
+ const char *description;
CRYPTO_REF_COUNT refcnt;
CRYPTO_RWLOCK *lock;
up_ref_loader, free_loader);
}
-static void *loader_from_dispatch(int scheme_id, const OSSL_ALGORITHM *algodef,
- OSSL_PROVIDER *prov)
+static void *loader_from_algorithm(int scheme_id, const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov)
{
OSSL_STORE_LOADER *loader = NULL;
const OSSL_DISPATCH *fns = algodef->implementation;
return NULL;
loader->scheme_id = scheme_id;
loader->propdef = algodef->property_definition;
+ loader->description = algodef->algorithm_description;
for (; fns->function_id != 0; fns++) {
switch (fns->function_id) {
/*
* The core fetching functionality passes the scheme of the implementation.
* This function is responsible to getting an identity number for them,
- * then call loader_from_dispatch() with that identity number.
+ * then call loader_from_algorithm() with that identity number.
*/
static void *construct_loader(const OSSL_ALGORITHM *algodef,
OSSL_PROVIDER *prov, void *data)
void *method = NULL;
if (id != 0)
- method = loader_from_dispatch(id, algodef, prov);
+ method = loader_from_algorithm(id, algodef, prov);
/*
* Flag to indicate that there was actual construction errors. This
if (id != 0)
method =
- loader_from_dispatch(id, algodef, provider);
+ loader_from_algorithm(id, algodef, provider);
if (method != NULL) {
data->user_fn(method, data->user_arg);
* In this example, we have a public method creator and destructor.
* It's not absolutely necessary, but is in the spirit of OpenSSL.
*/
- EVP_FOO *EVP_FOO_meth_from_dispatch(int name_id,
- const OSSL_DISPATCH *fns,
- OSSL_PROVIDER *prov,
- void *data)
+ EVP_FOO *EVP_FOO_meth_from_algorithm(int name_id,
+ const OSSL_DISPATCH *fns,
+ OSSL_PROVIDER *prov,
+ void *data)
{
EVP_FOO *foo = NULL;
}
}
- static void *foo_from_dispatch(const OSSL_DISPATCH *fns,
- OSSL_PROVIDER *prov)
+ static void *foo_from_algorithm(const OSSL_DISPATCH *fns,
+ OSSL_PROVIDER *prov)
{
- return EVP_FOO_meth_from_dispatch(fns, prov);
+ return EVP_FOO_meth_from_algorithm(fns, prov);
}
static int foo_up_ref(void *vfoo)
{
EVP_FOO *foo =
evp_generic_fetch(ctx, OSSL_OP_FOO, name, properties,
- foo_from_dispatch, foo_up_ref, foo_free);
+ foo_from_algorithm, foo_up_ref, foo_free);
/*
* If this method exists in legacy form, with a constant NID for the
* except read a DER blob and pass it on as a provider object abstraction
* (provider-object(7)).
*/
-void *ossl_decoder_from_dispatch(int id, const OSSL_ALGORITHM *algodef,
- OSSL_PROVIDER *prov);
+void *ossl_decoder_from_algorithm(int id, const OSSL_ALGORITHM *algodef,
+ OSSL_PROVIDER *prov);
OSSL_DECODER_INSTANCE *
ossl_decoder_instance_new(OSSL_DECODER *decoder, void *decoderctx);
struct evp_mac_st {
OSSL_PROVIDER *prov;
int name_id;
+ const char *description;
CRYPTO_REF_COUNT refcnt;
CRYPTO_RWLOCK *lock;
struct evp_kdf_st {
OSSL_PROVIDER *prov;
int name_id;
+ const char *description;
CRYPTO_REF_COUNT refcnt;
CRYPTO_RWLOCK *lock;
/* New structure members */
/* Above comment to be removed when legacy has gone */
int name_id;
+ const char *description;
OSSL_PROVIDER *prov;
CRYPTO_REF_COUNT refcnt;
CRYPTO_RWLOCK *lock;
/* New structure members */
/* Above comment to be removed when legacy has gone */
int name_id;
+ const char *description;
OSSL_PROVIDER *prov;
CRYPTO_REF_COUNT refcnt;
CRYPTO_RWLOCK *lock;
const char *algorithm_names; /* key */
const char *property_definition; /* key */
const OSSL_DISPATCH *implementation;
+ const char *algorithm_description;
};
/*
* The decoder doesn't need any identification or to be attached to
* any provider, since it's only used locally.
*/
- to_obj = ossl_decoder_from_dispatch(0, &ossl_der_to_obj_algorithm,
- NULL);
+ to_obj = ossl_decoder_from_algorithm(0, &ossl_der_to_obj_algorithm,
+ NULL);
if (to_obj == NULL)
goto err;
to_obj_inst = ossl_decoder_instance_new(to_obj, ctx->provctx);
/*
* newctx and freectx are not strictly necessary. However, the method creator,
- * ossl_decoder_from_dispatch(), demands that they exist, so we make sure to
+ * ossl_decoder_from_algorithm(), demands that they exist, so we make sure to
* oblige.
*/