[PATCH] crypto: atmel-sha204a - Set hwrng quality to lowest possible

Marek Behún posted 1 patch 9 months, 3 weeks ago
drivers/crypto/atmel-sha204a.c | 6 ++++++
1 file changed, 6 insertions(+)
[PATCH] crypto: atmel-sha204a - Set hwrng quality to lowest possible
Posted by Marek Behún 9 months, 3 weeks ago
According to the review by Bill Cox [1], the Atmel SHA204A random number
generator produces random numbers with very low entropy.

Set the lowest possible entropy for this chip just to be safe.

[1] https://www.metzdowd.com/pipermail/cryptography/2014-December/023858.html

Fixes: da001fb651b00e1d ("crypto: atmel-i2c - add support for SHA204A random number generator")
Signed-off-by: Marek Behún <kabel@kernel.org>
---
 drivers/crypto/atmel-sha204a.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/crypto/atmel-sha204a.c b/drivers/crypto/atmel-sha204a.c
index 75bebec2c757..0fcf4a39de27 100644
--- a/drivers/crypto/atmel-sha204a.c
+++ b/drivers/crypto/atmel-sha204a.c
@@ -163,6 +163,12 @@ static int atmel_sha204a_probe(struct i2c_client *client)
 	i2c_priv->hwrng.name = dev_name(&client->dev);
 	i2c_priv->hwrng.read = atmel_sha204a_rng_read;
 
+	/*
+	 * According to review by Bill Cox [1], this HWRNG has very low entropy.
+	 * [1] https://www.metzdowd.com/pipermail/cryptography/2014-December/023858.html
+	 */
+	i2c_priv->hwrng.quality = 1;
+
 	ret = devm_hwrng_register(&client->dev, &i2c_priv->hwrng);
 	if (ret)
 		dev_warn(&client->dev, "failed to register RNG (%d)\n", ret);
-- 
2.49.0

Re: [PATCH] crypto: atmel-sha204a - Set hwrng quality to lowest possible
Posted by Herbert Xu 9 months, 3 weeks ago
On Tue, Apr 22, 2025 at 11:57:18AM +0200, Marek Behún wrote:
> According to the review by Bill Cox [1], the Atmel SHA204A random number
> generator produces random numbers with very low entropy.
> 
> Set the lowest possible entropy for this chip just to be safe.
> 
> [1] https://www.metzdowd.com/pipermail/cryptography/2014-December/023858.html
> 
> Fixes: da001fb651b00e1d ("crypto: atmel-i2c - add support for SHA204A random number generator")
> Signed-off-by: Marek Behún <kabel@kernel.org>
> ---
>  drivers/crypto/atmel-sha204a.c | 6 ++++++
>  1 file changed, 6 insertions(+)

Patch appiled.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Re: [PATCH] crypto: atmel-sha204a - Set hwrng quality to lowest possible
Posted by Linus Walleij 9 months, 3 weeks ago
On Tue, Apr 22, 2025 at 11:57 AM Marek Behún <kabel@kernel.org> wrote:

> According to the review by Bill Cox [1], the Atmel SHA204A random number
> generator produces random numbers with very low entropy.
>
> Set the lowest possible entropy for this chip just to be safe.
>
> [1] https://www.metzdowd.com/pipermail/cryptography/2014-December/023858.html
>
> Fixes: da001fb651b00e1d ("crypto: atmel-i2c - add support for SHA204A random number generator")
> Signed-off-by: Marek Behún <kabel@kernel.org>

Ugh
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

I would even tag:
Cc: stable@vger.kernel.org

on this, but it's up to Herbert.

Yours,
Linus Walleij
Re: [PATCH] crypto: atmel-sha204a - Set hwrng quality to lowest possible
Posted by Ard Biesheuvel 9 months, 3 weeks ago
On Tue, 22 Apr 2025 at 11:57, Marek Behún <kabel@kernel.org> wrote:
>
> According to the review by Bill Cox [1], the Atmel SHA204A random number
> generator produces random numbers with very low entropy.
>
> Set the lowest possible entropy for this chip just to be safe.
>
> [1] https://www.metzdowd.com/pipermail/cryptography/2014-December/023858.html
>
> Fixes: da001fb651b00e1d ("crypto: atmel-i2c - add support for SHA204A random number generator")
> Signed-off-by: Marek Behún <kabel@kernel.org>
> ---
>  drivers/crypto/atmel-sha204a.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>

Wow, that is terrible

Acked-by: Ard Biesheuvel <ardb@kernel.org>


> diff --git a/drivers/crypto/atmel-sha204a.c b/drivers/crypto/atmel-sha204a.c
> index 75bebec2c757..0fcf4a39de27 100644
> --- a/drivers/crypto/atmel-sha204a.c
> +++ b/drivers/crypto/atmel-sha204a.c
> @@ -163,6 +163,12 @@ static int atmel_sha204a_probe(struct i2c_client *client)
>         i2c_priv->hwrng.name = dev_name(&client->dev);
>         i2c_priv->hwrng.read = atmel_sha204a_rng_read;
>
> +       /*
> +        * According to review by Bill Cox [1], this HWRNG has very low entropy.
> +        * [1] https://www.metzdowd.com/pipermail/cryptography/2014-December/023858.html
> +        */
> +       i2c_priv->hwrng.quality = 1;
> +
>         ret = devm_hwrng_register(&client->dev, &i2c_priv->hwrng);
>         if (ret)
>                 dev_warn(&client->dev, "failed to register RNG (%d)\n", ret);
> --
> 2.49.0
>