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

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

crypto: aead - Add multiple algorithm registration interface



This patch adds the helpers that allow the registration and removal
of multiple algorithms.

Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 43615369
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -896,6 +896,35 @@ void crypto_unregister_aead(struct aead_alg *alg)
}
EXPORT_SYMBOL_GPL(crypto_unregister_aead);

int crypto_register_aeads(struct aead_alg *algs, int count)
{
	int i, ret;

	for (i = 0; i < count; i++) {
		ret = crypto_register_aead(&algs[i]);
		if (ret)
			goto err;
	}

	return 0;

err:
	for (--i; i >= 0; --i)
		crypto_unregister_aead(&algs[i]);

	return ret;
}
EXPORT_SYMBOL_GPL(crypto_register_aeads);

void crypto_unregister_aeads(struct aead_alg *algs, int count)
{
	int i;

	for (i = count - 1; i >= 0; --i)
		crypto_unregister_aead(&algs[i]);
}
EXPORT_SYMBOL_GPL(crypto_unregister_aeads);

int aead_register_instance(struct crypto_template *tmpl,
			   struct aead_instance *inst)
{
+2 −0
Original line number Diff line number Diff line
@@ -152,6 +152,8 @@ static inline unsigned int crypto_aead_maxauthsize(struct crypto_aead *aead)

int crypto_register_aead(struct aead_alg *alg);
void crypto_unregister_aead(struct aead_alg *alg);
int crypto_register_aeads(struct aead_alg *algs, int count);
void crypto_unregister_aeads(struct aead_alg *algs, int count);
int aead_register_instance(struct crypto_template *tmpl,
			   struct aead_instance *inst);