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