summaryrefslogtreecommitdiff
path: root/board/cr50/tpm2/virtual_nvmem.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/cr50/tpm2/virtual_nvmem.c')
-rw-r--r--board/cr50/tpm2/virtual_nvmem.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/board/cr50/tpm2/virtual_nvmem.c b/board/cr50/tpm2/virtual_nvmem.c
index 3ddaed067d..16a4028be9 100644
--- a/board/cr50/tpm2/virtual_nvmem.c
+++ b/board/cr50/tpm2/virtual_nvmem.c
@@ -304,9 +304,11 @@ static void GetRSUDevID(BYTE *to, size_t offset, size_t size)
uint8_t rma_device_id[RMA_DEVICE_ID_SIZE];
const uint8_t *rsu_device_id;
- get_rma_device_id(rma_device_id);
-
- SHA256_hw_init(&ctx);
+ if (get_rma_device_id(rma_device_id) != EC_SUCCESS ||
+ DCRYPTO_hw_sha256_init(&ctx) != DCRYPTO_OK) {
+ memset(to, 0, size);
+ return;
+ };
SHA256_update(&ctx, rma_device_id, sizeof(rma_device_id));
SHA256_update(&ctx, kRsuSalt, RSU_SALT_SIZE);
rsu_device_id = SHA256_final(&ctx)->b8;