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