TCG Software Stack Developer's Reference
Tspi_TPM_GetRandom - generate a random number on the TPM
#include <tss/platform.h>
#include <tss/tcpa_defines.h>
#include <tss/tcpa_typedef.h>
#include <tss/tcpa_struct.h>
#include <tss/tss_typedef.h>
#include <tss/tss_structs.h>
#include <tss/tspi.h>
TSS_RESULT Tspi_TPM_GetRandom(TSS_HTPM hTPM, UINT32 size, BYTE** random);
Tspi_TPM_GetRandom gets a good random number for the purpose of
generating symmetric keys, nonces, or seeding a random number generator.
The hTPM parameter is used to specify the handle of the TPM object. The
command to get the TPM to test itself will be sent here.
The size parameter is the number of random bytes requested.
The random parameter is a pointer to memory containing the random data.
This is where the generated number goes. Because this internally allocates
memory, Tspi_Context_FreeMemory should also be used.
Tspi_TPM_GetRandom returns TSS_SUCCESS on success, otherwise one of the
following values is returned:
- TSS_E_INVALID_HANDLE
- hTPM is not a valid handle.
- TSS_E_INTERNAL_ERROR
- An internal SW error has been detected.
- TSS_E_BAD_PARAMETER
- One or more parameters is bad.
Tspi_TPM_GetRandom conforms to the Trusted Computing Group Software
Specification version 1.1 Golden
Tspi_Context_FreeMemory(3).