Compartir vía


EFI_RNG_PROTOCOL. GetRNG

Recupera un valor de Generación de números aleatorios (RNG).

Sintaxis

typedef EFI_STATUS (EFIAPI *EFI_RNG_GET_RNG) (
    IN  struct _EFI_RNG_PROTOCOL    *This,
    IN  EFI_RNG_ALGORITHM           *RNGAlgorithm, OPTIONAL
    IN  UINTN                       RNGValueLength,
    OUT UINT8                       *RNGValue
    );

Parámetros

Éste
[in] Puntero a la instancia de EFI_RNG_PROTOCOL .

RNGAlgorithm
[in] Puntero al EFI_RNG_ALGORITHM que identifica el algoritmo RNG que se va a usar. Si este parámetro es NULL, se usará el algoritmo predeterminado admitido por el controlador.

RNGValueLength
[in] Longitud, en bytes, del búfer devuelto por RNGValue.

RNGValue
[in] Puntero a un búfer que contendrá el valor RNG. Esta función asigna el valor mediante EFI_BOOT_SERVICES-AllocatePool>() y es responsabilidad del autor de la llamada liberar esta memoria mediante EFI_BOOT_SERVICES-FreePool>().

Observaciones

El tamaño mínimo de RNGValue es de 32 bytes.

Valor devuelto

Devuelve uno de los siguientes códigos de estado.

status code Descripción
EFI_SUCCESS La función devolvió correctamente un valor RNG.
EFI_INVALID_PARAMETER RNGAlgorithm es NULL cuando se pueden realizar varios algoritmos.
EFI_UNSUPPORTED Este controlador no admite el algoritmo especificado por RNGAlgorithm .
EFI_DEVICE_ERROR No se pudo recuperar un valor RNG debido a un error de hardware o firmware.
EFI_NOT_READY No hay suficientes datos de entropía disponibles.
EFI_OUT_OF_RESOURCES El controlador no puede asignar memoria para el valor RNG.

Requisitos

Rúbrica: Usuario generado