1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /* SPDX-License-Identifier: BSD-3-Clause */
- #include "log.h"
- #include "tpm2.h"
- #include "tpm2_tool.h"
- #include "tpm2_options.h"
- typedef struct tpm_selftest_ctx tpm_selftest_ctx;
- struct tpm_selftest_ctx {
- TPMI_YES_NO fulltest;
- };
- static tpm_selftest_ctx ctx;
- static bool on_option(char key, char *value) {
- UNUSED(value);
- switch (key) {
- case 'f':
- ctx.fulltest = TPM2_YES;
- break;
- default:
- LOG_ERR("Invalid option.");
- return false;
- }
- return true;
- }
- static bool tpm2_tool_onstart(tpm2_options **opts) {
- static const struct option topts[] = {
- { "fulltest", no_argument, NULL, 'f' }
- };
- ctx.fulltest = TPM2_NO;
- *opts = tpm2_options_new("f", ARRAY_LEN(topts), topts, on_option, NULL, 0);
- return *opts != NULL;
- }
- static tool_rc tpm2_tool_onrun(ESYS_CONTEXT *ectx, tpm2_option_flags flags) {
- UNUSED(flags);
- return tpm2_selftest(ectx, ctx.fulltest);
- }
- // Register this tool with tpm2_tool.c
- TPM2_TOOL_REGISTER("selftest", tpm2_tool_onstart, tpm2_tool_onrun, NULL, NULL)
|