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 OHOS_DM_CONSTANTS_H
17 #define OHOS_DM_CONSTANTS_H
18 
19 #include <string>
20 #include <map>
21 
22 #ifdef __LP64__
23 constexpr const char* DM_LIB_LOAD_PATH = "/system/lib64/";
24 #else
25 #if !(defined(__LITEOS_M__) || defined(LITE_DEVICE))
26 constexpr const char* DM_LIB_LOAD_PATH = "/system/lib/";
27 #else
28 constexpr const char* DM_LIB_LOAD_PATH = "/usr/lib/";
29 #endif
30 #endif
31 
32 namespace OHOS {
33 namespace DistributedHardware {
34 enum {
35     DM_OK = 0,
36     SOFTBUS_OK = 0,
37     STOP_BIND = 1,
38 
39     /* Transfer to the other end device, not define specification error code */
40     ERR_DM_TIME_OUT = -20001,
41     ERR_DM_UNSUPPORTED_AUTH_TYPE = -20018,
42     ERR_DM_AUTH_BUSINESS_BUSY = -20019,
43     ERR_DM_AUTH_PEER_REJECT = -20021,
44     ERR_DM_AUTH_REJECT = -20022,
45     ERR_DM_CREATE_GROUP_FAILED = -20026,
46     ERR_DM_BIND_USER_CANCEL = -20037,
47     ERR_DM_BIND_USER_CANCEL_ERROR = -20042,
48     ERR_DM_AUTH_CODE_INCORRECT = -20053,
49     ERR_DM_BIND_USER_CANCEL_PIN_CODE_DISPLAY = -20056,
50     ERR_DM_SYNC_DELETE_DEVICE_REPEATED = -20058,
51     ERR_DM_VERSION_INCOMPATIBLE = -20059,
52 
53     ERR_DM_FAILED = 96929744,
54     ERR_DM_NOT_INIT = 96929746,
55     ERR_DM_INIT_FAILED = 96929747,
56     ERR_DM_POINT_NULL = 96929748,
57     ERR_DM_INPUT_PARA_INVALID = 96929749,
58     ERR_DM_NO_PERMISSION = 96929750,
59     ERR_DM_MALLOC_FAILED = 96929751,
60     ERR_DM_DISCOVERY_FAILED = 96929752,
61     ERR_DM_MAP_KEY_ALREADY_EXISTS = 96929753,
62     ERR_DM_IPC_WRITE_FAILED = 96929754,
63     ERR_DM_IPC_COPY_FAILED = 96929755,
64     ERR_DM_IPC_SEND_REQUEST_FAILED = 96929756,
65     ERR_DM_UNSUPPORTED_IPC_COMMAND = 96929757,
66     ERR_DM_IPC_RESPOND_FAILED = 96929758,
67     ERR_DM_DISCOVERY_REPEATED = 96929759,
68     ERR_DM_AUTH_OPEN_SESSION_FAILED = 96929762,
69     ERR_DM_AUTH_FAILED = 96929765,
70     ERR_DM_AUTH_NOT_START = 96929766,
71     ERR_DM_AUTH_MESSAGE_INCOMPLETE = 96929767,
72     ERR_DM_IPC_READ_FAILED = 96929769,
73     ERR_DM_ENCRYPT_FAILED = 96929770,
74     ERR_DM_PUBLISH_FAILED = 96929771,
75     ERR_DM_PUBLISH_REPEATED = 96929772,
76     ERR_DM_STOP_DISCOVERY = 96929773,
77     ERR_DM_ADD_GROUP_FAILED = 96929774,
78 
79     // The following error codes are provided since OpenHarmony 4.1 Version.
80     ERR_DM_ADAPTER_NOT_INIT = 96929775,
81     ERR_DM_UNSUPPORTED_METHOD = 96929776,
82     ERR_DM_BIND_COMMON_FAILED = 96929777,
83     ERR_DM_BIND_INPUT_PARA_INVALID = 96929778,
84     ERR_DM_BIND_PIN_CODE_ERROR = 96929779,
85     ERR_DM_BIND_TIMEOUT_FAILED = 96929781,
86     ERR_DM_BIND_DP_ERROR = 96929782,
87     ERR_DM_BIND_HICHAIN_ERROR = 96929783,
88     ERR_DM_BIND_SOFTBUS_ERROR = 96929784,
89     ERR_DM_STOP_PUBLISH_LNN_FAILED = 96929786,
90     ERR_DM_REFRESH_LNN_FAILED = 96929787,
91     ERR_DM_STOP_REFRESH_LNN_FAILED = 96929788,
92     ERR_DM_START_ADVERTISING_FAILED = 96929789,
93     ERR_DM_STOP_ADVERTISING_FAILED = 96929790,
94     ERR_DM_ENABLE_DISCOVERY_LISTENER_FAILED = 96929791,
95     ERR_DM_DISABLE_DISCOVERY_LISTENER_FAILED = 96929792,
96     ERR_DM_START_DISCOVERING_FAILED = 96929793,
97     ERR_DM_STOP_DISCOVERING_FAILED = 96929794,
98     ERR_DM_SOFTBUS_SERVICE_NOT_INIT = 96929795,
99     ERR_DM_META_TYPE_INVALID = 96929797,
100     ERR_DM_LOAD_CUSTOM_META_NODE = 96929798,
101     ERR_DM_SOFTBUS_PUBLISH_SERVICE = 96929800,
102     ERR_DM_BIND_PEER_UNSUPPORTED = 96929802,
103     ERR_DM_HICHAIN_CREDENTIAL_REQUEST_FAILED = 96929803,
104     ERR_DM_HICHAIN_CREDENTIAL_CHECK_FAILED = 96929804,
105     ERR_DM_HICHAIN_CREDENTIAL_IMPORT_FAILED = 96929805,
106     ERR_DM_HICHAIN_CREDENTIAL_DELETE_FAILED = 96929806,
107     ERR_DM_HICHAIN_UNREGISTER_CALLBACK = 96929807,
108     ERR_DM_HICHAIN_GET_REGISTER_INFO = 96929808,
109     ERR_DM_HICHAIN_CREDENTIAL_EXISTS = 96929809,
110     ERR_DM_HICHAIN_REGISTER_CALLBACK = 96929810,
111     ERR_DM_HICHAIN_GROUP_CREATE_FAILED = 96929811,
112     ERR_DM_JSON_PARSE_STRING = 96929812,
113     ERR_DM_SOFTBUS_SEND_BROADCAST = 96929813,
114     ERR_DM_SOFTBUS_DISCOVERY_DEVICE = 96929814,
115     ERR_DM_SOFTBUS_STOP_DISCOVERY_DEVICE = 96929815,
116     ERR_DM_INVALID_JSON_STRING = 96929816,
117     ERR_DM_GET_DATA_SHA256_HASH = 96929817,
118     ERR_DM_CHANNLE_OPEN_TIMEOUT = 96929818,
119     ERR_DM_ADD_GOUTP_TIMEOUT = 96929819,
120     ERR_DM_INPUT_TIMEOUT = 96929820,
121 };
122 
123 constexpr const char* TAG_GROUP_ID = "groupId";
124 constexpr const char* TAG_GROUP_NAME = "GROUPNAME";
125 constexpr const char* TAG_REQUEST_ID = "REQUESTID";
126 constexpr const char* TAG_DEVICE_ID = "DEVICEID";
127 constexpr const char* TAG_AUTH_TYPE = "AUTHTYPE";
128 constexpr const char* TAG_CRYPTO_SUPPORT = "CRYPTOSUPPORT";
129 constexpr const char* TAG_VER = "ITF_VER";
130 constexpr const char* TAG_MSG_TYPE = "MSG_TYPE";
131 constexpr const char* DM_ITF_VER = "1.1";
132 constexpr const char* DM_PKG_NAME = "ohos.distributedhardware.devicemanager";
133 constexpr const char* DM_SESSION_NAME = "ohos.distributedhardware.devicemanager.resident";
134 constexpr const char* DM_PIN_HOLDER_SESSION_NAME = "ohos.distributedhardware.devicemanager.pinholder";
135 constexpr const char* DM_UNBIND_SESSION_NAME = "ohos.distributedhardware.devicemanager.unbind";
136 constexpr const char* DM_CAPABILITY_OSD = "osdCapability";
137 constexpr const char* DM_CAPABILITY_APPROACH = "approach";
138 constexpr const char* DM_CAPABILITY_TOUCH = "touch";
139 constexpr const char* DM_CAPABILITY_CASTPLUS = "castPlus";
140 constexpr const char* DM_CAPABILITY_VIRTUAL_LINK = "virtualLink";
141 constexpr const char* DM_CAPABILITY_SHARE = "share";
142 constexpr const char* DM_CAPABILITY_WEAR = "wear";
143 constexpr const char* DM_CREDENTIAL_TYPE = "CREDENTIAL_TYPE";
144 constexpr const char* DM_CREDENTIAL_REQJSONSTR = "CREDENTIAL_REQJSONSTR";
145 constexpr const char* DM_CREDENTIAL_RETURNJSONSTR = "CREDENTIAL_RETURNJSONSTR";
146 constexpr const char* DEVICE_MANAGER_GROUPNAME = "DMSameAccountGroup";
147 constexpr const char* FIELD_CREDENTIAL_EXISTS = "isCredentialExists";
148 constexpr int32_t DM_STRING_LENGTH_MAX = 1024;
149 constexpr int32_t PKG_NAME_SIZE_MAX = 256;
150 constexpr const char* DM_TYPE_MINE = "MINE";
151 constexpr const char* DM_TYPE_OH = "OH";
152 constexpr const char* TAG_SESSION_HEARTBEAT = "session_heartbeat";
153 
154 //The following constant are provided only for HiLink.
155 const static char *EXT_PART = "ext_part";
156 
157 // Auth
158 constexpr const char* AUTH_TYPE = "authType";
159 constexpr const char* APP_OPERATION = "appOperation";
160 constexpr const char* CUSTOM_DESCRIPTION = "customDescription";
161 constexpr const char* TOKEN = "token";
162 constexpr const char* PIN_TOKEN = "pinToken";
163 constexpr const char* PIN_CODE_KEY = "pinCode";
164 constexpr int32_t CHECK_AUTH_ALWAYS_POS = 0;
165 constexpr const char AUTH_ALWAYS = '1';
166 constexpr const char AUTH_ONCE = '0';
167 constexpr const char* TAG_TARGET_DEVICE_NAME = "targetDeviceName";
168 
169 // HiChain
170 constexpr int32_t SERVICE_INIT_TRY_MAX_NUM = 200;
171 constexpr int32_t DEVICE_UUID_LENGTH = 65;
172 constexpr int32_t DEVICE_NETWORKID_LENGTH = 100;
173 constexpr int32_t GROUP_TYPE_INVALID_GROUP = -1;
174 constexpr int32_t GROUP_TYPE_IDENTICAL_ACCOUNT_GROUP = 1;
175 constexpr int32_t GROUP_TYPE_PEER_TO_PEER_GROUP = 256;
176 constexpr int32_t GROUP_TYPE_ACROSS_ACCOUNT_GROUP = 1282;
177 constexpr int32_t GROUP_VISIBILITY_PUBLIC = -1;
178 constexpr int64_t MIN_REQUEST_ID = 1000000000;
179 constexpr int64_t MAX_REQUEST_ID = 9999999999;
180 constexpr int32_t AUTH_DEVICE_REQ_NEGOTIATE = 600;
181 constexpr int32_t AUTH_DEVICE_RESP_NEGOTIATE = 700;
182 constexpr int32_t DEVICEID_LEN = 8;
183 
184 // ACE
185 constexpr const char* EVENT_CONFIRM = "EVENT_CONFIRM";
186 constexpr const char* EVENT_CANCEL = "EVENT_CANCEL";
187 constexpr const char* EVENT_INIT = "EVENT_INIT";
188 constexpr const char* EVENT_CONFIRM_CODE = "0";
189 constexpr const char* EVENT_CANCEL_CODE = "1";
190 constexpr const char* EVENT_INIT_CODE = "2";
191 
192 // Key of filter parameter
193 constexpr const char* FILTER_PARA_RANGE = "FILTER_RANGE";
194 constexpr const char* FILTER_PARA_DEVICE_TYPE = "FILTER_DEVICE_TYPE";
195 constexpr const char* FILTER_PARA_INCLUDE_TRUST = "FILTER_INCLUDE_TRUST";
196 
197 // Connection address type
198 constexpr const char* CONN_ADDR_TYPE_ID = "ID_TYPE";
199 constexpr const char* CONN_ADDR_TYPE_BR = "BR_TYPE";
200 constexpr const char* CONN_ADDR_TYPE_BLE = "BLE_TYPE";
201 constexpr const char* CONN_ADDR_TYPE_WLAN_IP = "WLAN_IP_TYPE";
202 constexpr const char* CONN_ADDR_TYPE_ETH_IP = "ETH_IP_TYPE";
203 
204 // Parameter Key
205 constexpr const char* PARAM_KEY_META_TYPE = "META_TYPE";
206 constexpr const char* PARAM_KEY_TARGET_ID = "TARGET_ID";
207 constexpr const char* PARAM_KEY_BR_MAC = "BR_MAC";
208 constexpr const char* PARAM_KEY_BLE_MAC = "BLE_MAC";
209 constexpr const char* PARAM_KEY_WIFI_IP = "WIFI_IP";
210 constexpr const char* PARAM_KEY_WIFI_PORT = "WIFI_PORT";
211 constexpr const char* PARAM_KEY_AUTH_TOKEN = "AUTH_TOKEN";
212 constexpr const char* PARAM_KEY_AUTH_TYPE = "AUTH_TYPE";
213 constexpr const char* PARAM_KEY_PIN_CODE = "PIN_CODE";
214 constexpr const char* PARAM_KEY_APP_OPER = "APP_OPER";
215 constexpr const char* PARAM_KEY_APP_DESC = "APP_DESC";
216 constexpr const char* PARAM_KEY_BLE_UDID_HASH = "BLE_UDID_HASH";
217 constexpr const char* PARAM_KEY_CUSTOM_DATA = "CUSTOM_DATA";
218 constexpr const char* PARAM_KEY_CONN_ADDR_TYPE = "CONN_ADDR_TYPE";
219 constexpr const char* PARAM_KEY_PUBLISH_ID = "PUBLISH_ID";
220 constexpr const char* PARAM_KEY_SUBSCRIBE_ID = "SUBSCRIBE_ID";
221 constexpr const char* PARAM_KEY_TARGET_PKG_NAME = "TARGET_PKG_NAME";
222 constexpr const char* PARAM_KEY_DISC_FREQ = "DISC_FREQ";
223 constexpr const char* PARAM_KEY_DISC_MEDIUM = "DISC_MEDIUM";
224 constexpr const char* PARAM_KEY_DISC_CAPABILITY = "DISC_CAPABILITY";
225 constexpr const char* PARAM_KEY_DISC_MODE = "DISC_MODE";
226 constexpr const char* PARAM_KEY_AUTO_STOP_ADVERTISE = "AUTO_STOP_ADVERTISE";
227 constexpr const char* PARAM_KEY_FILTER_OPTIONS = "FILTER_OPTIONS";
228 constexpr const char* PARAM_KEY_BIND_EXTRA_DATA = "BIND_EXTRA_DATA";
229 constexpr const char* PARAM_KEY_OS_TYPE = "OS_TYPE";
230 constexpr const char* PARAM_KEY_OS_VERSION = "OS_VERSION";
231 constexpr const char* DM_CONNECTION_DISCONNECTED = "DM_CONNECTION_DISCONNECTED";
232 constexpr const char* BIND_LEVEL = "bindLevel";
233 constexpr const char* TOKENID = "tokenId";
234 constexpr const char* DM_BIND_RESULT_NETWORK_ID = "DM_BIND_RESULT_NETWORK_ID";
235 constexpr const char* PARAM_KEY_POLICY_STRATEGY_FOR_BLE = "DM_POLICY_STRATEGY_FOR_BLE";
236 constexpr const char* PARAM_KEY_POLICY_TIME_OUT = "DM_POLICY_TIMEOUT";
237 constexpr const char* DEVICE_SCREEN_STATUS = "DEVICE_SCREEN_STATUS";
238 
239 // screen state
240 constexpr int32_t DM_SCREEN_UNKNOWN = -1;
241 constexpr int32_t DM_SCREEN_ON = 0;
242 constexpr int32_t DM_SCREEN_OFF = 1;
243 
244 // errCode map
245 const std::map<int32_t, int32_t> MAP_ERROR_CODE = {
246     { ERR_DM_TIME_OUT, 96929745 }, { ERR_DM_UNSUPPORTED_AUTH_TYPE, 96929760 }, { ERR_DM_AUTH_BUSINESS_BUSY, 96929761 },
247     { ERR_DM_AUTH_PEER_REJECT, 96929763 }, { ERR_DM_AUTH_REJECT, 96929764 }, { ERR_DM_CREATE_GROUP_FAILED, 96929768 },
248     { ERR_DM_BIND_USER_CANCEL, 96929780 }, { ERR_DM_BIND_USER_CANCEL_ERROR, 96929785 },
249     { ERR_DM_AUTH_CODE_INCORRECT, 96929796 }, { ERR_DM_BIND_USER_CANCEL_PIN_CODE_DISPLAY, 96929799 },
250     { ERR_DM_SYNC_DELETE_DEVICE_REPEATED, 96929801 }
251 };
252 } // namespace DistributedHardware
253 } // namespace OHOS
254 #endif // OHOS_DM_CONSTANTS_H