1094332d3Sopenharmony_ci/*
2094332d3Sopenharmony_ci * Copyright (c) 2022-2024 Huawei Device Co., Ltd.
3094332d3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4094332d3Sopenharmony_ci * you may not use this file except in compliance with the License.
5094332d3Sopenharmony_ci * You may obtain a copy of the License at
6094332d3Sopenharmony_ci *
7094332d3Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8094332d3Sopenharmony_ci *
9094332d3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10094332d3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11094332d3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12094332d3Sopenharmony_ci * See the License for the specific language governing permissions and
13094332d3Sopenharmony_ci * limitations under the License.
14094332d3Sopenharmony_ci */
15094332d3Sopenharmony_ci
16094332d3Sopenharmony_ci#ifndef COMMON_DEFINES_H
17094332d3Sopenharmony_ci#define COMMON_DEFINES_H
18094332d3Sopenharmony_ci
19094332d3Sopenharmony_ci#ifdef __cplusplus
20094332d3Sopenharmony_ciextern "C" {
21094332d3Sopenharmony_ci#endif // __cplusplus
22094332d3Sopenharmony_ci
23094332d3Sopenharmony_ci#define IF_TRUE_LOGE_AND_RETURN_VAL(cond, retVal) \
24094332d3Sopenharmony_ci    do { \
25094332d3Sopenharmony_ci        if (cond) { \
26094332d3Sopenharmony_ci            LOG_ERROR("(" #cond ") check fail, return"); \
27094332d3Sopenharmony_ci            return (retVal); \
28094332d3Sopenharmony_ci        } \
29094332d3Sopenharmony_ci    } while (0)
30094332d3Sopenharmony_ci
31094332d3Sopenharmony_ci#define IF_TRUE_LOGE_AND_RETURN(cond) \
32094332d3Sopenharmony_ci    do { \
33094332d3Sopenharmony_ci        if (cond) { \
34094332d3Sopenharmony_ci            LOG_ERROR("(" #cond ") check fail, return"); \
35094332d3Sopenharmony_ci            return; \
36094332d3Sopenharmony_ci        } \
37094332d3Sopenharmony_ci    } while (0)
38094332d3Sopenharmony_ci
39094332d3Sopenharmony_citypedef enum ResultCode {
40094332d3Sopenharmony_ci    RESULT_SUCCESS = 0x0,
41094332d3Sopenharmony_ci    RESULT_GENERAL_ERROR = 0x1,
42094332d3Sopenharmony_ci    RESULT_BAD_PARAM = 0x2,
43094332d3Sopenharmony_ci    RESULT_BAD_COPY = 0x3,
44094332d3Sopenharmony_ci    RESULT_NO_MEMORY = 0x4,
45094332d3Sopenharmony_ci    RESULT_NEED_INIT = 0x5,
46094332d3Sopenharmony_ci    RESULT_NOT_FOUND = 0x6,
47094332d3Sopenharmony_ci    RESULT_REACH_LIMIT = 0x7,
48094332d3Sopenharmony_ci    RESULT_DUPLICATE_CHECK_FAILED = 0x8,
49094332d3Sopenharmony_ci    RESULT_BAD_READ = 0x9,
50094332d3Sopenharmony_ci    RESULT_BAD_WRITE = 0xA,
51094332d3Sopenharmony_ci    RESULT_BAD_DEL = 0xB,
52094332d3Sopenharmony_ci    RESULT_UNKNOWN = 0xC,
53094332d3Sopenharmony_ci    RESULT_BAD_MATCH = 0xD,
54094332d3Sopenharmony_ci    RESULT_BAD_SIGN = 0xE,
55094332d3Sopenharmony_ci    RESULT_BUSY = 0xF,
56094332d3Sopenharmony_ci    RESULT_PIN_FREEZE = 0x11,
57094332d3Sopenharmony_ci    RESULT_PIN_FAIL = 0X12,
58094332d3Sopenharmony_ci    RESULT_COMPARE_FAIL = 0x13
59094332d3Sopenharmony_ci} ResultCode;
60094332d3Sopenharmony_ci
61094332d3Sopenharmony_citypedef enum ResultCodeForCoAuth {
62094332d3Sopenharmony_ci    /**
63094332d3Sopenharmony_ci     * Indicates that authentication is success or ability is supported.
64094332d3Sopenharmony_ci     */
65094332d3Sopenharmony_ci    SUCCESS = 0,
66094332d3Sopenharmony_ci
67094332d3Sopenharmony_ci    /**
68094332d3Sopenharmony_ci     * Indicates the authenticator fails to identify user.
69094332d3Sopenharmony_ci     */
70094332d3Sopenharmony_ci    FAIL = 1,
71094332d3Sopenharmony_ci
72094332d3Sopenharmony_ci    /**
73094332d3Sopenharmony_ci     * Indicates other errors.
74094332d3Sopenharmony_ci     */
75094332d3Sopenharmony_ci    GENERAL_ERROR = 2,
76094332d3Sopenharmony_ci
77094332d3Sopenharmony_ci    /**
78094332d3Sopenharmony_ci     * Indicates that authentication has been canceled.
79094332d3Sopenharmony_ci     */
80094332d3Sopenharmony_ci    CANCELED = 3,
81094332d3Sopenharmony_ci
82094332d3Sopenharmony_ci    /**
83094332d3Sopenharmony_ci     * Indicates that authentication has timed out.
84094332d3Sopenharmony_ci     */
85094332d3Sopenharmony_ci    TIMEOUT = 4,
86094332d3Sopenharmony_ci
87094332d3Sopenharmony_ci    /**
88094332d3Sopenharmony_ci     * Indicates that this authentication type is not supported.
89094332d3Sopenharmony_ci     */
90094332d3Sopenharmony_ci    TYPE_NOT_SUPPORT = 5,
91094332d3Sopenharmony_ci
92094332d3Sopenharmony_ci    /**
93094332d3Sopenharmony_ci     * Indicates that the authentication trust level is not supported.
94094332d3Sopenharmony_ci     */
95094332d3Sopenharmony_ci    TRUST_LEVEL_NOT_SUPPORT = 6,
96094332d3Sopenharmony_ci
97094332d3Sopenharmony_ci    /**
98094332d3Sopenharmony_ci     * Indicates that the authentication task is busy. Wait for a few seconds and try again.
99094332d3Sopenharmony_ci     */
100094332d3Sopenharmony_ci    BUSY = 7,
101094332d3Sopenharmony_ci
102094332d3Sopenharmony_ci    /**
103094332d3Sopenharmony_ci     * Indicates incorrect parameters.
104094332d3Sopenharmony_ci     */
105094332d3Sopenharmony_ci    INVALID_PARAMETERS = 8,
106094332d3Sopenharmony_ci
107094332d3Sopenharmony_ci    /**
108094332d3Sopenharmony_ci     * Indicates that the authenticator is locked.
109094332d3Sopenharmony_ci     */
110094332d3Sopenharmony_ci    LOCKED = 9,
111094332d3Sopenharmony_ci
112094332d3Sopenharmony_ci    /**
113094332d3Sopenharmony_ci     * Indicates that the user has not enrolled the authenticator.
114094332d3Sopenharmony_ci     */
115094332d3Sopenharmony_ci    NOT_ENROLLED = 10,
116094332d3Sopenharmony_ci} ResultCodeForCoAuth;
117094332d3Sopenharmony_ci
118094332d3Sopenharmony_citypedef enum AuthType {
119094332d3Sopenharmony_ci    DEFAULT_AUTH_TYPE = 0,
120094332d3Sopenharmony_ci    PIN_AUTH = 1,
121094332d3Sopenharmony_ci    FACE_AUTH = 2,
122094332d3Sopenharmony_ci} AuthType;
123094332d3Sopenharmony_ci
124094332d3Sopenharmony_citypedef enum AuthSubType {
125094332d3Sopenharmony_ci    DEFAULT_TYPE = 0,
126094332d3Sopenharmony_ci} AuthSubType;
127094332d3Sopenharmony_ci
128094332d3Sopenharmony_ci#define MAX_DULPLICATE_CHECK 100
129094332d3Sopenharmony_ci
130094332d3Sopenharmony_ci#define MAX_EXECUTOR_MSG_LEN 2048
131094332d3Sopenharmony_ci
132094332d3Sopenharmony_ci#ifdef __cplusplus
133094332d3Sopenharmony_ci}
134094332d3Sopenharmony_ci#endif // __cplusplus
135094332d3Sopenharmony_ci#endif // COMMON_DEFINES_H
136