Re: efistub: EFI_RNG_PROTOCOL on Dell Inc. Latitude 7390

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Dominik,

On Mon, 28 Oct 2019 at 08:30, Dominik Brodowski
<linux@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> Ard, Mario,
>
> in theory, invoking EFI_RNG_PROTOCOL on a Dell Inc. Latitude 7390/09386V,
> BIOS 1.9.2 04/03/2019, should work fine as the system provides EFI v2.60.
> Using my patch from a few weeks ago[1], efi_random_get_seed() is called from
> arch/x86/boot/compressed/eboot.c::efi_main(). In efi_random_get_seed(), the
> calls to
>
>         status = efi_call_early(locate_protocol, &rng_proto, NULL,
>                                 (void **)&rng);
>
> and
>
>         status = efi_call_early(allocate_pool, EFI_RUNTIME_SERVICES_DATA,
>                                 sizeof(*seed) + EFI_RANDOM_SEED_SIZE,
>                                 (void **)&seed);
>
> succeed. However,
>
>         status = rng->get_rng(rng, &rng_algo_raw, EFI_RANDOM_SEED_SIZE,
>                               seed->bits);
>
> returns EFI_INVALID_PARAMETER, though I can't see why one of these
> parameters is invalid.

The UEFI spec defines the conditions under which this function may
return EFI_INVALID_PARAMETER as

"""
RNGValue is null or RNGValueLength is zero.

"""


> When trying to use the default rng algorithm (by
> modifying the test to "(status != EFI_SUCCESS)"),
>
>                 status = rng->get_rng(rng, NULL, EFI_RANDOM_SEED_SIZE,
>                                       seed->bits);
>
> the call doesn't seem to return.
>
> Any ideas?
>

Try running this from the UEFI shell:

http://people.linaro.org/~ard.biesheuvel/RngTest-X64.efi



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux