mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00
feat(tc): get entropy with PSA Crypto API
The PSA Crypto API is available with sending messages to RSE. Change to invoke PSA Crypto API for getting entropy. Change-Id: I4b2dc4eb99606c2425b64949d9c3f5c576883758 Signed-off-by: Leo Yan <leo.yan@arm.com> Signed-off-by: Icen Zeyada <Icen.Zeyada2@arm.com>
This commit is contained in:
parent
1147a470c2
commit
8f0235fb8f
2 changed files with 19 additions and 4 deletions
|
@ -248,7 +248,8 @@ include drivers/arm/rse/rse_comms.mk
|
|||
|
||||
BL1_SOURCES += ${RSE_COMMS_SOURCES}
|
||||
BL2_SOURCES += ${RSE_COMMS_SOURCES}
|
||||
BL31_SOURCES += ${RSE_COMMS_SOURCES}
|
||||
BL31_SOURCES += ${RSE_COMMS_SOURCES} \
|
||||
lib/psa/rse_platform.c
|
||||
|
||||
# Include Measured Boot makefile before any Crypto library makefile.
|
||||
# Crypto library makefile may need default definitions of Measured Boot build
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <string.h>
|
||||
|
||||
#include <lib/mmio.h>
|
||||
#include <lib/psa/rse_platform_api.h>
|
||||
#include <lib/smccc.h>
|
||||
#include <lib/utils_def.h>
|
||||
#include <plat/common/platform.h>
|
||||
|
@ -24,20 +25,33 @@ DEFINE_SVC_UUID2(_plat_trng_uuid,
|
|||
);
|
||||
uuid_t plat_trng_uuid;
|
||||
|
||||
/* Dummy implementation */
|
||||
bool plat_get_entropy(uint64_t *out)
|
||||
{
|
||||
#if CRYPTO_SUPPORT
|
||||
psa_status_t status;
|
||||
|
||||
status = rse_platform_get_entropy((uint8_t *)out, sizeof(*out));
|
||||
if (status != PSA_SUCCESS) {
|
||||
printf("Failed for entropy read, psa_status=%d\n", status);
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
/* Dummy value */
|
||||
*out = 0xABBAEDDAACDCDEAD;
|
||||
#endif
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void plat_entropy_setup(void)
|
||||
{
|
||||
uint64_t dummy;
|
||||
uint64_t entropy;
|
||||
|
||||
plat_trng_uuid = _plat_trng_uuid;
|
||||
|
||||
/* Initialise the entropy source and trigger RNG generation */
|
||||
plat_get_entropy(&dummy);
|
||||
if (!plat_get_entropy(&entropy)) {
|
||||
ERROR("Failed to setup entropy\n");
|
||||
panic();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue