HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
@@ -16,7 +16,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.listener.OnItemClickListener; import com.hdl.sdk.common.config.AuthenticateConfig; import com.hdl.sdk.connect.config.HDLLinkConfig; import com.hdl.sdk.connect.socket.HDLAuthSocket; import com.hdl.sdk.connect.socket.HDLSocket; import com.hdl.sdk.connect.bean.DeviceControlRequest; @@ -46,8 +46,8 @@ tv = findViewById(R.id.state_tv); rv = findViewById(R.id.rv); rv.setLayoutManager(new LinearLayoutManager(this)); AuthenticateConfig.getInstance().setLocalEncrypt(true); AuthenticateConfig.getInstance().setLocalSecret("5648d9b9cafd30dd"); HDLLinkConfig.getInstance().setLocalEncrypt(true); HDLLinkConfig.getInstance().setLocalSecret("5648d9b9cafd30dd"); ActivityResultLauncher<String[]> launcher = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback<Map<String, Boolean>>() { @Override HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
@@ -1,6 +1,6 @@ package com.hdl.sdk.connect; import com.hdl.sdk.common.config.AuthenticateConfig; import com.hdl.sdk.connect.config.HDLLinkConfig; import com.hdl.sdk.common.event.EventDispatcher; import com.hdl.sdk.common.event.EventListener; import com.hdl.sdk.connect.bean.AuthenticateRequest; @@ -53,7 +53,7 @@ * @return */ public boolean checkIfCertified(){ return AuthenticateConfig.getInstance().checkIfCertified(); return HDLLinkConfig.getInstance().checkIfCertified(); } /** HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkRequest.java
@@ -4,13 +4,9 @@ import androidx.annotation.NonNull; import com.hdl.sdk.common.config.AuthenticateConfig; import com.hdl.sdk.connect.config.HDLLinkConfig; import com.hdl.sdk.common.utils.ByteUtils; import com.hdl.sdk.connect.utils.AESUtils; import com.hdl.sdk.connect.utils.AesUtil; import java.io.UnsupportedEncodingException; //import com.hdl.sdk.connect.utils.AesUtil; /** * Created by Tong on 2021/9/29. @@ -86,9 +82,9 @@ public byte[] getSendBytes() { try { //判断是否需要加密 if (AuthenticateConfig.getInstance().ifNeedEncrypt(topic)) { if (HDLLinkConfig.getInstance().ifNeedEncrypt(topic)) { //需要加密 byte[] dataBytes = AesUtil.aesEncrypt(ByteUtils.stringToBytes(data), AuthenticateConfig.getInstance().getLocalSecret()); byte[] dataBytes = AesUtil.aesEncrypt(ByteUtils.stringToBytes(data), HDLLinkConfig.getInstance().getLocalSecret()); // byte[] dataBytes = AESUtils.encryptAES(stringToBytes(data), AuthenticateConfig.getInstance().getLocalSecret()); String headString = "Topic:" + getTopic() + "\r\n" + "Length:" + dataBytes.length + "\r\n" + "\r\n"; HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/config/HDLLinkConfig.java
File was renamed from HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/config/AuthenticateConfig.java @@ -1,16 +1,17 @@ package com.hdl.sdk.common.config; package com.hdl.sdk.connect.config; import android.text.TextUtils; import com.hdl.sdk.common.config.TopicConstant; import com.hdl.sdk.common.utils.SPUtils; /** * Created by jlchen on 11/11/21. * * @Description : AuthenticateConfig * @Description : HDLLinkConfig */ public class AuthenticateConfig { public class HDLLinkConfig { private static final String Authenticate_LS_KEY = "auth_ls_key"; private static final String AUTHENTICATE_GATEWAYID_KEY = "auth_gatewayid_key"; private static final String AUTHENTICATE_IPADDRESS_KEY = "auth_ipaddress_key"; @@ -23,17 +24,17 @@ /** * instance */ private volatile static AuthenticateConfig instance; private volatile static HDLLinkConfig instance; /** * getInstance * * @return AuthenticateConfig */ public static synchronized AuthenticateConfig getInstance() { public static synchronized HDLLinkConfig getInstance() { if (instance == null) { synchronized (AuthenticateConfig.class) { synchronized (HDLLinkConfig.class) { if (instance == null) { instance = new AuthenticateConfig(); instance = new HDLLinkConfig(); instance.loadConfig(); } } @@ -58,6 +59,8 @@ */ void loadConfig(){ localSecret = SPUtils.getString(Authenticate_LS_KEY, ""); gatewayId = SPUtils.getString(AUTHENTICATE_GATEWAYID_KEY, ""); ipAddress = SPUtils.getString(AUTHENTICATE_IPADDRESS_KEY, ""); } /** HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java
@@ -1,11 +1,10 @@ package com.hdl.sdk.connect.protocol; import com.hdl.sdk.common.config.AuthenticateConfig; import com.hdl.sdk.connect.config.HDLLinkConfig; import com.hdl.sdk.common.event.EventDispatcher; import com.hdl.sdk.common.utils.ByteUtils; import com.hdl.sdk.connect.bean.LinkResponse; import com.hdl.sdk.connect.utils.AESUtils; import com.hdl.sdk.connect.utils.AesUtil; import com.hdl.sdk.connect.utils.ProtocolParse; import com.hdl.sdk.socket.codec.ByteToMessageDecoder; @@ -60,9 +59,9 @@ if (byteArray.length >= bodyLength + bodyStartIndex) { byte[] body = ByteUtils.getRangeBytes(bytes, bodyStartIndex, bodyStartIndex + bodyLength); if(AuthenticateConfig.getInstance().ifNeedEncrypt(response.getTopic())){ if(HDLLinkConfig.getInstance().ifNeedEncrypt(response.getTopic())){ //需要解密 byte[] bodyBytes = AesUtil.aesDecrypt(body,AuthenticateConfig.getInstance().getLocalSecret()); byte[] bodyBytes = AesUtil.aesDecrypt(body, HDLLinkConfig.getInstance().getLocalSecret()); // byte[] bodyBytes = AESUtils.decryptAES(body,AuthenticateConfig.getInstance().getLocalSecret()); response.setData(new String(bodyBytes, "utf-8")); // Log.i("TAG", "解密 主题:"+response.getTopic()+ " body: "+response.getData()); HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
@@ -6,7 +6,7 @@ import com.google.gson.Gson; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; import com.hdl.sdk.common.config.AuthenticateConfig; import com.hdl.sdk.connect.config.HDLLinkConfig; import com.hdl.sdk.common.config.TopicConstant; import com.hdl.sdk.common.utils.IdUtils; import com.hdl.sdk.common.utils.IpUtils; @@ -63,7 +63,7 @@ */ public static synchronized HDLAuthSocket getInstance() { if (instance == null) { synchronized (AuthenticateConfig.class) { synchronized (HDLLinkConfig.class) { if (instance == null) { instance = new HDLAuthSocket(); }