lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250426103158.GB17549@1wt.eu>
Date: Sat, 26 Apr 2025 12:31:58 +0200
From: Willy Tarreau <w@....eu>
To: Thomas Weißschuh <thomas.weissschuh@...utronix.de>
Cc: Thomas Weißschuh <linux@...ssschuh.net>,
        Shuah Khan <shuah@...nel.org>, linux-kernel@...r.kernel.org,
        linux-kselftest@...r.kernel.org
Subject: Re: [PATCH 05/15] tools/nolibc: add getrandom()

Hi Thomas,

On Wed, Apr 23, 2025 at 05:01:35PM +0200, Thomas Weißschuh wrote:
> --- /dev/null
> +++ b/tools/include/nolibc/sys/random.h
> @@ -0,0 +1,32 @@
> +/* SPDX-License-Identifier: LGPL-2.1 OR MIT */
> +/*
> + * random definitions for NOLIBC
> + * Copyright (C) 2025 Thomas Weißschuh <thomas.weissschuh@...utronix.de>
> + */
> +

Note: don't forget to add your nolibc include here from the other series.

> +#ifndef _NOLIBC_SYS_RANDOM_H
> +#define _NOLIBC_SYS_RANDOM_H
> +
> +#include "../arch.h"
> +#include "../sys.h"
(...)

> diff --git a/tools/testing/selftests/nolibc/nolibc-test.c b/tools/testing/selftests/nolibc/nolibc-test.c
> index abe0ae794208762f6d91ad81e902fbf77253a1c1..95d08e9ccf5b3be924548100e9621cd47f39e8c2 100644
> --- a/tools/testing/selftests/nolibc/nolibc-test.c
> +++ b/tools/testing/selftests/nolibc/nolibc-test.c
(...)
> +int test_getrandom(void)
> +{
> +	uint64_t rng = 0;
> +	ssize_t ret;
> +
> +	ret = getrandom(&rng, sizeof(rng), 0);
> +	if (ret != sizeof(rng))
> +		return ret;
> +
> +	if (!rng) {
> +		errno = EINVAL;
> +		return -1;
> +	}
> +
> +	return 0;
> +}
> +

Just a thought about this one: in a not-so-distant past, getrandom()
could hang forever when lacking entropy (classical problem when booting
a headless machine having no RNG), and since a recent kernel it turned
to "only" multiple seconds. I'm not seeing any easy solution to this,
but we need to keep an eye on this one, and in case of bad reports,
maybe have this test as an opt-in or something like this. Anyway the
best way to know is to have it right now and wait for reports to
arrive.

Willy

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ