20#include "app_provider.h"
25#ifdef HITLS_APP_SM_MODE
26#define HITLS_SM_OPTIONS_ENUM \
31#define HITLS_SM_OPTIONS \
32 {"sm", HITLS_SM_OPT_SM, HITLS_APP_OPT_VALUETYPE_NO_VALUE, "Enable SM mode"}, \
33 {"uuid", HITLS_SM_OPT_UUID, HITLS_APP_OPT_VALUETYPE_STRING, "UUID of the key (repeatable)"}, \
34 {"workpath", HITLS_SM_OPT_WORKPATH, HITLS_APP_OPT_VALUETYPE_DIR, "Specify the working directory"}
36#define HITLS_APP_SM_CASES(optType, smParam) \
38 case HITLS_SM_OPT_SM: \
39 (smParam)->smTag = 1; \
41 case HITLS_SM_OPT_UUID: \
42 (smParam)->uuid = HITLS_APP_OptGetValueStr(); \
44 case HITLS_SM_OPT_WORKPATH: \
45 (smParam)->workPath = HITLS_APP_OptGetValueStr(); \
52 HITLS_APP_SM_STATUS_CLOSE = 0,
53 HITLS_APP_SM_STATUS_OPEN = 1,
54 HITLS_APP_SM_STATUS_INIT = 2,
55 HITLS_APP_SM_STATUS_SELFTEST = 3,
56 HITLS_APP_SM_STATUS_MANAGER = 4,
57 HITLS_APP_SM_STATUS_KEY_PARAMETER_INPUT = 5,
58 HITLS_APP_SM_STATUS_APPORVED = 6,
59 HITLS_APP_SM_STATUS_ERROR = 7,
83int32_t HITLS_APP_SM_Init(
AppProvider *provider,
const char *workPath,
char **password, int32_t *status);
85int32_t HITLS_APP_SM_IntegrityCheck(
AppProvider *provider);
87int32_t HITLS_APP_SM_PeriodicRandomCheck(
AppProvider *provider);
89char *HITLS_APP_GetAppPath(
void);
91int32_t HITLS_APP_SM_RootUserCheck(
void);
93void HITLS_APP_SM_PrintLog(int32_t ret);