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