mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-23 23:21:46 +00:00
crypto: api - Add crypto_attr_alg2 helper
This patch adds the helper crypto_attr_alg2 which is similar to crypto_attr_alg but takes an extra frontend argument. This is intended to be used by new style algorithm types such as shash. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
942969992d
commit
d06854f024
4 changed files with 40 additions and 13 deletions
31
crypto/api.c
31
crypto/api.c
|
@ -503,6 +503,27 @@ out:
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(crypto_create_tfm);
|
||||
|
||||
struct crypto_alg *crypto_find_alg(const char *alg_name,
|
||||
const struct crypto_type *frontend,
|
||||
u32 type, u32 mask)
|
||||
{
|
||||
struct crypto_alg *(*lookup)(const char *name, u32 type, u32 mask) =
|
||||
crypto_alg_mod_lookup;
|
||||
|
||||
if (frontend) {
|
||||
type &= frontend->maskclear;
|
||||
mask &= frontend->maskclear;
|
||||
type |= frontend->type;
|
||||
mask |= frontend->maskset;
|
||||
|
||||
if (frontend->lookup)
|
||||
lookup = frontend->lookup;
|
||||
}
|
||||
|
||||
return lookup(alg_name, type, mask);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(crypto_find_alg);
|
||||
|
||||
/*
|
||||
* crypto_alloc_tfm - Locate algorithm and allocate transform
|
||||
* @alg_name: Name of algorithm
|
||||
|
@ -526,21 +547,13 @@ EXPORT_SYMBOL_GPL(crypto_create_tfm);
|
|||
void *crypto_alloc_tfm(const char *alg_name,
|
||||
const struct crypto_type *frontend, u32 type, u32 mask)
|
||||
{
|
||||
struct crypto_alg *(*lookup)(const char *name, u32 type, u32 mask);
|
||||
void *tfm;
|
||||
int err;
|
||||
|
||||
type &= frontend->maskclear;
|
||||
mask &= frontend->maskclear;
|
||||
type |= frontend->type;
|
||||
mask |= frontend->maskset;
|
||||
|
||||
lookup = frontend->lookup ?: crypto_alg_mod_lookup;
|
||||
|
||||
for (;;) {
|
||||
struct crypto_alg *alg;
|
||||
|
||||
alg = lookup(alg_name, type, mask);
|
||||
alg = crypto_find_alg(alg_name, frontend, type, mask);
|
||||
if (IS_ERR(alg)) {
|
||||
err = PTR_ERR(alg);
|
||||
goto err;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue