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