[PATCH 2/2] net: Use NDRNG device in srand_mac()

Matthias Brugger matthias.bgg at gmail.com
Wed Dec 16 16:56:28 CET 2020



On 16/12/2020 14:20, Torsten Duwe wrote:
> On Wed, 16 Dec 2020 11:41:17 +0100
> matthias.bgg at kernel.org wrote:
> 
>> From: Matthias Brugger <mbrugger at suse.com>
>>
>> When calling srand_mac we use a weak seed dependent on the
>> mac address. If present, use a RNG device instead to incerase entropy.
>>
>> Signed-off-by: Matthias Brugger <mbrugger at suse.com>
>>
>> ---
>>
>>  net/net_rand.h | 18 +++++++++++++++++-
>>  1 file changed, 17 insertions(+), 1 deletion(-)
>>
>> diff --git a/net/net_rand.h b/net/net_rand.h
>> index 4bf9bd817e..600c3d825e 100644
>> --- a/net/net_rand.h
>> +++ b/net/net_rand.h
>> @@ -10,6 +10,7 @@
>>  #define __NET_RAND_H__
>>  
>>  #include <common.h>
>> +#include <rng.h>
>>  
>>  /*
>>   * Return a seed for the PRNG derived from the eth0 MAC address.
>> @@ -37,7 +38,22 @@ static inline unsigned int seed_mac(void)
>>   */
>>  static inline void srand_mac(void)
>>  {
>> -	srand(seed_mac());
>> +#if defined(CONFIG_DM_RNG)
>> +	int ret;
>> +	struct udevice *devp;
>> +	u32 randv = 0;
>> +
>> +	ret = uclass_get_device(UCLASS_RNG, 0, &devp);
>> +	if (ret) {
>> +		ret = dm_rng_read(dev, randv, sizeof(randv));
> Haven't tested this (yet), but shouldn't this be
> 		ret = dm_rng_read(devp, &randv, sizeof(randv));
> 		                     ^  ^ ?

Ups, yes you are right. I'll send a v2.

Regards,
Matthias


More information about the U-Boot mailing list