summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorBobby Casey <bobbycasey@google.com>2022-08-17 22:42:49 -0400
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-08-30 15:09:14 +0000
commit3a3d6c36902f1570887b2322075e64a682ebe296 (patch)
treecbe12aa4338139618a9f212136aa19a0dd1aefcc /include
parent233e6bbd0837f0dd5008f6115d17cf726d24c72d (diff)
downloadchrome-ec-3a3d6c36902f1570887b2322075e64a682ebe296.tar.gz
test: Add test for fpsensor trivial key failure
Add a test for derive_positive_match_secret when compute_hmac_sha256 returns a trivial key (either 0x00 or 0xFF). This required mocking compute_hmac_sha256 to get the proper test behavior. Since other tests depend upon a proper SHA256 hash to be generated, either all key/message combinations would need to be mocked or some calls to compute_hmac_sha256 need to be passed through to hmac_SHA256. The latter option was chosen for the best flexibility moving forward. BRANCH=none BUG=b:242720910 TEST=make runhosttests Signed-off-by: Bobby Casey <bobbycasey@google.com> Change-Id: I959e23cfadb5460e62af90ffba74a0cd3b9d9a7f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3838935 Reviewed-by: Tom Hughes <tomhughes@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/mock/fpsensor_crypto_mock.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/include/mock/fpsensor_crypto_mock.h b/include/mock/fpsensor_crypto_mock.h
new file mode 100644
index 0000000000..f3ca84734e
--- /dev/null
+++ b/include/mock/fpsensor_crypto_mock.h
@@ -0,0 +1,30 @@
+/* Copyright 2022 The ChromiumOS Authors.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+/**
+ * @file fpsensor_crypto_mock.h
+ * @brief Controls for the mock fpsensor_crypto library
+ */
+
+#ifndef __MOCK_FPSENSOR_CRYPTO_MOCK_H
+#define __MOCK_FPSENSOR_CRYPTO_MOCK_H
+
+enum mock_ctrl_fpsensor_crypto_sha256_type {
+ MOCK_CTRL_FPSENSOR_CRYPTO_SHA256_TYPE_REAL,
+ MOCK_CTRL_FPSENSOR_CRYPTO_SHA256_TYPE_ZEROS,
+ MOCK_CTRL_FPSENSOR_CRYPTO_SHA256_TYPE_FF,
+};
+
+struct mock_ctrl_fpsensor_crypto {
+ enum mock_ctrl_fpsensor_crypto_sha256_type output_type;
+};
+
+#define MOCK_CTRL_DEFAULT_FPSENSOR_CRYPTO \
+ ((struct mock_ctrl_fpsensor_crypto){ \
+ .output_type = MOCK_CTRL_FPSENSOR_CRYPTO_SHA256_TYPE_REAL })
+
+extern struct mock_ctrl_fpsensor_crypto mock_ctrl_fpsensor_crypto;
+
+#endif /* __MOCK_FPSENSOR_CRYPTO_MOCK_H */