1 /*
2 * Copyright (c) 2021-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 #include "lnn_node_info.h"
17
18 #include <string.h>
19
20 #include <securec.h>
21
22 #include "anonymizer.h"
23 #include "lnn_log.h"
24 #include "softbus_error_code.h"
25 #include "softbus_utils.h"
26
27 #define DYNAMIC_LEVEL_INVALID 0xFFFF
28 #define STATIC_LEVEL_INVALID 0xFFFF
29 #define SWITCH_LEVEL_INVALID 0xFFFFFFFF
30 #define SWTICH_LENGTH_INVALID 0xFFFF
31 #define SWITCH_MAX_LENGTH 24
32
LnnHasDiscoveryType(const NodeInfo * info,DiscoveryType type)33 bool LnnHasDiscoveryType(const NodeInfo *info, DiscoveryType type)
34 {
35 if (info == NULL || type >= DISCOVERY_TYPE_COUNT) {
36 LNN_LOGE(LNN_LEDGER, "para error");
37 return false;
38 }
39 if (((uint32_t)info->discoveryType & (1 << (uint32_t)type)) != 0) {
40 return true;
41 }
42 return false;
43 }
44
LnnGetDeviceUdid(const NodeInfo * info)45 const char *LnnGetDeviceUdid(const NodeInfo *info)
46 {
47 if (info == NULL) {
48 return NULL;
49 }
50 return info->deviceInfo.deviceUdid;
51 }
52
LnnSetDeviceUdid(NodeInfo * info,const char * udid)53 int32_t LnnSetDeviceUdid(NodeInfo *info, const char *udid)
54 {
55 if (info == NULL || udid == NULL) {
56 return SOFTBUS_INVALID_PARAM;
57 }
58 if (strncpy_s(info->deviceInfo.deviceUdid, UDID_BUF_LEN, udid, strlen(udid)) != EOK) {
59 LNN_LOGE(LNN_LEDGER, "STR COPY ERROR");
60 return SOFTBUS_MEM_ERR;
61 }
62 return SOFTBUS_OK;
63 }
64
LnnGetDeviceUuid(const NodeInfo * info)65 const char *LnnGetDeviceUuid(const NodeInfo *info)
66 {
67 if (info == NULL) {
68 return NULL;
69 }
70 return info->uuid;
71 }
72
LnnSetDiscoveryType(NodeInfo * info,DiscoveryType type)73 int32_t LnnSetDiscoveryType(NodeInfo *info, DiscoveryType type)
74 {
75 if (info == NULL || type >= DISCOVERY_TYPE_COUNT) {
76 LNN_LOGE(LNN_LEDGER, "para error");
77 return SOFTBUS_INVALID_PARAM;
78 }
79 info->discoveryType = (uint32_t)info->discoveryType | (1 << (uint32_t)type);
80 return SOFTBUS_OK;
81 }
82
LnnClearDiscoveryType(NodeInfo * info,DiscoveryType type)83 int32_t LnnClearDiscoveryType(NodeInfo *info, DiscoveryType type)
84 {
85 if (info == NULL || type >= DISCOVERY_TYPE_COUNT) {
86 LNN_LOGE(LNN_LEDGER, "para error");
87 return SOFTBUS_INVALID_PARAM;
88 }
89 info->discoveryType = (uint32_t)info->discoveryType & ~(1 << (uint32_t)type);
90 return SOFTBUS_OK;
91 }
92
LnnIsNodeOnline(const NodeInfo * info)93 bool LnnIsNodeOnline(const NodeInfo *info)
94 {
95 if (info == NULL) {
96 LNN_LOGE(LNN_LEDGER, "para error");
97 return false;
98 }
99 return (info->status == STATUS_ONLINE);
100 }
101
LnnSetNodeConnStatus(NodeInfo * info,ConnectStatus status)102 void LnnSetNodeConnStatus(NodeInfo *info, ConnectStatus status)
103 {
104 if (info == NULL) {
105 LNN_LOGE(LNN_LEDGER, "para error");
106 return;
107 }
108 info->status = status;
109 }
110
LnnGetBtMac(const NodeInfo * info)111 const char *LnnGetBtMac(const NodeInfo *info)
112 {
113 if (info == NULL) {
114 LNN_LOGE(LNN_LEDGER, "para error");
115 return DEFAULT_MAC;
116 }
117 return info->connectInfo.macAddr;
118 }
119
LnnSetBtMac(NodeInfo * info,const char * mac)120 void LnnSetBtMac(NodeInfo *info, const char *mac)
121 {
122 if (info == NULL || mac == NULL) {
123 LNN_LOGE(LNN_LEDGER, "PARA ERROR");
124 return;
125 }
126 if (strncpy_s(info->connectInfo.macAddr, MAC_LEN, mac, strlen(mac)) != EOK) {
127 LNN_LOGE(LNN_LEDGER, "str copy error");
128 }
129 return;
130 }
131
LnnGetBleMac(const NodeInfo * info)132 const char *LnnGetBleMac(const NodeInfo *info)
133 {
134 if (info == NULL) {
135 LNN_LOGE(LNN_LEDGER, "PARA ERROR");
136 return DEFAULT_MAC;
137 }
138 return info->connectInfo.bleMacAddr;
139 }
140
LnnSetBleMac(NodeInfo * info,const char * mac)141 void LnnSetBleMac(NodeInfo *info, const char *mac)
142 {
143 if (info == NULL || mac == NULL) {
144 LNN_LOGE(LNN_LEDGER, "PARA ERROR");
145 return;
146 }
147 if (strcpy_s(info->connectInfo.bleMacAddr, MAC_LEN, mac) != EOK) {
148 LNN_LOGE(LNN_LEDGER, "str copy error");
149 }
150 }
151
LnnGetNetIfName(const NodeInfo * info)152 const char *LnnGetNetIfName(const NodeInfo *info)
153 {
154 if (info == NULL) {
155 LNN_LOGE(LNN_LEDGER, "para error");
156 return DEFAULT_IFNAME;
157 }
158 return info->connectInfo.netIfName;
159 }
160
LnnSetNetIfName(NodeInfo * info,const char * netIfName)161 void LnnSetNetIfName(NodeInfo *info, const char *netIfName)
162 {
163 if (info == NULL || netIfName == NULL) {
164 LNN_LOGE(LNN_LEDGER, "PARA ERROR");
165 return;
166 }
167 if (strncpy_s(info->connectInfo.netIfName, NET_IF_NAME_LEN, netIfName, strlen(netIfName)) != EOK) {
168 LNN_LOGE(LNN_LEDGER, "str copy error");
169 }
170 }
171
LnnGetWiFiIp(const NodeInfo * info)172 const char *LnnGetWiFiIp(const NodeInfo *info)
173 {
174 if (info == NULL) {
175 LNN_LOGE(LNN_LEDGER, "PARA error");
176 return DEFAULT_IP;
177 }
178 return info->connectInfo.deviceIp;
179 }
180
LnnSetWiFiIp(NodeInfo * info,const char * ip)181 void LnnSetWiFiIp(NodeInfo *info, const char *ip)
182 {
183 if (info == NULL || ip == NULL) {
184 LNN_LOGE(LNN_LEDGER, "PARA ERROR");
185 return;
186 }
187 if (strncpy_s(info->connectInfo.deviceIp, sizeof(info->connectInfo.deviceIp), ip, strlen(ip)) != EOK) {
188 LNN_LOGE(LNN_LEDGER, "STR COPY ERROR");
189 }
190 }
191
LnnGetMasterUdid(const NodeInfo * info)192 const char *LnnGetMasterUdid(const NodeInfo *info)
193 {
194 if (info == NULL) {
195 LNN_LOGE(LNN_LEDGER, "PARA ERROR");
196 return NULL;
197 }
198 return info->masterUdid;
199 }
200
LnnSetMasterUdid(NodeInfo * info,const char * udid)201 int32_t LnnSetMasterUdid(NodeInfo *info, const char *udid)
202 {
203 if (info == NULL || udid == NULL) {
204 LNN_LOGE(LNN_LEDGER, "PARA ERROR");
205 return SOFTBUS_INVALID_PARAM;
206 }
207 if (strncpy_s(info->masterUdid, UDID_BUF_LEN, udid, strlen(udid)) != EOK) {
208 LNN_LOGE(LNN_LEDGER, "STR COPY ERROR");
209 return SOFTBUS_STRCPY_ERR;
210 }
211 return SOFTBUS_OK;
212 }
213
LnnGetAuthPort(const NodeInfo * info)214 int32_t LnnGetAuthPort(const NodeInfo *info)
215 {
216 if (info == NULL) {
217 LNN_LOGE(LNN_LEDGER, "para error");
218 return SOFTBUS_INVALID_PARAM;
219 }
220 return info->connectInfo.authPort;
221 }
222
LnnSetAuthPort(NodeInfo * info,int32_t port)223 int32_t LnnSetAuthPort(NodeInfo *info, int32_t port)
224 {
225 if (info == NULL) {
226 LNN_LOGE(LNN_LEDGER, "para error");
227 return SOFTBUS_INVALID_PARAM;
228 }
229 info->connectInfo.authPort = port;
230 return SOFTBUS_OK;
231 }
232
LnnGetSessionPort(const NodeInfo * info)233 int32_t LnnGetSessionPort(const NodeInfo *info)
234 {
235 if (info == NULL) {
236 LNN_LOGE(LNN_LEDGER, "para error");
237 return SOFTBUS_INVALID_PARAM;
238 }
239 return info->connectInfo.sessionPort;
240 }
241
LnnSetSessionPort(NodeInfo * info,int32_t port)242 int32_t LnnSetSessionPort(NodeInfo *info, int32_t port)
243 {
244 if (info == NULL) {
245 LNN_LOGE(LNN_LEDGER, "para error");
246 return SOFTBUS_INVALID_PARAM;
247 }
248 info->connectInfo.sessionPort = port;
249 return SOFTBUS_OK;
250 }
251
LnnGetProxyPort(const NodeInfo * info)252 int32_t LnnGetProxyPort(const NodeInfo *info)
253 {
254 if (info == NULL) {
255 LNN_LOGE(LNN_LEDGER, "para error");
256 return SOFTBUS_INVALID_PARAM;
257 }
258 return info->connectInfo.proxyPort;
259 }
260
LnnSetProxyPort(NodeInfo * info,int32_t port)261 int32_t LnnSetProxyPort(NodeInfo *info, int32_t port)
262 {
263 if (info == NULL) {
264 LNN_LOGE(LNN_LEDGER, "para error");
265 return SOFTBUS_INVALID_PARAM;
266 }
267 info->connectInfo.proxyPort = port;
268 return SOFTBUS_OK;
269 }
270
LnnSetP2pRole(NodeInfo * info,int32_t p2pRole)271 int32_t LnnSetP2pRole(NodeInfo *info, int32_t p2pRole)
272 {
273 if (info == NULL) {
274 LNN_LOGE(LNN_LEDGER, "invalid param");
275 return SOFTBUS_INVALID_PARAM;
276 }
277 info->p2pInfo.p2pRole = p2pRole;
278 return SOFTBUS_OK;
279 }
280
LnnGetP2pRole(const NodeInfo * info)281 int32_t LnnGetP2pRole(const NodeInfo *info)
282 {
283 if (info == NULL) {
284 LNN_LOGE(LNN_LEDGER, "invalid param");
285 return 0;
286 }
287 return info->p2pInfo.p2pRole;
288 }
289
LnnSetWifiCfg(NodeInfo * info,const char * wifiCfg)290 int32_t LnnSetWifiCfg(NodeInfo *info, const char *wifiCfg)
291 {
292 if (info == NULL || wifiCfg == NULL) {
293 LNN_LOGE(LNN_LEDGER, "invalid param");
294 return SOFTBUS_INVALID_PARAM;
295 }
296 if (strcpy_s(info->p2pInfo.wifiCfg, sizeof(info->p2pInfo.wifiCfg), wifiCfg) != EOK) {
297 LNN_LOGE(LNN_LEDGER, "strcpy_s wifi cfg err");
298 return SOFTBUS_MEM_ERR;
299 }
300 return SOFTBUS_OK;
301 }
302
LnnGetWifiCfg(const NodeInfo * info)303 const char *LnnGetWifiCfg(const NodeInfo *info)
304 {
305 if (info == NULL) {
306 LNN_LOGE(LNN_LEDGER, "invalid param");
307 return NULL;
308 }
309 return info->p2pInfo.wifiCfg;
310 }
311
LnnSetChanList5g(NodeInfo * info,const char * chanList5g)312 int32_t LnnSetChanList5g(NodeInfo *info, const char *chanList5g)
313 {
314 if (info == NULL || chanList5g == NULL) {
315 LNN_LOGE(LNN_LEDGER, "invalid param");
316 return SOFTBUS_INVALID_PARAM;
317 }
318 if (strcpy_s(info->p2pInfo.chanList5g, sizeof(info->p2pInfo.chanList5g), chanList5g) != EOK) {
319 LNN_LOGE(LNN_LEDGER, "strcpy_s chan list 5g err");
320 return SOFTBUS_MEM_ERR;
321 }
322 return SOFTBUS_OK;
323 }
324
LnnGetChanList5g(const NodeInfo * info)325 const char *LnnGetChanList5g(const NodeInfo *info)
326 {
327 if (info == NULL) {
328 LNN_LOGE(LNN_LEDGER, "invalid param");
329 return NULL;
330 }
331 return info->p2pInfo.chanList5g;
332 }
333
LnnSetStaFrequency(NodeInfo * info,int32_t staFrequency)334 int32_t LnnSetStaFrequency(NodeInfo *info, int32_t staFrequency)
335 {
336 if (info == NULL) {
337 LNN_LOGE(LNN_LEDGER, "invalid param");
338 return SOFTBUS_INVALID_PARAM;
339 }
340 info->p2pInfo.staFrequency = staFrequency;
341 return SOFTBUS_OK;
342 }
343
LnnGetStaFrequency(const NodeInfo * info)344 int32_t LnnGetStaFrequency(const NodeInfo *info)
345 {
346 if (info == NULL) {
347 LNN_LOGE(LNN_LEDGER, "invalid param");
348 return 0;
349 }
350 return info->p2pInfo.staFrequency;
351 }
352
LnnSetP2pMac(NodeInfo * info,const char * p2pMac)353 int32_t LnnSetP2pMac(NodeInfo *info, const char *p2pMac)
354 {
355 if (info == NULL || p2pMac == NULL) {
356 LNN_LOGE(LNN_LEDGER, "invalid param");
357 return SOFTBUS_INVALID_PARAM;
358 }
359 if (strcpy_s(info->p2pInfo.p2pMac, sizeof(info->p2pInfo.p2pMac), p2pMac) != EOK) {
360 LNN_LOGE(LNN_LEDGER, "strcpy_s p2p mac err");
361 return SOFTBUS_MEM_ERR;
362 }
363 return SOFTBUS_OK;
364 }
365
LnnGetP2pMac(const NodeInfo * info)366 const char *LnnGetP2pMac(const NodeInfo *info)
367 {
368 if (info == NULL) {
369 LNN_LOGE(LNN_LEDGER, "invalid param");
370 return NULL;
371 }
372 return info->p2pInfo.p2pMac;
373 }
374
LnnGetWifiDirectAddr(const NodeInfo * info)375 const char *LnnGetWifiDirectAddr(const NodeInfo *info)
376 {
377 if (info == NULL) {
378 LNN_LOGE(LNN_LEDGER, "invalid param");
379 return NULL;
380 }
381 return info->wifiDirectAddr;
382 }
383
LnnSetDataChangeFlag(NodeInfo * info,uint16_t dataChangeFlag)384 int32_t LnnSetDataChangeFlag(NodeInfo *info, uint16_t dataChangeFlag)
385 {
386 if (info == NULL) {
387 LNN_LOGE(LNN_LEDGER, "invalid param");
388 return SOFTBUS_INVALID_PARAM;
389 }
390 info->dataChangeFlag = dataChangeFlag;
391 return SOFTBUS_OK;
392 }
393
LnnGetDataChangeFlag(const NodeInfo * info)394 uint16_t LnnGetDataChangeFlag(const NodeInfo *info)
395 {
396 if (info == NULL) {
397 LNN_LOGE(LNN_LEDGER, "invalid param");
398 return 0;
399 }
400 return info->dataChangeFlag;
401 }
402
LnnGetDataDynamicLevel(const NodeInfo * info)403 uint16_t LnnGetDataDynamicLevel(const NodeInfo *info)
404 {
405 if (info == NULL) {
406 LNN_LOGE(LNN_LEDGER, "invalid param");
407 return DYNAMIC_LEVEL_INVALID;
408 }
409 return info->dataDynamicLevel;
410 }
411
LnnSetDataDynamicLevel(NodeInfo * info,uint16_t dataDynamicLevel)412 int32_t LnnSetDataDynamicLevel(NodeInfo *info, uint16_t dataDynamicLevel)
413 {
414 if (info == NULL) {
415 LNN_LOGE(LNN_LEDGER, "invalid param");
416 return SOFTBUS_INVALID_PARAM;
417 }
418 info->dataDynamicLevel = dataDynamicLevel;
419 return SOFTBUS_OK;
420 }
421
LnnGetDataStaticLevel(const NodeInfo * info)422 uint16_t LnnGetDataStaticLevel(const NodeInfo *info)
423 {
424 if (info == NULL) {
425 LNN_LOGE(LNN_LEDGER, "invalid param");
426 return STATIC_LEVEL_INVALID;
427 }
428 return info->dataStaticLevel;
429 }
430
LnnSetDataStaticLevel(NodeInfo * info,uint16_t dataStaticLevel)431 int32_t LnnSetDataStaticLevel(NodeInfo *info, uint16_t dataStaticLevel)
432 {
433 if (info == NULL) {
434 LNN_LOGE(LNN_LEDGER, "invalid param");
435 return SOFTBUS_INVALID_PARAM;
436 }
437 info->dataStaticLevel = dataStaticLevel;
438 return SOFTBUS_OK;
439 }
440
LnnGetDataSwitchLevel(const NodeInfo * info)441 uint32_t LnnGetDataSwitchLevel(const NodeInfo *info)
442 {
443 if (info == NULL) {
444 LNN_LOGE(LNN_LEDGER, "invalid param");
445 return SWITCH_LEVEL_INVALID;
446 }
447 return info->dataSwitchLevel;
448 }
449
LnnSetDataSwitchLevel(NodeInfo * info,uint32_t dataSwitchLevel)450 int32_t LnnSetDataSwitchLevel(NodeInfo *info, uint32_t dataSwitchLevel)
451 {
452 if (info == NULL) {
453 LNN_LOGE(LNN_LEDGER, "invalid param");
454 return SOFTBUS_INVALID_PARAM;
455 }
456 info->dataSwitchLevel = dataSwitchLevel;
457 return SOFTBUS_OK;
458 }
459
LnnGetDataSwitchLength(const NodeInfo * info)460 uint16_t LnnGetDataSwitchLength(const NodeInfo *info)
461 {
462 if (info == NULL) {
463 LNN_LOGE(LNN_LEDGER, "invalid param");
464 return SWTICH_LENGTH_INVALID;
465 }
466 return info->dataSwitchLength;
467 }
468
LnnSetDataSwitchLength(NodeInfo * info,uint16_t dataSwitchLength)469 int32_t LnnSetDataSwitchLength(NodeInfo *info, uint16_t dataSwitchLength)
470 {
471 if (info == NULL) {
472 LNN_LOGE(LNN_LEDGER, "invalid param");
473 return SOFTBUS_INVALID_PARAM;
474 }
475 info->dataSwitchLength = dataSwitchLength;
476 return SOFTBUS_OK;
477 }
478
LnnSetP2pGoMac(NodeInfo * info,const char * goMac)479 int32_t LnnSetP2pGoMac(NodeInfo *info, const char *goMac)
480 {
481 if (info == NULL || goMac == NULL) {
482 LNN_LOGE(LNN_LEDGER, "invalid param");
483 return SOFTBUS_INVALID_PARAM;
484 }
485
486 if (strcpy_s(info->p2pInfo.goMac, sizeof(info->p2pInfo.goMac), goMac) != EOK) {
487 LNN_LOGE(LNN_LEDGER, "strcpy_s go mac err");
488 return SOFTBUS_MEM_ERR;
489 }
490 return SOFTBUS_OK;
491 }
492
LnnGetP2pGoMac(const NodeInfo * info)493 const char *LnnGetP2pGoMac(const NodeInfo *info)
494 {
495 if (info == NULL) {
496 LNN_LOGE(LNN_LEDGER, "invalid param");
497 return NULL;
498 }
499 return info->p2pInfo.goMac;
500 }
501
LnnGetSupportedProtocols(const NodeInfo * info)502 uint64_t LnnGetSupportedProtocols(const NodeInfo *info)
503 {
504 if (info == NULL) {
505 LNN_LOGE(LNN_LEDGER, "para error");
506 return 0;
507 }
508 return info->supportedProtocols;
509 }
510
LnnSetSupportedProtocols(NodeInfo * info,uint64_t protocols)511 int32_t LnnSetSupportedProtocols(NodeInfo *info, uint64_t protocols)
512 {
513 if (info == NULL) {
514 LNN_LOGE(LNN_LEDGER, "para error");
515 return SOFTBUS_INVALID_PARAM;
516 }
517 info->supportedProtocols = protocols;
518 return SOFTBUS_OK;
519 }
520
LnnSetWifiDirectAddr(NodeInfo * info,const char * wifiDirectAddr)521 int32_t LnnSetWifiDirectAddr(NodeInfo *info, const char *wifiDirectAddr)
522 {
523 if (info == NULL || wifiDirectAddr == NULL) {
524 LNN_LOGE(LNN_LEDGER, "invalid param");
525 return SOFTBUS_INVALID_PARAM;
526 }
527 if (strcpy_s(info->wifiDirectAddr, sizeof(info->wifiDirectAddr), wifiDirectAddr) != EOK) {
528 LNN_LOGE(LNN_LEDGER, "strcpy_s wifidirect addr err");
529 return SOFTBUS_MEM_ERR;
530 }
531 return SOFTBUS_OK;
532 }
533
LnnSetStaticCapability(NodeInfo * info,uint8_t * cap,uint32_t len)534 int32_t LnnSetStaticCapability(NodeInfo *info, uint8_t *cap, uint32_t len)
535 {
536 if (info == NULL || cap == NULL) {
537 LNN_LOGE(LNN_LEDGER, "param is null");
538 return SOFTBUS_INVALID_PARAM;
539 }
540 if (len <= 0 || len > STATIC_CAP_LEN) {
541 LNN_LOGE(LNN_LEDGER, "length error");
542 return SOFTBUS_INVALID_PARAM;
543 }
544 if (memcpy_s(info->staticCapability, STATIC_CAP_LEN, cap, len) != EOK) {
545 LNN_LOGE(LNN_LEDGER, "memcpy static cap err");
546 return SOFTBUS_MEM_ERR;
547 }
548 return SOFTBUS_OK;
549 }
550
LnnGetStaticCapability(NodeInfo * info,uint8_t * cap,uint32_t len)551 int32_t LnnGetStaticCapability(NodeInfo *info, uint8_t *cap, uint32_t len)
552 {
553 if (info == NULL || cap == NULL) {
554 LNN_LOGE(LNN_LEDGER, "param err");
555 return SOFTBUS_INVALID_PARAM;
556 }
557 if (len < 0 || len > STATIC_CAP_LEN) {
558 LNN_LOGE(LNN_LEDGER, "param err");
559 return SOFTBUS_INVALID_PARAM;
560 }
561 if (memcpy_s(cap, len, info->staticCapability, info->staticCapLen) != EOK) {
562 LNN_LOGE(LNN_LEDGER, "memcpy static cap err");
563 return SOFTBUS_MEM_ERR;
564 }
565 return SOFTBUS_OK;
566 }
567
LnnSetUserIdCheckSum(NodeInfo * info,uint8_t * data,uint32_t len)568 int32_t LnnSetUserIdCheckSum(NodeInfo *info, uint8_t *data, uint32_t len)
569 {
570 if (info == NULL || data == NULL) {
571 LNN_LOGE(LNN_LEDGER, "param is null");
572 return SOFTBUS_INVALID_PARAM;
573 }
574 if (len != USERID_CHECKSUM_LEN) {
575 LNN_LOGE(LNN_LEDGER, "length error");
576 return SOFTBUS_INVALID_PARAM;
577 }
578 if (memcpy_s(info->userIdCheckSum, USERID_CHECKSUM_LEN, data, len) != EOK) {
579 LNN_LOGE(LNN_LEDGER, "memcpy useridchecksum err");
580 return SOFTBUS_MEM_ERR;
581 }
582 return SOFTBUS_OK;
583 }
584
LnnGetUserIdCheckSum(NodeInfo * info,uint8_t * data,uint32_t len)585 int32_t LnnGetUserIdCheckSum(NodeInfo *info, uint8_t *data, uint32_t len)
586 {
587 if (info == NULL || data == NULL) {
588 LNN_LOGE(LNN_LEDGER, "param err");
589 return SOFTBUS_INVALID_PARAM;
590 }
591 if (len != USERID_CHECKSUM_LEN) {
592 LNN_LOGE(LNN_LEDGER, "param err");
593 return SOFTBUS_INVALID_PARAM;
594 }
595 if (memcpy_s(data, len, info->userIdCheckSum, len) != EOK) {
596 LNN_LOGE(LNN_LEDGER, "memcpy useridchecksum err");
597 return SOFTBUS_MEM_ERR;
598 }
599 return SOFTBUS_OK;
600 }
601
LnnSetPtk(NodeInfo * info,const char * remotePtk)602 int32_t LnnSetPtk(NodeInfo *info, const char *remotePtk)
603 {
604 if (info == NULL || remotePtk == NULL) {
605 LNN_LOGE(LNN_LEDGER, "invalid param");
606 return SOFTBUS_INVALID_PARAM;
607 }
608 if (memcpy_s(info->remotePtk, PTK_DEFAULT_LEN, remotePtk, PTK_DEFAULT_LEN) != EOK) {
609 LNN_LOGE(LNN_LEDGER, "memcpy ptk err");
610 return SOFTBUS_MEM_ERR;
611 }
612 return SOFTBUS_OK;
613 }
614
LnnDumpRemotePtk(const char * oldPtk,const char * newPtk,const char * log)615 void LnnDumpRemotePtk(const char *oldPtk, const char *newPtk, const char *log)
616 {
617 char ptkStr[PTK_STR_LEN] = { 0 };
618 char oldPtkStr[PTK_STR_LEN] = { 0 };
619
620 if (log == NULL) {
621 return;
622 }
623 if (newPtk != NULL &&
624 ConvertBytesToUpperCaseHexString(ptkStr, PTK_STR_LEN, (unsigned char *)newPtk, PTK_DEFAULT_LEN) != SOFTBUS_OK) {
625 LNN_LOGE(LNN_LEDGER, "convert new ptk fail");
626 }
627 if (oldPtk != NULL &&
628 ConvertBytesToUpperCaseHexString(oldPtkStr, PTK_STR_LEN, (unsigned char *)oldPtk, PTK_DEFAULT_LEN) !=
629 SOFTBUS_OK) {
630 LNN_LOGE(LNN_LEDGER, "convert old ptk fail");
631 }
632 char *anonyPtk = NULL;
633 char *anonyOldPtk = NULL;
634 Anonymize(ptkStr, &anonyPtk);
635 Anonymize(oldPtkStr, &anonyOldPtk);
636 LNN_LOGI(LNN_LEDGER, "log=%{public}s, dump newPtk=%{public}s, oldPtk=%{public}s",
637 log, AnonymizeWrapper(anonyPtk), AnonymizeWrapper(anonyOldPtk));
638 AnonymizeFree(anonyPtk);
639 AnonymizeFree(anonyOldPtk);
640 (void)memset_s(ptkStr, PTK_STR_LEN, 0, PTK_STR_LEN);
641 (void)memset_s(oldPtkStr, PTK_STR_LEN, 0, PTK_STR_LEN);
642 }
643
LnnDumpNodeInfo(const NodeInfo * deviceInfo,const char * log)644 void LnnDumpNodeInfo(const NodeInfo *deviceInfo, const char *log)
645 {
646 char *anonyNetworkId = NULL;
647 char *anonyUdid = NULL;
648 char *anonyDeviceName = NULL;
649 char *anonyBtMac = NULL;
650 Anonymize(deviceInfo->networkId, &anonyNetworkId);
651 Anonymize(deviceInfo->deviceInfo.deviceUdid, &anonyUdid);
652 Anonymize(deviceInfo->deviceInfo.deviceName, &anonyDeviceName);
653 Anonymize(deviceInfo->connectInfo.macAddr, &anonyBtMac);
654 LNN_LOGI(LNN_LEDGER, "log=%{public}s, stateVersion=%{public}d, networkId=%{public}s, udid=%{public}s, "
655 "deviceName=%{public}s, btMac=%{public}s, networkIdTimestamp=%{public}" PRId64, log, deviceInfo->stateVersion,
656 AnonymizeWrapper(anonyNetworkId), AnonymizeWrapper(anonyUdid), AnonymizeWrapper(anonyDeviceName),
657 AnonymizeWrapper(anonyBtMac), deviceInfo->networkIdTimestamp);
658 AnonymizeFree(anonyNetworkId);
659 AnonymizeFree(anonyUdid);
660 AnonymizeFree(anonyDeviceName);
661 AnonymizeFree(anonyBtMac);
662 }
663
LnnSetScreenStatus(NodeInfo * info,bool isScreenOn)664 int32_t LnnSetScreenStatus(NodeInfo *info, bool isScreenOn)
665 {
666 if (info == NULL) {
667 LNN_LOGE(LNN_LEDGER, "invalid param");
668 return SOFTBUS_INVALID_PARAM;
669 }
670 info->isScreenOn = isScreenOn;
671 LNN_LOGI(LNN_LEDGER, "set local screen status to %{public}s", isScreenOn ? "on" : "off");
672 return SOFTBUS_OK;
673 }