1 /*
2  * Copyright (c) 2023 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 LNN_DEVICE_INFO_RECOVERY_H
17 #define LNN_DEVICE_INFO_RECOVERY_H
18 
19 #include "cJSON.h"
20 #include <stdint.h>
21 #include "lnn_node_info.h"
22 #include "lnn_map.h"
23 #include "softbus_adapter_crypto.h"
24 #include "softbus_adapter_json.h"
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 #define DEVICE_INFO_P2P_MAC_ADDR "P2P_MAC_ADDR"
31 #define DEVICE_INFO_DEVICE_NAME "DEVICE_NAME"
32 #define DEVICE_INFO_SETTINGS_NICK_NAME "SETTINGS_NICK_NAME"
33 #define DEVICE_INFO_UNIFIED_DEFAULT_DEVICE_NAME "UNIFIED_DEFAULT_DEVICE_NAME"
34 #define DEVICE_INFO_UNIFIED_DEVICE_NAME "UNIFIED_DEVICE_NAME"
35 #define DEVICE_INFO_DEVICE_TYPE "DEVICE_TYPE"
36 #define DEVICE_INFO_VERSION_TYPE "VERSION_TYPE"
37 #define DEVICE_INFO_SW_VERSION "SW_VERSION"
38 #define DEVICE_INFO_PKG_VERSION "PKG_VERSION"
39 #define DEVICE_INFO_DEVICE_UDID "DEVICE_UDID"
40 #define DEVICE_INFO_DEVICE_UUID "DEVICE_UUID"
41 #define DEVICE_INFO_OS_TYPE "OS_TYPE"
42 #define DEVICE_INFO_OS_VERSION "OS_VERSION"
43 #define DEVICE_INFO_DEVICE_VERSION "DEVICE_VERSION"
44 #define DEVICE_INFO_WIFI_VERSION "WIFI_VERSION"
45 #define DEVICE_INFO_BLE_VERSION "BLE_VERSION"
46 #define DEVICE_INFO_CONNECT_INFO "CONNECT_INFO"
47 #define DEVICE_INFO_BT_MAC "BT_MAC"
48 #define DEVICE_INFO_BR_MAC_ADDR "BR_MAC_ADDR"
49 #define DEVICE_INFO_HML_MAC "HML_MAC"
50 #define DEVICE_INFO_REMAIN_POWER "REMAIN_POWER"
51 #define DEVICE_INFO_IS_CHARGING "IS_CHARGING"
52 #define DEVICE_INFO_IS_SCREENON "IS_SCREENON"
53 #define DEVICE_INFO_IP_MAC "IP_MAC"
54 #define DEVICE_INFO_P2P_ROLE "P2P_ROLE"
55 #define DEVICE_INFO_NETWORK_ID "NETWORK_ID"
56 #define DEVICE_INFO_NODE_WEIGHT "NODE_WEIGHT"
57 #define DEVICE_INFO_ACCOUNT_ID "ACCOUNT_ID"
58 #define DEVICE_INFO_DISTRIBUTED_SWITCH "DISTRIBUTED_SWITCH"
59 #define DEVICE_INFO_TRANSPORT_PROTOCOL "TRANSPORT_PROTOCOL"
60 #define DEVICE_INFO_TRANS_FLAGS "TRANS_FLAGS"
61 #define DEVICE_INFO_BLE_P2P "BLE_P2P"
62 #define DEVICE_INFO_BLE_TIMESTAMP "BLE_TIMESTAMP"
63 #define DEVICE_INFO_WIFI_BUFF_SIZE "WIFI_BUFF_SIZE"
64 #define DEVICE_INFO_BR_BUFF_SIZE "BR_BUFF_SIZE"
65 #define DEVICE_INFO_FEATURE "FEATURE"
66 #define DEVICE_INFO_CONN_SUB_FEATURE "CONN_SUB_FEATURE"
67 #define DEVICE_INFO_META_INFO_JSON_TAG "MetaNodeInfoOfEar"
68 #define DEVICE_INFO_CONN_CAP "CONN_CAP"
69 #define DEVICE_INFO_NEW_CONN_CAP "NEW_CONN_CAP"
70 #define DEVICE_INFO_AUTH_CAP "AUTH_CAP"
71 #define DEVICE_INFO_HB_CAP "HB_CAP"
72 #define DEVICE_INFO_EXTDATA "EXTDATA"
73 #define DEVICE_INFO_STATE_VERSION "STATE_VERSION"
74 #define DEVICE_INFO_LOCAL_STATE_VERSION "LOCAL_STATE_VERSION"
75 #define DEVICE_INFO_STATE_VERSION_CHANGE_REASON "STATE_VERSION_CHANGE_REASON"
76 #define DEVICE_INFO_BD_KEY "BD_KEY"
77 #define DEVICE_INFO_BDKEY_TIME "BDKEY_TIME"
78 #define DEVICE_INFO_IV "IV"
79 #define DEVICE_INFO_IV_TIME "IV_TIME"
80 #define DEVICE_INFO_NETWORK_ID_TIMESTAMP "NETWORK_ID_TIMESTAMP"
81 #define DEVICE_INFO_DEVICE_IRK "IRK"
82 #define DEVICE_INFO_DEVICE_PUB_MAC "PUB_MAC"
83 #define DEVICE_INFO_BROADCAST_CIPHER_KEY "BROADCAST_CIPHER_KEY"
84 #define DEVICE_INFO_BROADCAST_CIPHER_IV "BROADCAST_CIPHER_IV"
85 #define DEVICE_INFO_DEVICE_SECURITY_LEVEL "DEVICE_SECURITY_LEVEL"
86 #define DEVICE_INFO_PTK "PTK"
87 #define DEVICE_INFO_STATIC_CAP "STATIC_CAP"
88 #define DEVICE_INFO_STATIC_CAP_LEN "STATIC_CAP_LEN"
89 #define DEVICE_INFO_JSON_BROADCAST_KEY_TABLE "JSON_KEY_TABLE_MIAN"
90 #define DEVICE_INFO_JSON_KEY_TOTAL_LIFE "JSON_KEY_TOTAL_LIFE"
91 #define DEVICE_INFO_JSON_KEY_TIMESTAMP_BEGIN "JSON_KEY_TIMESTAMP_BEGIN"
92 #define DEVICE_INFO_JSON_KEY_CURRENT_INDEX "JSON_KEY_CURRENT_INDEX"
93 #define DEVICE_INFO_TIMESTAMP "TIMESTAMP"
94 #define DEVICE_INFO_LAST_AUTH_SEQ "LAST_AUTH_SEQ"
95 #define IS_SUPPORT_IPV6 "IS_SUPPORT_IPV6"
96 #define IS_AUTH_EXCHANGE_UDID "IS_AUTH_EXCHANGE_UDID"
97 
98 int32_t LnnLoadLocalDeviceInfo(void);
99 int32_t LnnLoadRemoteDeviceInfo(void);
100 int32_t LnnSaveLocalDeviceInfo(const NodeInfo *deviceInfo);
101 int32_t LnnGetLocalDevInfo(NodeInfo *deviceInfo);
102 int32_t LnnGetAllRemoteDevInfo(NodeInfo **info, int32_t *nums);
103 int32_t LnnSaveRemoteDeviceInfo(const NodeInfo *deviceInfo);
104 int32_t LnnUpdateRemoteDeviceInfo(const NodeInfo *deviceInfo);
105 int32_t LnnRetrieveDeviceInfo(const char *udid, NodeInfo *deviceInfo);
106 int32_t LnnRetrieveDeviceInfoByNetworkId(const char *networkId, NodeInfo *info);
107 void LnnDeleteDeviceInfo(const char *udid);
108 void ClearDeviceInfo(void);
109 int32_t LnnGetUdidByBrMac(const char *brMac, char *udid, uint32_t udidLen);
110 int32_t LnnGetLocalCacheNodeInfo(NodeInfo *info);
111 int32_t LnnLoadLocalDeviceAccountIdInfo(void);
112 int32_t LnnGetAccountIdFromLocalCache(int64_t *buf);
113 int32_t LnnPackCloudSyncDeviceInfo(cJSON *json, const NodeInfo *cloudSyncInfo);
114 int32_t LnnUnPackCloudSyncDeviceInfo(cJSON *json, NodeInfo *cloudSyncInfo);
115 void LnnUpdateAuthExchangeUdid(void);
116 void LnnClearAuthExchangeUdid(const char *networkId);
117 #ifdef __cplusplus
118 }
119 #endif
120 
121 #endif /* LNN_DEVICE_INFO_RECOVERY_H */
122