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

crypto: rng - Ensure set_ent is always present



Ensure that set_ent is always set since only drbg provides it.

Fixes: 77ebdabe ("crypto: af_alg - add extra parameters for DRBG interface")
Reported-by: default avatarYiqi Sun <sunyiqixm@gmail.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent ca1354f7
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -168,6 +168,11 @@ int crypto_del_default_rng(void)
EXPORT_SYMBOL_GPL(crypto_del_default_rng);
#endif

static void rng_default_set_ent(struct crypto_rng *tfm, const u8 *data,
				unsigned int len)
{
}

int crypto_register_rng(struct rng_alg *alg)
{
	struct crypto_alg *base = &alg->base;
@@ -179,6 +184,9 @@ int crypto_register_rng(struct rng_alg *alg)
	base->cra_flags &= ~CRYPTO_ALG_TYPE_MASK;
	base->cra_flags |= CRYPTO_ALG_TYPE_RNG;

	if (!alg->set_ent)
		alg->set_ent = rng_default_set_ent;

	return crypto_register_alg(base);
}
EXPORT_SYMBOL_GPL(crypto_register_rng);