summaryrefslogtreecommitdiff
path: root/board/cr50/dcrypto/aes_cmac.c
diff options
context:
space:
mode:
authorVadim Sukhomlinov <sukhomlinov@google.com>2021-09-29 15:02:49 -0700
committerCommit Bot <commit-bot@chromium.org>2021-10-05 19:08:53 +0000
commit9cd80daff9f6d9df08311a790a79632ab647a162 (patch)
treef454c7c3b3e8b47f0dd7327fc7be7e9f9dd2181d /board/cr50/dcrypto/aes_cmac.c
parentd64c8e2803a570aa3181fe67f2fb0f3241789de1 (diff)
downloadchrome-ec-factory-ambassador-14265.B-cr50_stab.tar.gz
cr50: Update AES public APIsfactory-ambassador-14265.B-cr50_stab
To support FIPS mode we need to block access to crypto in case of errors. 1) Added check for FIPS errors into DCRYPTO_aes_init() 2) Return codes updated to enum dcrypto_result 3) Call sites updated to check for return codes BUG=b:197893750 TEST=make BOARD=cr50 CRYPTO_TEST=1; test/tpm_test/tpmtest.py Signed-off-by: Vadim Sukhomlinov <sukhomlinov@google.com> Change-Id: Id614cc346fe22537e9208196bf1322221a253b0c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3194985 Reviewed-by: Vadim Sukhomlinov <sukhomlinov@chromium.org> Reviewed-by: Andrey Pronin <apronin@chromium.org> Commit-Queue: Vadim Sukhomlinov <sukhomlinov@chromium.org> Tested-by: Vadim Sukhomlinov <sukhomlinov@chromium.org>
Diffstat (limited to 'board/cr50/dcrypto/aes_cmac.c')
-rw-r--r--board/cr50/dcrypto/aes_cmac.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/board/cr50/dcrypto/aes_cmac.c b/board/cr50/dcrypto/aes_cmac.c
index 4f996f42b6..a921bc589b 100644
--- a/board/cr50/dcrypto/aes_cmac.c
+++ b/board/cr50/dcrypto/aes_cmac.c
@@ -54,10 +54,11 @@ static int aes128(const uint8_t *K, const uint32_t in[4], uint32_t out[4])
{
const uint32_t zero[4] = {0, 0, 0, 0};
- if (!DCRYPTO_aes_init((const uint8_t *)K, 128, (const uint8_t *) zero,
- CIPHER_MODE_ECB, ENCRYPT_MODE))
+ if (DCRYPTO_aes_init((const uint8_t *)K, 128, (const uint8_t *)zero,
+ CIPHER_MODE_ECB, ENCRYPT_MODE) != DCRYPTO_OK)
return 0;
- if (!DCRYPTO_aes_block((const uint8_t *) in, (uint8_t *) out))
+ if (DCRYPTO_aes_block((const uint8_t *)in, (uint8_t *)out) !=
+ DCRYPTO_OK)
return 0;
return 1;
}