• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025-2025 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 /**
17  * @file hks_type_error_code.h
18  *
19  * @brief Declares huks error code.
20  *
21  * @since 8
22  */
23 
24 #ifndef HKS_ERROR_CODE_H
25 #define HKS_ERROR_CODE_H
26 
27 #include <stdbool.h>
28 #include <stdint.h>
29 #include <stdlib.h>
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 /**
36  * @brief hks error code
37  */
38  enum HksErrorCode {
39     HKS_SUCCESS = 0,
40     HKS_FAILURE = -1,
41     HKS_ERROR_BAD_STATE = -2,
42     HKS_ERROR_INVALID_ARGUMENT = -3,
43     HKS_ERROR_NOT_SUPPORTED = -4,
44     HKS_ERROR_NO_PERMISSION = -5,
45     HKS_ERROR_INSUFFICIENT_DATA = -6,
46     HKS_ERROR_BUFFER_TOO_SMALL = -7,
47     HKS_ERROR_INSUFFICIENT_MEMORY = -8,
48     HKS_ERROR_COMMUNICATION_FAILURE = -9,
49     HKS_ERROR_STORAGE_FAILURE = -10,
50     HKS_ERROR_HARDWARE_FAILURE = -11,
51     HKS_ERROR_ALREADY_EXISTS = -12,
52     HKS_ERROR_NOT_EXIST = -13,
53     HKS_ERROR_NULL_POINTER = -14,
54     HKS_ERROR_FILE_SIZE_FAIL = -15,
55     HKS_ERROR_READ_FILE_FAIL = -16,
56     HKS_ERROR_INVALID_PUBLIC_KEY = -17,
57     HKS_ERROR_INVALID_PRIVATE_KEY = -18,
58     HKS_ERROR_INVALID_KEY_INFO = -19,
59     HKS_ERROR_HASH_NOT_EQUAL = -20,
60     HKS_ERROR_MALLOC_FAIL = -21,
61     HKS_ERROR_WRITE_FILE_FAIL = -22,
62     HKS_ERROR_REMOVE_FILE_FAIL = -23,
63     HKS_ERROR_OPEN_FILE_FAIL = -24,
64     HKS_ERROR_CLOSE_FILE_FAIL = -25,
65     HKS_ERROR_MAKE_DIR_FAIL = -26,
66     HKS_ERROR_INVALID_KEY_FILE = -27,
67     HKS_ERROR_IPC_MSG_FAIL = -28,
68     HKS_ERROR_REQUEST_OVERFLOWS = -29,
69     HKS_ERROR_PARAM_NOT_EXIST = -30,
70     HKS_ERROR_CRYPTO_ENGINE_ERROR = -31,
71     HKS_ERROR_COMMUNICATION_TIMEOUT = -32,
72     HKS_ERROR_IPC_INIT_FAIL = -33,
73     HKS_ERROR_IPC_DLOPEN_FAIL = -34,
74     HKS_ERROR_EFUSE_READ_FAIL = -35,
75     HKS_ERROR_NEW_ROOT_KEY_MATERIAL_EXIST = -36,
76     HKS_ERROR_UPDATE_ROOT_KEY_MATERIAL_FAIL = -37,
77     HKS_ERROR_VERIFICATION_FAILED = -38,
78     HKS_ERROR_SESSION_REACHED_LIMIT = -39,
79 
80     HKS_ERROR_GET_USERIAM_SECINFO_FAILED = -40,
81     HKS_ERROR_GET_USERIAM_AUTHINFO_FAILED = -41,
82     HKS_ERROR_USER_AUTH_TYPE_NOT_SUPPORT = -42,
83     HKS_ERROR_KEY_AUTH_FAILED = -43,
84     HKS_ERROR_DEVICE_NO_CREDENTIAL = -44,
85     HKS_ERROR_API_NOT_SUPPORTED = -45,
86     HKS_ERROR_KEY_AUTH_PERMANENTLY_INVALIDATED = -46,
87     HKS_ERROR_KEY_AUTH_VERIFY_FAILED = -47,
88     HKS_ERROR_KEY_AUTH_TIME_OUT = -48,
89 
90     HKS_ERROR_CREDENTIAL_NOT_EXIST = -49,
91 
92     HKS_ERROR_CHECK_GET_ALG_FAIL = -100,
93     HKS_ERROR_CHECK_GET_KEY_SIZE_FAIL = -101,
94     HKS_ERROR_CHECK_GET_PADDING_FAIL = -102,
95     HKS_ERROR_CHECK_GET_PURPOSE_FAIL = -103,
96     HKS_ERROR_CHECK_GET_DIGEST_FAIL = -104,
97     HKS_ERROR_CHECK_GET_MODE_FAIL = -105,
98     HKS_ERROR_CHECK_GET_NONCE_FAIL = -106,
99     HKS_ERROR_CHECK_GET_AAD_FAIL = -107,
100     HKS_ERROR_CHECK_GET_IV_FAIL = -108,
101     HKS_ERROR_CHECK_GET_AE_TAG_FAIL = -109,
102     HKS_ERROR_CHECK_GET_SALT_FAIL = -110,
103     HKS_ERROR_CHECK_GET_ITERATION_FAIL = -111,
104     HKS_ERROR_INVALID_ALGORITHM = -112,
105     HKS_ERROR_INVALID_KEY_SIZE = -113,
106     HKS_ERROR_INVALID_PADDING = -114,
107     HKS_ERROR_INVALID_PURPOSE = -115,
108     HKS_ERROR_INVALID_MODE = -116,
109     HKS_ERROR_INVALID_DIGEST =  -117,
110     HKS_ERROR_INVALID_SIGNATURE_SIZE = -118,
111     HKS_ERROR_INVALID_IV = -119,
112     HKS_ERROR_INVALID_AAD = -120,
113     HKS_ERROR_INVALID_NONCE = -121,
114     HKS_ERROR_INVALID_AE_TAG = -122,
115     HKS_ERROR_INVALID_SALT = -123,
116     HKS_ERROR_INVALID_ITERATION = -124,
117     HKS_ERROR_INVALID_OPERATION = -125,
118     HKS_ERROR_INVALID_WRAPPED_FORMAT = -126,
119     HKS_ERROR_INVALID_USAGE_OF_KEY = -127,
120     HKS_ERROR_CHECK_GET_AUTH_TYP_FAILED = -128,
121     HKS_ERROR_CHECK_GET_CHALLENGE_TYPE_FAILED = -129,
122     HKS_ERROR_CHECK_GET_ACCESS_TYPE_FAILED = -130,
123     HKS_ERROR_CHECK_GET_AUTH_TOKEN_FAILED = -131,
124     HKS_ERROR_INVALID_TIME_OUT = -132,
125     HKS_ERROR_INVALID_AUTH_TYPE = -133,
126     HKS_ERROR_INVALID_CHALLENGE_TYPE = -134,
127     HKS_ERROR_INVALID_ACCESS_TYPE = -135,
128     HKS_ERROR_INVALID_AUTH_TOKEN = -136,
129     HKS_ERROR_INVALID_SECURE_SIGN_TYPE = -137,
130     HKS_ERROR_NEED_SKIP_ACCESS_CONTROL = -138,
131     HKS_ERROR_DEVICE_PASSWORD_UNSET = -139,
132     HKS_ERROR_NOT_SYSTEM_APP = -140,
133     HKS_ERROR_EXCEED_LIMIT = -141,
134     HKS_ERROR_UPGRADE_FAIL = -142,
135     HKS_ERROR_INVALID_ACCOUNT_INFO = -143,
136     HKS_ERROR_CORRUPT_FILE = -144,
137     HKS_ERROR_KEY_NODE_NOT_FOUND = -145,
138     HKS_ERROR_KEY_NODE_IN_USE = -146,
139     HKS_ERROR_RETRYABLE_ERROR = -147,
140     HKS_ERROR_TRUST_RING_DECRYPT_FAILED = -148,
141     HKS_ERROR_KEY_CLEAR_FAILED = -149,
142     HKS_ERROR_KEY_CONFLICT = -150,
143     HKS_ERROR_EMPTY_BASE64_STRING = -151,
144     HKS_ERROR_ACCESS_OTHER_USER_KEY = -152,
145 
146     HKS_ERROR_INVALID_KEY_WRAP_TYPE = -153,
147     HKS_ERROR_GENERATE_SHARE_KEY = -154,
148     HKS_ERROR_DSTB_PRE_ATTESTATION = -155,
149     HKS_ERROR_KEY_NOT_ALLOW_WRAP = -156,
150     HKS_ERROR_CHECK_WRAP_DATA_STORAGE_LEVEL = -157,
151     HKS_ERROR_CHECK_WRAP_DATA_IS_PASSWORD_SET = -158,
152     HKS_ERROR_CHECK_WRAP_DATA_KEY_ACCESS_TYPE = -159,
153     HKS_ERROR_WRAP_KEY_BY_SHARE_KEY_VERSION_MISMATCH = -160,
154     HKS_ERROR_INVALID_DATA_WRAP_TYPE = -161,
155     HKS_ERROR_ASSET_KEY_NOT_FOUND = -162,
156     HKS_ERROR_PARCEL_WRITE_FAIL = -163,
157     HKS_ERROR_PARCEL_READ_FAIL = -164,
158     HKS_ERROR_PARCEL_GET_FAIL = -165,
159     HKS_ERROR_PARSE_OLD_AAD = -166,
160     HKS_ERROR_CODE_KEY_ALREADY_EXIST = -167,
161 
162     HKS_ERROR_NEW_INVALID_ARGUMENT = -997,
163     HKS_ERROR_LOAD_PLUGIN_FAIL = -998,
164     HKS_ERROR_INTERNAL_ERROR = -999,
165     HKS_ERROR_UNKNOWN_ERROR = -1000,
166 };
167 
168 /**
169  * @brief hks err code
170  */
171 enum HksErrCode {
172     HUKS_ERR_CODE_PERMISSION_FAIL = 201,
173     HUKS_ERR_CODE_NOT_SYSTEM_APP = 202,
174     HUKS_ERR_CODE_ILLEGAL_ARGUMENT = 401,
175     HUKS_ERR_CODE_NOT_SUPPORTED_API = 801,
176 
177     HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED = 12000001,
178     HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT = 12000002,
179     HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT = 12000003,
180     HUKS_ERR_CODE_FILE_OPERATION_FAIL = 12000004,
181     HUKS_ERR_CODE_COMMUNICATION_FAIL = 12000005,
182     HUKS_ERR_CODE_CRYPTO_FAIL = 12000006,
183     HUKS_ERR_CODE_KEY_AUTH_PERMANENTLY_INVALIDATED = 12000007,
184     HUKS_ERR_CODE_KEY_AUTH_VERIFY_FAILED = 12000008,
185     HUKS_ERR_CODE_KEY_AUTH_TIME_OUT = 12000009,
186     HUKS_ERR_CODE_SESSION_LIMIT = 12000010,
187     HUKS_ERR_CODE_ITEM_NOT_EXIST = 12000011,
188     HUKS_ERR_CODE_EXTERNAL_ERROR = 12000012,
189     HUKS_ERR_CODE_CREDENTIAL_NOT_EXIST = 12000013,
190     HUKS_ERR_CODE_INSUFFICIENT_MEMORY = 12000014,
191     HUKS_ERR_CODE_CALL_SERVICE_FAILED = 12000015,
192     HUKS_ERR_CODE_DEVICE_PASSWORD_UNSET = 12000016,
193     HUKS_ERR_CODE_KEY_ALREADY_EXIST = 12000017,
194     HUKS_ERR_CODE_INVALID_ARGUMENT = 12000018,
195 };
196 
197 #ifdef __cplusplus
198 }
199 #endif
200 
201 #endif /* HKS_ERROR_CODE_H */
202