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

Commit 881cd6c5 authored by Herbert Xu's avatar Herbert Xu
Browse files

crypto: rng - Add multiple algorithm registration interface



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

Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 7ca99d81
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -233,5 +233,34 @@ void crypto_unregister_rng(struct rng_alg *alg)
}
EXPORT_SYMBOL_GPL(crypto_unregister_rng);

int crypto_register_rngs(struct rng_alg *algs, int count)
{
	int i, ret;

	for (i = 0; i < count; i++) {
		ret = crypto_register_rng(algs + i);
		if (ret)
			goto err;
	}

	return 0;

err:
	for (--i; i >= 0; --i)
		crypto_unregister_rng(algs + i);

	return ret;
}
EXPORT_SYMBOL_GPL(crypto_register_rngs);

void crypto_unregister_rngs(struct rng_alg *algs, int count)
{
	int i;

	for (i = count - 1; i >= 0; --i)
		crypto_unregister_rng(algs + i);
}
EXPORT_SYMBOL_GPL(crypto_unregister_rngs);

MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Random Number Generator");
+2 −0
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ extern const struct crypto_type crypto_rng_type;

int crypto_register_rng(struct rng_alg *alg);
void crypto_unregister_rng(struct rng_alg *alg);
int crypto_register_rngs(struct rng_alg *algs, int count);
void crypto_unregister_rngs(struct rng_alg *algs, int count);

static inline void *crypto_rng_ctx(struct crypto_rng *tfm)
{