[CRYPTO] api: Add crypto_attr_alg_name
This patch adds a new helper crypto_attr_alg_name which is basically the first half of crypto_attr_alg. That is, it returns an algorithm name parameter as a string without looking it up. The caller can then look it up immediately or defer it until later. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
551a09a7a9
commit
68b6c7d691
2 changed files with 17 additions and 2 deletions
|
@ -472,7 +472,7 @@ int crypto_check_attr_type(struct rtattr **tb, u32 type)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(crypto_check_attr_type);
|
EXPORT_SYMBOL_GPL(crypto_check_attr_type);
|
||||||
|
|
||||||
struct crypto_alg *crypto_attr_alg(struct rtattr *rta, u32 type, u32 mask)
|
const char *crypto_attr_alg_name(struct rtattr *rta)
|
||||||
{
|
{
|
||||||
struct crypto_attr_alg *alga;
|
struct crypto_attr_alg *alga;
|
||||||
|
|
||||||
|
@ -486,7 +486,21 @@ struct crypto_alg *crypto_attr_alg(struct rtattr *rta, u32 type, u32 mask)
|
||||||
alga = RTA_DATA(rta);
|
alga = RTA_DATA(rta);
|
||||||
alga->name[CRYPTO_MAX_ALG_NAME - 1] = 0;
|
alga->name[CRYPTO_MAX_ALG_NAME - 1] = 0;
|
||||||
|
|
||||||
return crypto_alg_mod_lookup(alga->name, type, mask);
|
return alga->name;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(crypto_attr_alg_name);
|
||||||
|
|
||||||
|
struct crypto_alg *crypto_attr_alg(struct rtattr *rta, u32 type, u32 mask)
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
name = crypto_attr_alg_name(rta);
|
||||||
|
err = PTR_ERR(name);
|
||||||
|
if (IS_ERR(name))
|
||||||
|
return ERR_PTR(err);
|
||||||
|
|
||||||
|
return crypto_alg_mod_lookup(name, type, mask);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(crypto_attr_alg);
|
EXPORT_SYMBOL_GPL(crypto_attr_alg);
|
||||||
|
|
||||||
|
|
|
@ -113,6 +113,7 @@ struct crypto_tfm *crypto_spawn_tfm(struct crypto_spawn *spawn, u32 type,
|
||||||
|
|
||||||
struct crypto_attr_type *crypto_get_attr_type(struct rtattr **tb);
|
struct crypto_attr_type *crypto_get_attr_type(struct rtattr **tb);
|
||||||
int crypto_check_attr_type(struct rtattr **tb, u32 type);
|
int crypto_check_attr_type(struct rtattr **tb, u32 type);
|
||||||
|
const char *crypto_attr_alg_name(struct rtattr *rta);
|
||||||
struct crypto_alg *crypto_attr_alg(struct rtattr *rta, u32 type, u32 mask);
|
struct crypto_alg *crypto_attr_alg(struct rtattr *rta, u32 type, u32 mask);
|
||||||
int crypto_attr_u32(struct rtattr *rta, u32 *num);
|
int crypto_attr_u32(struct rtattr *rta, u32 *num);
|
||||||
struct crypto_instance *crypto_alloc_instance(const char *name,
|
struct crypto_instance *crypto_alloc_instance(const char *name,
|
||||||
|
|
Loading…
Reference in a new issue