From d49e1c7813b25c2bd9701b7bb70dc2add4505030 Mon Sep 17 00:00:00 2001
From: 562935844@qq.com
Date: 星期五, 15 九月 2023 17:36:31 +0800
Subject: [PATCH] 更新密钥增加判空
---
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java | 60 +++++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 37 insertions(+), 23 deletions(-)
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java
index a227a2a..15bc3bc 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java
@@ -15,6 +15,7 @@
import com.hdl.sdk.common.utils.LogUtils;
import com.hdl.sdk.common.utils.SPUtils;
import com.hdl.sdk.common.utils.gson.GsonConvert;
+import com.hdl.sdk.connect.HDLLink;
import com.hdl.sdk.connect.bean.LinkResponse;
import com.hdl.sdk.connect.bean.request.AuthenticateRequest;
import com.hdl.sdk.connect.bean.response.DeviceDeleteResponse;
@@ -27,8 +28,9 @@
import com.hdl.sdk.socket.codec.ByteToMessageDecoder;
import java.util.ArrayList;
-import java.util.Base64;
import java.util.List;
+
+import android.util.Base64;
import kotlin.ParameterName;
@@ -170,6 +172,7 @@
}
LinkResponse response = new LinkResponse();
response.setSource_ipAddress(ipaddress);
+ Log.d("panlili", "----->source_ipAddress= " + ipaddress);
response.setTopic(topic);
if (HDLLinkConfig.getInstance().ifNeedEncrypt(response.getTopic())) {
//闇�瑕佽В瀵�
@@ -181,7 +184,7 @@
//涔嬪墠鐨勭増鏈繖鍧楁槸鏄庢枃鐨�
if (!topic.contains("heartbeat_reply")) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
- LogUtils.e("瑙e瘑澶辫触锛屾暟鎹唴瀹规槸锛歕r\n" + Base64.getEncoder().encodeToString(body));
+ LogUtils.e("瑙e瘑澶辫触锛屾暟鎹唴瀹规槸锛歕r\n" + Base64.encodeToString(body, Base64.NO_WRAP));
else {
LogUtils.e("瑙e瘑澶辫触锛屾暟鎹唴瀹规槸锛歕r\n" + new String(body, "utf-8"));
}
@@ -205,27 +208,30 @@
HDLAuthSocket.getInstance().UploadGatewayInfo(new HDLLinkCallBack() {
@Override
public void onSuccess(String msg) {
- LogUtils.i("UploadGatewayInfo onSucceed");
+// LogUtils.i("UploadGatewayInfo onSucceed");
}
@Override
public void onError(HDLLinkException e) {
- LogUtils.i("UploadGatewayInfo onError");
+// LogUtils.i("UploadGatewayInfo onError");
}
});
- } else if (response.getTopic().equals(updateLocalSecret)) {
+ } else if (response.getTopic().equals(updateLocalSecret) || response.getTopic().equals(TopicConstant.LINK_BROADCAST)) {
try {
DeviceInfoResponse deviceInfoResponse = GsonConvert.getGson().fromJson(response.getData(), new TypeToken<DeviceInfoResponse>() {
}.getType());
- if (!TextUtils.isEmpty(deviceInfoResponse.getObjects().getLocalSecret())) {
- byte[] baseBytes = Base64.getDecoder().decode(deviceInfoResponse.getObjects().getLocalSecret());
- String mackey = "";
- if (!TextUtils.isEmpty(SPUtils.getString("auth_mackey_key", ""))) {
- mackey = SPUtils.getString("auth_mackey_key", "");
- byte[] bodyBytes = AesUtil.aesDecrypt(baseBytes, mackey.substring(mackey.length() - 16));
- String localSecret = new String(bodyBytes, "utf-8");
- HDLLinkConfig.getInstance().setLocalSecret(localSecret);
+ if (deviceInfoResponse != null && deviceInfoResponse.getObjects() != null) {
+ if (!TextUtils.isEmpty(deviceInfoResponse.getObjects().getLocalSecret())) {
+ byte[] baseBytes = Base64.decode(deviceInfoResponse.getObjects().getLocalSecret(), Base64.NO_WRAP);
+ String mackey = "";
+ if (!TextUtils.isEmpty(SPUtils.getString("auth_mackey_key", ""))) {
+ mackey = SPUtils.getString("auth_mackey_key", "");
+ byte[] bodyBytes = AesUtil.aesDecrypt(baseBytes, mackey.substring(mackey.length() - 16));
+ String localSecret = new String(bodyBytes, "utf-8");
+ Log.d("panlili", "鏇存柊瀵嗛挜----->localSecret= " + localSecret);
+ HDLLinkConfig.getInstance().setLocalSecret(localSecret);
+ }
}
}
} catch (Exception e) {
@@ -235,17 +241,25 @@
try {
DeviceDeleteResponse deviceDeleteResponse = GsonConvert.getGson().fromJson(response.getData(), new TypeToken<DeviceDeleteResponse>() {
}.getType());
- HDLSocket.getInstance().deleteNetwork(deviceDeleteResponse.getObjects().get(0).getOID(), new HDLLinkCallBack() {
- @Override
- public void onSuccess(String msg) {
- LogUtils.i("deleteNetwork onSucceed");
- }
+ if (deviceDeleteResponse != null && deviceDeleteResponse.getObjects() != null) {
+ HDLSocket.getInstance().deleteNetwork(deviceDeleteResponse.getObjects().get(0).getOID(), new HDLLinkCallBack() {
+ @Override
+ public void onSuccess(String msg) {
+ LogUtils.i("deleteNetwork onSucceed");
+ if (HDLLink.getInstance().listener != null) {
+ HDLLink.getInstance().listener.onSuccess(msg);
+ }
+ }
- @Override
- public void onError(HDLLinkException e) {
- LogUtils.i("deleteNetwork onError");
- }
- });
+ @Override
+ public void onError(HDLLinkException e) {
+ LogUtils.i("deleteNetwork onError");
+ if (HDLLink.getInstance().listener != null) {
+ HDLLink.getInstance().listener.onFailure();
+ }
+ }
+ });
+ }
} catch (Exception e) {
LogUtils.i("LinkMessageDecoder.java:deleteNetwork----->e= " + e.getMessage());
}
--
Gitblit v1.8.0