Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f2aefdab authored by Herbert Xu's avatar Herbert Xu
Browse files

crypto: api - Add crypto_type_has_alg helper



This patch adds the helper crypto_type_has_alg which is meant
to replace crypto_has_alg for new-style crypto types.  Rather
than hard-coding type/mask information they're now retrieved
from the crypto_type object.

Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 1aaa753d
Loading
Loading
Loading
Loading
+15 −0
Original line number Original line Diff line number Diff line
@@ -987,6 +987,21 @@ unsigned int crypto_alg_extsize(struct crypto_alg *alg)
}
}
EXPORT_SYMBOL_GPL(crypto_alg_extsize);
EXPORT_SYMBOL_GPL(crypto_alg_extsize);


int crypto_type_has_alg(const char *name, const struct crypto_type *frontend,
			u32 type, u32 mask)
{
	int ret = 0;
	struct crypto_alg *alg = crypto_find_alg(name, frontend, type, mask);

	if (!IS_ERR(alg)) {
		crypto_mod_put(alg);
		ret = 1;
	}

	return ret;
}
EXPORT_SYMBOL_GPL(crypto_type_has_alg);

static int __init crypto_algapi_init(void)
static int __init crypto_algapi_init(void)
{
{
	crypto_init_proc();
	crypto_init_proc();
+3 −0
Original line number Original line Diff line number Diff line
@@ -104,6 +104,9 @@ int crypto_probing_notify(unsigned long val, void *v);


unsigned int crypto_alg_extsize(struct crypto_alg *alg);
unsigned int crypto_alg_extsize(struct crypto_alg *alg);


int crypto_type_has_alg(const char *name, const struct crypto_type *frontend,
			u32 type, u32 mask);

static inline struct crypto_alg *crypto_alg_get(struct crypto_alg *alg)
static inline struct crypto_alg *crypto_alg_get(struct crypto_alg *alg)
{
{
	atomic_inc(&alg->cra_refcnt);
	atomic_inc(&alg->cra_refcnt);