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_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 
121 constexpr const char* TAG_GROUP_ID = "groupId";
122 constexpr const char* TAG_GROUP_NAME = "GROUPNAME";
123 constexpr const char* TAG_REQUEST_ID = "REQUESTID";
124 constexpr const char* TAG_DEVICE_ID = "DEVICEID";
125 constexpr const char* TAG_AUTH_TYPE = "AUTHTYPE";
126 constexpr const char* TAG_CRYPTO_SUPPORT = "CRYPTOSUPPORT";
127 constexpr const char* TAG_VER = "ITF_VER";
128 constexpr const char* TAG_MSG_TYPE = "MSG_TYPE";
129 constexpr const char* DM_ITF_VER = "1.1";
130 constexpr const char* DM_PKG_NAME = "ohos.distributedhardware.devicemanager";
131 constexpr const char* DM_SESSION_NAME = "ohos.distributedhardware.devicemanager.resident";
132 constexpr const char* DM_PIN_HOLDER_SESSION_NAME = "ohos.distributedhardware.devicemanager.pinholder";
133 constexpr const char* DM_CAPABILITY_OSD = "osdCapability";
134 constexpr const char* DM_CAPABILITY_APPROACH = "approach";
135 constexpr const char* DM_CAPABILITY_TOUCH = "touch";
136 constexpr const char* DM_CAPABILITY_CASTPLUS = "castPlus";
137 constexpr const char* DM_CAPABILITY_VIRTUAL_LINK = "virtualLink";
138 constexpr const char* DM_CAPABILITY_SHARE = "share";
139 constexpr const char* DM_CAPABILITY_WEAR = "wear";
140 constexpr const char* DM_CREDENTIAL_TYPE = "CREDENTIAL_TYPE";
141 constexpr const char* DM_CREDENTIAL_REQJSONSTR = "CREDENTIAL_REQJSONSTR";
142 constexpr const char* DM_CREDENTIAL_RETURNJSONSTR = "CREDENTIAL_RETURNJSONSTR";
143 constexpr const char* DEVICE_MANAGER_GROUPNAME = "DMSameAccountGroup";
144 constexpr const char* FIELD_CREDENTIAL_EXISTS = "isCredentialExists";
145 constexpr int32_t DM_STRING_LENGTH_MAX = 1024;
146 constexpr int32_t PKG_NAME_SIZE_MAX = 256;
147 constexpr const char* DM_TYPE_MINE = "MINE";
148 constexpr const char* DM_TYPE_OH = "OH";
149 constexpr const char* TAG_SESSION_HEARTBEAT = "session_heartbeat";
150 
151 //The following constant are provided only for HiLink.
152 const static char *EXT_PART = "ext_part";
153 
154 // Auth
155 constexpr const char* AUTH_TYPE = "authType";
156 constexpr const char* APP_OPERATION = "appOperation";
157 constexpr const char* CUSTOM_DESCRIPTION = "customDescription";
158 constexpr const char* TOKEN = "token";
159 constexpr const char* PIN_TOKEN = "pinToken";
160 constexpr const char* PIN_CODE_KEY = "pinCode";
161 constexpr int32_t CHECK_AUTH_ALWAYS_POS = 0;
162 constexpr const char AUTH_ALWAYS = '1';
163 constexpr const char AUTH_ONCE = '0';
164 constexpr const char* TAG_TARGET_DEVICE_NAME = "targetDeviceName";
165 
166 // HiChain
167 constexpr int32_t SERVICE_INIT_TRY_MAX_NUM = 200;
168 constexpr int32_t DEVICE_UUID_LENGTH = 65;
169 constexpr int32_t DEVICE_NETWORKID_LENGTH = 100;
170 constexpr int32_t GROUP_TYPE_INVALID_GROUP = -1;
171 constexpr int32_t GROUP_TYPE_IDENTICAL_ACCOUNT_GROUP = 1;
172 constexpr int32_t GROUP_TYPE_PEER_TO_PEER_GROUP = 256;
173 constexpr int32_t GROUP_TYPE_ACROSS_ACCOUNT_GROUP = 1282;
174 constexpr int32_t GROUP_VISIBILITY_PUBLIC = -1;
175 constexpr int64_t MIN_REQUEST_ID = 1000000000;
176 constexpr int64_t MAX_REQUEST_ID = 9999999999;
177 constexpr int32_t AUTH_DEVICE_REQ_NEGOTIATE = 600;
178 constexpr int32_t AUTH_DEVICE_RESP_NEGOTIATE = 700;
179 constexpr int32_t DEVICEID_LEN = 8;
180 
181 // ACE
182 constexpr const char* EVENT_CONFIRM = "EVENT_CONFIRM";
183 constexpr const char* EVENT_CANCEL = "EVENT_CANCEL";
184 constexpr const char* EVENT_INIT = "EVENT_INIT";
185 constexpr const char* EVENT_CONFIRM_CODE = "0";
186 constexpr const char* EVENT_CANCEL_CODE = "1";
187 constexpr const char* EVENT_INIT_CODE = "2";
188 
189 // Key of filter parameter
190 constexpr const char* FILTER_PARA_RANGE = "FILTER_RANGE";
191 constexpr const char* FILTER_PARA_DEVICE_TYPE = "FILTER_DEVICE_TYPE";
192 constexpr const char* FILTER_PARA_INCLUDE_TRUST = "FILTER_INCLUDE_TRUST";
193 
194 // Connection address type
195 constexpr const char* CONN_ADDR_TYPE_ID = "ID_TYPE";
196 constexpr const char* CONN_ADDR_TYPE_BR = "BR_TYPE";
197 constexpr const char* CONN_ADDR_TYPE_BLE = "BLE_TYPE";
198 constexpr const char* CONN_ADDR_TYPE_WLAN_IP = "WLAN_IP_TYPE";
199 constexpr const char* CONN_ADDR_TYPE_ETH_IP = "ETH_IP_TYPE";
200 
201 // Parameter Key
202 constexpr const char* PARAM_KEY_META_TYPE = "META_TYPE";
203 constexpr const char* PARAM_KEY_TARGET_ID = "TARGET_ID";
204 constexpr const char* PARAM_KEY_BR_MAC = "BR_MAC";
205 constexpr const char* PARAM_KEY_BLE_MAC = "BLE_MAC";
206 constexpr const char* PARAM_KEY_WIFI_IP = "WIFI_IP";
207 constexpr const char* PARAM_KEY_WIFI_PORT = "WIFI_PORT";
208 constexpr const char* PARAM_KEY_AUTH_TOKEN = "AUTH_TOKEN";
209 constexpr const char* PARAM_KEY_AUTH_TYPE = "AUTH_TYPE";
210 constexpr const char* PARAM_KEY_PIN_CODE = "PIN_CODE";
211 constexpr const char* PARAM_KEY_APP_OPER = "APP_OPER";
212 constexpr const char* PARAM_KEY_APP_DESC = "APP_DESC";
213 constexpr const char* PARAM_KEY_BLE_UDID_HASH = "BLE_UDID_HASH";
214 constexpr const char* PARAM_KEY_CUSTOM_DATA = "CUSTOM_DATA";
215 constexpr const char* PARAM_KEY_CONN_ADDR_TYPE = "CONN_ADDR_TYPE";
216 constexpr const char* PARAM_KEY_PUBLISH_ID = "PUBLISH_ID";
217 constexpr const char* PARAM_KEY_SUBSCRIBE_ID = "SUBSCRIBE_ID";
218 constexpr const char* PARAM_KEY_TARGET_PKG_NAME = "TARGET_PKG_NAME";
219 constexpr const char* PARAM_KEY_DISC_FREQ = "DISC_FREQ";
220 constexpr const char* PARAM_KEY_DISC_MEDIUM = "DISC_MEDIUM";
221 constexpr const char* PARAM_KEY_DISC_CAPABILITY = "DISC_CAPABILITY";
222 constexpr const char* PARAM_KEY_DISC_MODE = "DISC_MODE";
223 constexpr const char* PARAM_KEY_AUTO_STOP_ADVERTISE = "AUTO_STOP_ADVERTISE";
224 constexpr const char* PARAM_KEY_FILTER_OPTIONS = "FILTER_OPTIONS";
225 constexpr const char* PARAM_KEY_BIND_EXTRA_DATA = "BIND_EXTRA_DATA";
226 constexpr const char* PARAM_KEY_OS_TYPE = "OS_TYPE";
227 constexpr const char* PARAM_KEY_OS_VERSION = "OS_VERSION";
228 constexpr const char* DM_CONNECTION_DISCONNECTED = "DM_CONNECTION_DISCONNECTED";
229 constexpr const char* BIND_LEVEL = "bindLevel";
230 constexpr const char* TOKENID = "tokenId";
231 constexpr const char* DM_BIND_RESULT_NETWORK_ID = "DM_BIND_RESULT_NETWORK_ID";
232 constexpr const char* PARAM_KEY_POLICY_STRATEGY_FOR_BLE = "DM_POLICY_STRATEGY_FOR_BLE";
233 constexpr const char* PARAM_KEY_POLICY_TIME_OUT = "DM_POLICY_TIMEOUT";
234 constexpr const char* DEVICE_SCREEN_STATUS = "DEVICE_SCREEN_STATUS";
235 
236 // screen state
237 constexpr int32_t DM_SCREEN_UNKNOWN = -1;
238 constexpr int32_t DM_SCREEN_ON = 0;
239 constexpr int32_t DM_SCREEN_OFF = 1;
240 
241 // errCode map
242 const 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