• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022-2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef COMMON_DEFINES_H
17 #define COMMON_DEFINES_H
18 
19 #include <stdint.h>
20 
21 #include "adaptor_log.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 enum InnerKitResultCode {
28     INNER_RESULT_SUCCESS = 0,
29     INNER_RESULT_FAIL = 1,
30     INNER_RESULT_GENERAL_ERROR = 2,
31     INNER_RESULT_CANCELED = 3,
32     INNER_RESULT_TIMEOUT = 4,
33     INNER_RESULT_TYPE_NOT_SUPPORT = 5,
34     INNER_RESULT_TRUST_LEVEL_NOT_SUPPORT = 6,
35     INNER_RESULT_BUSY = 7,
36     INNER_RESULT_INVALID_PARAMETERS = 8,
37     INNER_RESULT_LOCKED = 9,
38     INNER_RESULT_NOT_ENROLLED = 10,
39     INNER_RESULT_HARDWARE_NOT_SUPPORTED = 11,
40     INNER_RESULT_PIN_EXPIRED = 13,
41     INNER_RESULT_AUTH_TOKEN_CHECK_FAILED = 15,
42     INNER_RESULT_AUTH_TOKEN_EXPIRED = 16,
43     INNER_RESULT_REUSE_AUTH_RESULT_FAILED = 17,
44     INNER_RESULT_SYSTEM_ERROR_CODE_BEGIN = 1000, // error code for system
45     INNER_RESULT_IPC_ERROR = 1001,
46     INNER_RESULT_INVALID_CONTEXT_ID = 1002,
47     INNER_RESULT_READ_PARCEL_ERROR = 1003,
48     INNER_RESULT_WRITE_PARCEL_ERROR = 1004,
49     INNER_RESULT_CHECK_PERMISSION_FAILED = 1005,
50     INNER_RESULT_INVALID_HDI_INTERFACE = 1006,
51     INNER_RESULT_VENDOR_ERROR_CODE_BEGIN = 10000, // error code for vendor
52 };
53 
54 typedef enum ResultCode {
55     RESULT_SUCCESS = INNER_RESULT_SUCCESS,
56     RESULT_GENERAL_ERROR = INNER_RESULT_GENERAL_ERROR,
57     RESULT_BAD_PARAM = INNER_RESULT_INVALID_PARAMETERS,
58     RESULT_NOT_ENROLLED = INNER_RESULT_NOT_ENROLLED,
59     RESULT_TYPE_NOT_SUPPORT = INNER_RESULT_TYPE_NOT_SUPPORT,
60     RESULT_TRUST_LEVEL_NOT_SUPPORT = INNER_RESULT_TRUST_LEVEL_NOT_SUPPORT,
61     RESULT_TIMEOUT = INNER_RESULT_TIMEOUT,
62     RESULT_PIN_EXPIRED = INNER_RESULT_PIN_EXPIRED,
63     RESULT_REUSE_AUTH_RESULT_FAILED = INNER_RESULT_REUSE_AUTH_RESULT_FAILED,
64     RESULT_BAD_COPY = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0x3,
65     RESULT_NO_MEMORY = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0x4,
66     RESULT_NEED_INIT = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0x5,
67     RESULT_NOT_FOUND = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0x6,
68     RESULT_REACH_LIMIT = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0x7,
69     RESULT_DUPLICATE_CHECK_FAILED = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0x8,
70     RESULT_BAD_READ = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0x9,
71     RESULT_BAD_WRITE = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0xA,
72     RESULT_BAD_DEL = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0xB,
73     RESULT_UNKNOWN = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0xC,
74     RESULT_BAD_MATCH = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0xD,
75     RESULT_BAD_SIGN = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0xE,
76     RESULT_BUSY = INNER_RESULT_BUSY,
77     RESULT_TOKEN_TIMEOUT = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0x10,
78     RESULT_VERIFY_TOKEN_FAIL = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0x11,
79     RESULT_EXCEED_LIMIT = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0x12,
80 
81     RESULT_AUTH_NOT_COMPELETED = INNER_RESULT_VENDOR_ERROR_CODE_BEGIN + 0x10001,
82 } ResultCode;
83 
84 typedef enum AuthType {
85     DEFAULT_AUTH_TYPE = 0, // default type used to cache pin
86     PIN_AUTH = 1,
87     FACE_AUTH = 2,
88     FINGER_AUTH = 4,
89     RECOVERY_KEY = 8,
90 } AuthType;
91 
92 typedef enum ScheduleMode {
93     SCHEDULE_MODE_ENROLL = 0,
94     SCHEDULE_MODE_AUTH = 1,
95     SCHEDULE_MODE_IDENTIFY = 2,
96     SCHEDULE_MODE_REUSE_UNLOCK_AUTH_RESULT = 3,
97     SCHEDULE_MODE_ABANDON = 4,
98 } ScheduleMode;
99 
100 typedef enum AuthSubType {
101     DEFAULT_TYPE = 0,
102 } AuthSubType;
103 
104 typedef enum UserType {
105     MAIN_USER = 0,
106     SUB_USER = 1,
107     PRIVATE_USER = 2,
108 } UserType;
109 
110 typedef enum AuthPropertyMode {
111     PROPERTY_INIT_ALGORITHM = 1,
112     PROPERTY_MODE_DEL = 2,
113     PROPERTY_MODE_GET = 3,
114     PROPERTY_MODE_SET = 4,
115     PROPERTY_MODE_FREEZE = 5,
116     PROPERTY_MODE_UNFREEZE = 6,
117     PROPERTY_MODE_SET_CACHED_TEMPLATES = 7,
118 } AuthPropertyMode;
119 
120 typedef enum Asl {
121     ASL0 = 0,
122     ASL1 = 1,
123     ASL2 = 2,
124     ASL3 = 3,
125     MAX_ASL = 4,
126 } Asl;
127 
128 typedef enum Acl {
129     ACL0 = 0,
130     ACL1 = 1,
131     ACL2 = 2,
132     ACL3 = 3,
133 } Acl;
134 
135 typedef enum Atl {
136     ATL0 = 0,
137     ATL1 = 10000,
138     ATL2 = 20000,
139     ATL3 = 30000,
140     ATL4 = 40000,
141 } Atl;
142 
143 typedef enum TokenType {
144     TOKEN_TYPE_LOCAL_AUTH = 0,
145     TOKEN_TYPE_LOCAL_RESIGN = 1,
146     TOKEN_TYPE_COAUTH = 2,
147 } TokenType;
148 
149 typedef enum AuthIntent {
150     DEFUALT = 0,
151     UNLOCK = 1,
152     SILENT_AUTH = 2,
153     ABANDONED_PIN_AUTH = 4,
154 } AuthIntent;
155 
156 typedef enum ScheduleType {
157     SCHEDULE_TYPE_ENROLL = 1,
158     SCHEDULE_TYPE_UPDATE = 2,
159     SCHEDULE_TYPE_ABANDON = 3,
160 } ScheduleType;
161 
162 typedef enum PinChangeScence {
163     PIN_UPDATE_SCENCE = 0,
164     PIN_RESET_SCENCE = 1,
165 } PinChangeScence;
166 
167 #define IF_TRUE_LOGE_AND_RETURN_VAL(cond, retVal) \
168     do { \
169         if (cond) { \
170             LOG_ERROR("(" #cond ") check fail, return"); \
171             return (retVal); \
172         } \
173     } while (0)
174 
175 #define IF_TRUE_LOGE_AND_RETURN(cond) \
176     do { \
177         if (cond) { \
178             LOG_ERROR("(" #cond ") check fail, return"); \
179             return; \
180         } \
181     } while (0)
182 
183 #define MAX_DUPLICATE_CHECK 100
184 #define INVALID_SENSOR_HINT 0
185 #define MAX_TEMPLATE_OF_SCHEDULE 20
186 #define CHALLENGE_LEN 32
187 #define MAX_CREDENTIAL_OUTPUT 20
188 #define MAX_ENROLL_OUTPUT 6
189 #define MAX_AUTH_TYPE_LEN 6
190 #define UDID_LEN 64
191 #define INVALID_USER_ID (-1)
192 
193 #ifdef __cplusplus
194 }
195 #endif
196 
197 #endif
198