summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Sukhomlinov <sukhomlinov@google.com>2021-09-10 14:10:09 -0700
committerCommit Bot <commit-bot@chromium.org>2021-09-13 16:20:10 +0000
commit828bf6cffbfb7d8eafa83a22303dc03c9c48bb01 (patch)
tree2b91590c15613bcd4e6ec64a125c86b2715b90b8
parent82bea41f492aff12660118a479916edea5105675 (diff)
downloadchrome-ec-828bf6cffbfb7d8eafa83a22303dc03c9c48bb01.tar.gz
cr50: minor fix - enable DRBG test vendor command with CRYPTO_TEST=1
After https://crrev.com/c/3139977 landed noticed that I need DRBG_TEST=1 to make tpm_test.py to work, as suddenly disabled vendor command with ccd command. Added check for successful completion of hmac_drbg_generate() in test command. BUG=none TEST=make BOARD=cr50 CRYPTO_TEST=1; test/tpmtest/tpmtest.py Signed-off-by: Vadim Sukhomlinov <sukhomlinov@google.com> Change-Id: I87053fc0d100a68536680ad8c66358cdb2d5e537 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3155297 Reviewed-by: Vadim Sukhomlinov <sukhomlinov@chromium.org> Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-by: Mary Ruthven <mruthven@chromium.org> Tested-by: Vadim Sukhomlinov <sukhomlinov@chromium.org> Auto-Submit: Vadim Sukhomlinov <sukhomlinov@chromium.org> Commit-Queue: Vadim Bendebury <vbendeb@chromium.org>
-rw-r--r--board/cr50/dcrypto/hmac_drbg.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/board/cr50/dcrypto/hmac_drbg.c b/board/cr50/dcrypto/hmac_drbg.c
index d27890360a..4efedb69ed 100644
--- a/board/cr50/dcrypto/hmac_drbg.c
+++ b/board/cr50/dcrypto/hmac_drbg.c
@@ -146,8 +146,9 @@ void drbg_exit(struct drbg_ctx *ctx)
#define CRYPTO_TEST_CMD_HMAC_DRBG 0
#endif
-#if defined(CRYPTO_TEST_SETUP) && CRYPTO_TEST_CMD_HMAC_DRBG
+#ifdef CRYPTO_TEST_SETUP
+#if CRYPTO_TEST_CMD_HMAC_DRBG
/*
* from the RFC 6979 A.2.5 example:
*
@@ -354,6 +355,8 @@ static int cmd_hmac_drbg_rand(int argc, char **argv)
}
DECLARE_SAFE_CONSOLE_COMMAND(hmac_drbg_rand, cmd_hmac_drbg_rand, NULL, NULL);
+#endif /* CRYPTO_TEST_CMD_HMAC_DRBG */
+
enum drbg_command {
DRBG_INIT = 0,
DRBG_RESEED = 1,
@@ -455,7 +458,9 @@ static enum vendor_cmd_rc drbg_test(enum vendor_cmd_cc code, void *buf,
if (p1_len > sizeof(output) || max_out_len < p1_len)
return VENDOR_RC_BOGUS_ARGS;
- hmac_drbg_generate(&drbg_ctx, output, p1_len, p0, p0_len);
+ if (hmac_drbg_generate(&drbg_ctx, output, p1_len, p0, p0_len) !=
+ HMAC_DRBG_SUCCESS)
+ return VENDOR_RC_INTERNAL_ERROR;
memcpy(buf, output, p1_len);
*response_size = p1_len;