]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
net: lwip: provide entropy to MBed TLS in one go
authorIlias Apalodimas <ilias.apalodimas@linaro.org>
Thu, 14 Nov 2024 14:29:15 +0000 (16:29 +0200)
committerTom Rini <trini@konsulko.com>
Fri, 22 Nov 2024 20:40:53 +0000 (14:40 -0600)
We currently provide entropy to mbedTLS using 8b chunks.
Take into account the 'len' parameter passed by MBed TLS to the entropy
gathering function instead. Note that the current code works because len
is always 128 (defined at compile time), therefore mbedtls_hardware_poll()
is called repeatedly and the buffer is filled correctly. But passing 'len'
to dm_rng_read() is both better and simpler.

Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Suggested-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
net/lwip/wget.c

index e85d57bc1dd11dfc7ca00b1124aa6e49342ef8fa..062aa7c44f012beb06f161abbc385c01b6691bbd 100644 (file)
@@ -42,7 +42,6 @@ int mbedtls_hardware_poll(void *data, unsigned char *output, size_t len,
                          size_t *olen)
 {
        struct udevice *dev;
-       u64 rng = 0;
        int ret;
 
        *olen = 0;
@@ -52,12 +51,11 @@ int mbedtls_hardware_poll(void *data, unsigned char *output, size_t len,
                log_err("Failed to get an rng: %d\n", ret);
                return ret;
        }
-       ret = dm_rng_read(dev, &rng, sizeof(rng));
+       ret = dm_rng_read(dev, output, len);
        if (ret)
                return ret;
 
-       memcpy(output, &rng, len);
-       *olen = sizeof(rng);
+       *olen = len;
 
        return 0;
 }