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