From 1323c0b3463c5486be9d5e5310782aeb9023697c Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 15 十一月 2021 11:31:56 +0800
Subject: [PATCH] 2021-11-15 1.更新

---
 HDLSDK/hdl-common/build.gradle                                                        |    1 
 HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/event/EventDispatcher.java         |   49 +++++
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/protocol/LinkMessageDecoder.java |    8 
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java            |   11 -
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkRequest.java            |   41 +---
 /dev/null                                                                             |   86 ---------
 HDLSDK/hdl-connect/build.gradle                                                       |    6 
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/utils/AesUtil.java               |  155 ----------------
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java      |    2 
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java                     |   70 +++++++
 HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java                                      |   10 +
 HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/config/AuthenticateConfig.java     |    7 
 HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java        |    9 
 HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/utils/ByteUtils.java               |   17 +
 HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java                             |   14 -
 15 files changed, 182 insertions(+), 304 deletions(-)

diff --git a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java
index 86fe706..92aa5d2 100644
--- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java
+++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/App.java
@@ -1,9 +1,11 @@
 package com.hdl.hdlsdk;
 
 import android.app.Application;
+import android.util.Log;
 
 import com.hdl.sdk.common.HDLSdk;
-import com.hdl.sdk.connect.HDLSocket;
+import com.hdl.sdk.common.event.EventListener;
+import com.hdl.sdk.connect.HDLLink;
 
 /**
  * Created by Tong on 2021/10/8.
@@ -14,6 +16,12 @@
     public void onCreate() {
         super.onCreate();
         HDLSdk.getInstance().init(this);
+        HDLLink.getInstance().registerAllTopicsListener(new EventListener() {
+            @Override
+            public void onMessage(Object msg) {
+                Log.i("TAG", "AllTopicsListener onMessage: "+msg.toString());
+            }
+        });
     }
 
     @Override
diff --git a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
index 8d89f55..be3022f 100644
--- a/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
+++ b/HDLSDK/app/src/main/java/com/hdl/hdlsdk/MainActivity.java
@@ -9,7 +9,6 @@
 import androidx.recyclerview.widget.RecyclerView;
 
 import android.Manifest;
-import android.app.Instrumentation;
 import android.os.Bundle;
 import android.util.Log;
 import android.view.View;
@@ -17,24 +16,15 @@
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
-import com.google.gson.JsonObject;
 import com.hdl.sdk.common.config.AuthenticateConfig;
-import com.hdl.sdk.common.config.TopicConstant;
-import com.hdl.sdk.common.utils.IdUtils;
-import com.hdl.sdk.common.utils.IpUtils;
-import com.hdl.sdk.connect.HDLAuthSocket;
-import com.hdl.sdk.connect.HDLSocket;
+import com.hdl.sdk.connect.socket.HDLAuthSocket;
+import com.hdl.sdk.connect.socket.HDLSocket;
 import com.hdl.sdk.connect.bean.DeviceControlRequest;
-import com.hdl.sdk.connect.bean.GatewaySearchBean;
-import com.hdl.sdk.connect.bean.LinkRequest;
 import com.hdl.sdk.connect.protocol.LinkMessageDecoder;
 import com.hdl.sdk.connect.protocol.LinkMessageEncoder;
-import com.hdl.sdk.socket.SocketBoot;
 import com.hdl.sdk.socket.SocketOptions;
-import com.hdl.sdk.socket.client.UdpClient;
 import com.hdl.sdk.socket.codec.MessagePipeLine;
 
-import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
diff --git a/HDLSDK/hdl-common/build.gradle b/HDLSDK/hdl-common/build.gradle
index 673c577..74fa10d 100644
--- a/HDLSDK/hdl-common/build.gradle
+++ b/HDLSDK/hdl-common/build.gradle
@@ -31,4 +31,5 @@
     api 'com.google.code.gson:gson:2.8.8'
     api 'androidx.annotation:annotation:1.2.0'
     api 'androidx.collection:collection:1.1.0'
+//    api project(path: ':hdl-connect')
 }
\ No newline at end of file
diff --git a/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/config/AuthenticateConfig.java b/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/config/AuthenticateConfig.java
index d13aa2c..0090c94 100644
--- a/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/config/AuthenticateConfig.java
+++ b/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/config/AuthenticateConfig.java
@@ -4,8 +4,6 @@
 
 import com.hdl.sdk.common.utils.SPUtils;
 
-import static com.hdl.sdk.common.config.TopicConstant.DEIVCE_AUTH_REQUEST;
-import static com.hdl.sdk.common.config.TopicConstant.GATEWAY_SEARCH;
 
 /**
  * Created by jlchen on 11/11/21.
@@ -118,8 +116,9 @@
      */
     public boolean ifNeedEncrypt(String topicStr){
         //杩囨护鐩稿叧闇�瑕佸姞瀵嗙殑涓婚
-        return (!topicStr.contains(DEIVCE_AUTH_REQUEST) //鍏ョ綉璁よ瘉
-                && !topicStr.contains(GATEWAY_SEARCH) //鎼滅储缃戝叧涓婚
+        return (!topicStr.contains(TopicConstant.GATEWAY_AUTH_BROADCAST) //缃戝叧骞挎挱鍏ョ綉鎸囦护
+                && !topicStr.contains(TopicConstant.DEIVCE_AUTH_REQUEST) //鍏ョ綉璁よ瘉
+                && !topicStr.contains(TopicConstant.GATEWAY_SEARCH) //鎼滅储缃戝叧涓婚
                 && isLocalEncrypt//鍚敤鍔犲瘑鏍囧織
         );
     }
diff --git a/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/event/EventDispatcher.java b/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/event/EventDispatcher.java
index b17b3a8..d1b24ec 100644
--- a/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/event/EventDispatcher.java
+++ b/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/event/EventDispatcher.java
@@ -18,6 +18,8 @@
  */
 public class EventDispatcher {
 
+    private static final List<EventListener> ALL_TOPICS_EVENT = new ArrayList<>();//鎵�鏈変富棰樻秷鎭�
+
     private static final ArrayMap<Object, List<EventListener>> EVENT = new ArrayMap<>();
 
     private static final ArrayMap<EventListener, Integer> TYPE = new ArrayMap<>();
@@ -100,6 +102,7 @@
         });
     }
 
+
     public synchronized void post(Object tag, @NonNull Object o) {
         if (EVENT.containsKey(tag)) {
             List<EventListener> list = EVENT.get(tag);
@@ -116,9 +119,55 @@
                 }
             }
         }
+        //鎵�鏈変富棰樼殑Listener閫氱煡
+        if (ALL_TOPICS_EVENT != null && !ALL_TOPICS_EVENT.isEmpty()) {
+            for (EventListener listener : ALL_TOPICS_EVENT) {
+                ThreadToolUtils.getInstance().runOnUiThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        if (listener != null) {
+                            listener.onMessage(o);
+                        }
+                    }
+                });
+            }
+        }
+    }
+
+    /**
+     * 娉ㄥ唽鎵�鏈変富棰樻秷鎭殑鐩戝惉
+     * @param listener
+     */
+    public synchronized void registerAllTopicsListener(EventListener listener) {
+        if (ALL_TOPICS_EVENT != null && !ALL_TOPICS_EVENT.contains(listener)) {
+            ALL_TOPICS_EVENT.add(listener);
+        }
+        TYPE.put(listener, MAIN_TYPE);
+    }
+
+    /**
+     * 鍙栨秷鎵�鏈変富棰樻秷鎭殑鐩戝惉
+     * @param listener
+     */
+    public synchronized void removeAllTopicsListener(EventListener listener) {
+        ioThread.execute(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    if (ALL_TOPICS_EVENT != null && !ALL_TOPICS_EVENT.isEmpty()) {
+                        TYPE.remove(listener);
+                        ALL_TOPICS_EVENT.remove(listener);
+                    }
+                } catch (Exception ignored) {
+
+                }
+
+            }
+        });
     }
 
     public synchronized void clear() {
+        ALL_TOPICS_EVENT.clear();
         EVENT.clear();
         TYPE.clear();
     }
diff --git a/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/utils/ByteUtils.java b/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/utils/ByteUtils.java
index ff641db..b893d1d 100644
--- a/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/utils/ByteUtils.java
+++ b/HDLSDK/hdl-common/src/main/java/com/hdl/sdk/common/utils/ByteUtils.java
@@ -1,5 +1,6 @@
 package com.hdl.sdk.common.utils;
 
+import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -131,4 +132,20 @@
         }
         return -1;
     }
+
+    /**
+     * 瀛楃涓瞭o Bytes
+     * @param str 瀛楃涓�
+     * @return
+     */
+    public static byte[] stringToBytes(String str) {
+        try {
+            // 浣跨敤鎸囧畾鐨勫瓧绗﹂泦灏嗘瀛楃涓茬紪鐮佷负byte搴忓垪骞跺瓨鍒颁竴涓猙yte鏁扮粍涓�
+            return str.getBytes("utf-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        return new byte[]{};
+    }
+
 }
diff --git a/HDLSDK/hdl-connect/build.gradle b/HDLSDK/hdl-connect/build.gradle
index 7a4df3a..ac8608f 100644
--- a/HDLSDK/hdl-connect/build.gradle
+++ b/HDLSDK/hdl-connect/build.gradle
@@ -32,7 +32,7 @@
     implementation 'androidx.appcompat:appcompat:1.2.0'
     implementation 'com.google.android.material:material:1.3.0'
 
-    //鍔犲瘑
-    implementation 'cn.hutool:hutool-all:5.6.5'
-    implementation 'org.bouncycastle:bcprov-jdk15on:1.60'
+//    //鍔犲瘑
+//    implementation 'cn.hutool:hutool-all:5.6.5'
+//    implementation 'org.bouncycastle:bcprov-jdk15on:1.60'
 }
\ No newline at end of file
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
new file mode 100644
index 0000000..e259914
--- /dev/null
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLLink.java
@@ -0,0 +1,70 @@
+package com.hdl.sdk.connect;
+
+import com.hdl.sdk.common.config.AuthenticateConfig;
+import com.hdl.sdk.common.event.EventDispatcher;
+import com.hdl.sdk.common.event.EventListener;
+import com.hdl.sdk.connect.bean.AuthenticateRequest;
+import com.hdl.sdk.connect.socket.HDLAuthSocket;
+
+/**
+ * Created by jlchen on 11/15/21.
+ *
+ * @Description : HDLLink
+ */
+public class HDLLink {
+    /**
+     * instance
+     */
+    private volatile static HDLLink instance;
+    /**
+     * getInstance
+     *
+     * @return HDLLink
+     */
+    public static synchronized HDLLink getInstance() {
+        if (instance == null) {
+            synchronized (HDLLink.class) {
+                if (instance == null) {
+                    instance = new HDLLink();
+                }
+            }
+        }
+        return instance;
+    }
+
+    /**
+     * 娉ㄥ唽鎵�鏈変富棰樻秷鎭殑鐩戝惉
+     * @param listener
+     */
+    public synchronized void registerAllTopicsListener(EventListener listener){
+        EventDispatcher.getInstance().registerAllTopicsListener(listener);
+    }
+    /**
+     * 鍙栨秷鎵�鏈変富棰樻秷鎭殑鐩戝惉
+     * @param listener
+     */
+    public synchronized void removeAllTopicsListener(EventListener listener) {
+        EventDispatcher.getInstance().removeAllTopicsListener(listener);
+    }
+
+    /**
+     * 妫�娴嬫槸鍚﹀凡缁忚璇佽繃
+     * 璁よ瘉閫氳繃鎵嶈兘杩涜璁惧鎺у埗
+     * @return
+     */
+    public boolean checkIfCertified(){
+        return AuthenticateConfig.getInstance().checkIfCertified();
+    }
+
+    /**
+     * 鍙戦�佸叆缃戝強璁よ瘉璇锋眰
+     *
+     * @param ip       缃戝叧IP
+     * @param request  璁よ瘉璇锋眰淇℃伅
+     * @param callBack 缁撴灉鍥炶皟
+     */
+    public void sendAuthenticateRequest(String ip, AuthenticateRequest request, HDLAuthSocket.CallBack callBack) {
+        HDLAuthSocket.getInstance().sendAuthenticateRequest(ip,request,callBack);
+    }
+
+}
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkRequest.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkRequest.java
index 29b1941..d3c9c7e 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkRequest.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/bean/LinkRequest.java
@@ -1,18 +1,16 @@
 package com.hdl.sdk.connect.bean;
 
 import android.text.TextUtils;
-import android.util.Log;
 
 import androidx.annotation.NonNull;
 
 import com.hdl.sdk.common.config.AuthenticateConfig;
+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 static com.hdl.sdk.common.config.TopicConstant.DEIVCE_AUTH_REQUEST;
-import static com.hdl.sdk.common.config.TopicConstant.GATEWAY_SEARCH;
+//import com.hdl.sdk.connect.utils.AesUtil;
 
 /**
  * Created by Tong on 2021/9/29.
@@ -47,7 +45,6 @@
         this.data = data;
         if (!TextUtils.isEmpty(data)) {
             setLength(getBytesLength(data));
-//            setLength(data.length());
         } else {
             setLength(0);
         }
@@ -74,32 +71,13 @@
                 getData();
     }
 
-    private static byte[] stringToBytes(String str) {
-        try {
-            // 浣跨敤鎸囧畾鐨勫瓧绗﹂泦灏嗘瀛楃涓茬紪鐮佷负byte搴忓垪骞跺瓨鍒颁竴涓猙yte鏁扮粍涓�
-            return str.getBytes("utf-8");
-        } catch (UnsupportedEncodingException e) {
-            e.printStackTrace();
-        }
-        return new byte[]{};
-    }
+
 
     private int getBytesLength(String str){
-        return stringToBytes(str).length;
+        return ByteUtils.stringToBytes(str).length;
     }
 
-    /**
-     * 鍚堝苟鏁扮粍
-     * @param bt1
-     * @param bt2
-     * @return
-     */
-    public static byte[] byteMerger(byte[] bt1, byte[] bt2){
-        byte[] bt3 = new byte[bt1.length + bt2.length];
-        System.arraycopy(bt1, 0, bt3, 0, bt1.length);
-        System.arraycopy(bt2, 0, bt3, bt1.length, bt2.length);
-        return bt3;
-    }
+
     /**
      * 鑾峰彇鍙戦�佹暟鎹産yte
      *
@@ -110,11 +88,12 @@
             //鍒ゆ柇鏄惁闇�瑕佸姞瀵�
             if (AuthenticateConfig.getInstance().ifNeedEncrypt(topic)) {
                 //闇�瑕佸姞瀵�
-                byte[] dataBytes = AesUtil.aesEncrypt(stringToBytes(data), AuthenticateConfig.getInstance().getLocalSecret());
+                byte[] dataBytes = AesUtil.aesEncrypt(ByteUtils.stringToBytes(data), AuthenticateConfig.getInstance().getLocalSecret());
+//                byte[] dataBytes = AESUtils.encryptAES(stringToBytes(data), AuthenticateConfig.getInstance().getLocalSecret());
+
                 String headString = "Topic:" + getTopic() + "\r\n" + "Length:" + dataBytes.length + "\r\n" + "\r\n";
-//                byte[] headBytes = headString.getBytes("utf-8");
-                byte[] headBytes = headString.getBytes();
-                byte[] sendBytes = byteMerger(headBytes, dataBytes);
+                byte[] headBytes = headString.getBytes("utf-8");
+                byte[] sendBytes = ByteUtils.concatBytes(headBytes, dataBytes);
                 return sendBytes;
             } else {
                 return this.toString().getBytes("utf-8");
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 5047ae0..8ffe79a 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
@@ -1,12 +1,11 @@
 package com.hdl.sdk.connect.protocol;
 
 
-import android.util.Log;
-
 import com.hdl.sdk.common.config.AuthenticateConfig;
 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;
@@ -64,13 +63,12 @@
                     if(AuthenticateConfig.getInstance().ifNeedEncrypt(response.getTopic())){
                         //闇�瑕佽В瀵�
                         byte[] bodyBytes = AesUtil.aesDecrypt(body,AuthenticateConfig.getInstance().getLocalSecret());
+//                        byte[] bodyBytes = AESUtils.decryptAES(body,AuthenticateConfig.getInstance().getLocalSecret());
                         response.setData(new String(bodyBytes, "utf-8"));
-                        Log.i("TAG", "decoder: ");
+//                        Log.i("TAG", "瑙e瘑 涓婚锛�"+response.getTopic()+ " body: "+response.getData());
                     }else{
                         response.setData(new String(body, "utf-8"));
                     }
-
-
 
                     if (byteArray.length >= bodyLength + bodyStartIndex) {
                         //淇濆瓨浣欑暀
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLAuthSocket.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
similarity index 98%
rename from HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLAuthSocket.java
rename to HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
index 6e9f14a..3f5e5b6 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLAuthSocket.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLAuthSocket.java
@@ -1,4 +1,4 @@
-package com.hdl.sdk.connect;
+package com.hdl.sdk.connect.socket;
 
 import android.text.TextUtils;
 import android.util.Log;
@@ -267,9 +267,9 @@
 
         String topic = String.format(TopicConstant.PROPERTY_DOWN, "1406844230123372545");
         LinkRequest message = new LinkRequest(topic,
-                GsonConvert.getGson().toJson(request));
+                GsonConvert.getGson().toJson(data));
 
-        Log.i("TAG", "propertyDown: " + message.getData());
+//        Log.i("TAG", "propertyDown: " + message.toString());
 
         String ip = IpUtils.getBroadcastAddress();
         HdlSocketHelper.send(getUdpBoot(ip), message, null);
@@ -299,4 +299,7 @@
         return hex.toString();
     }
 
+
+
+
 }
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLSocket.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
similarity index 97%
rename from HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLSocket.java
rename to HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
index 22b1dbe..7c94a2f 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HDLSocket.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HDLSocket.java
@@ -1,11 +1,7 @@
-package com.hdl.sdk.connect;
+package com.hdl.sdk.connect.socket;
 
 import android.text.TextUtils;
-import android.util.ArrayMap;
-import android.util.Log;
 
-import com.google.gson.Gson;
-import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
 import com.google.gson.reflect.TypeToken;
 import com.hdl.sdk.common.config.TopicConstant;
@@ -16,8 +12,6 @@
 import com.hdl.sdk.common.utils.SPUtils;
 import com.hdl.sdk.common.utils.ThreadToolUtils;
 import com.hdl.sdk.common.utils.gson.GsonConvert;
-import com.hdl.sdk.connect.bean.AuthenticateRequest;
-import com.hdl.sdk.connect.bean.BaseLocalRequest;
 import com.hdl.sdk.connect.bean.BaseLocalResponse;
 import com.hdl.sdk.connect.bean.DeviceControlRequest;
 import com.hdl.sdk.connect.bean.FunctionAttributeRequest;
@@ -37,11 +31,8 @@
 import com.hdl.sdk.socket.listener.SendListener;
 
 import java.io.UnsupportedEncodingException;
-import java.lang.reflect.ParameterizedType;
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HdlSocketHelper.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java
similarity index 98%
rename from HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HdlSocketHelper.java
rename to HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java
index dc05bb6..53ef271 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/HdlSocketHelper.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/socket/HdlSocketHelper.java
@@ -1,4 +1,4 @@
-package com.hdl.sdk.connect;
+package com.hdl.sdk.connect.socket;
 
 import android.text.TextUtils;
 
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/utils/AESUtils.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/utils/AESUtils.java
deleted file mode 100644
index 1a577e0..0000000
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/utils/AESUtils.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.hdl.sdk.connect.utils;
-
-import android.util.Base64;
-
-import java.io.UnsupportedEncodingException;
-import java.security.InvalidAlgorithmParameterException;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-
-import javax.crypto.BadPaddingException;
-import javax.crypto.Cipher;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.SecretKeySpec;
-
-/**
- * Created by Tong on 2021/11/3.
- */
-public class AESUtils {
-
-    public static String encryptAES(String content, String key) throws NoSuchPaddingException, BadPaddingException, InvalidAlgorithmParameterException, NoSuchAlgorithmException, IllegalBlockSizeException, UnsupportedEncodingException, InvalidKeyException {
-        return encryptAES(content, key, "");
-    }
-
-    public static String encryptAES(String content, String key, String ivString)
-            throws InvalidKeyException, NoSuchAlgorithmException,
-            NoSuchPaddingException, UnsupportedEncodingException,
-            InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException {
-        byte[] byteContent = content.getBytes("UTF-8");
-        byte[] encryptedBytes = encryptAES(byteContent,key,ivString);
-        return Base64.encodeToString(encryptedBytes, Base64.NO_WRAP);
-    }
-
-    public static byte[] encryptAES(byte[] byteContent, String key) throws NoSuchPaddingException, BadPaddingException, InvalidAlgorithmParameterException, NoSuchAlgorithmException, IllegalBlockSizeException, UnsupportedEncodingException, InvalidKeyException {
-        return encryptAES(byteContent, key, key);
-    }
-
-    public static byte[] encryptAES(byte[] byteContent, String key, String ivString)
-            throws InvalidKeyException, NoSuchAlgorithmException,
-            NoSuchPaddingException, UnsupportedEncodingException,
-            InvalidAlgorithmParameterException, IllegalBlockSizeException, BadPaddingException {
-
-        byte[] enCodeFormat = key.getBytes();
-        SecretKeySpec secretKeySpec = new SecretKeySpec(enCodeFormat, "AES");
-
-        byte[] initParam = ivString.getBytes();
-        IvParameterSpec ivParameterSpec = new IvParameterSpec(initParam);
-
-        // 鎸囧畾鍔犲瘑鐨勭畻娉曘�佸伐浣滄ā寮忓拰濉厖鏂瑰紡
-        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
-        cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);
-
-        byte[] encryptedBytes = cipher.doFinal(byteContent);
-        return encryptedBytes;
-    }
-
-    public static String decryptAES(String content, String key) throws NoSuchPaddingException, UnsupportedEncodingException, InvalidAlgorithmParameterException, NoSuchAlgorithmException, IllegalBlockSizeException, BadPaddingException, InvalidKeyException {
-        return decryptAES(content, key, "");
-    }
-
-    public static String decryptAES(String content, String key, String ivString)
-            throws InvalidKeyException, NoSuchAlgorithmException,
-            NoSuchPaddingException, InvalidAlgorithmParameterException,
-            IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException {
-
-
-        // base64 瑙g爜
-        byte[] encryptedBytes = Base64.decode(content, Base64.NO_WRAP);
-
-        byte[] enCodeFormat = key.getBytes();
-        SecretKeySpec secretKey = new SecretKeySpec(enCodeFormat, "AES");
-
-        byte[] initParam = ivString.getBytes();
-        IvParameterSpec ivParameterSpec = new IvParameterSpec(initParam);
-
-        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
-        cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);
-
-        byte[] result = cipher.doFinal(encryptedBytes);
-
-        return new String(result, "UTF-8");
-    }
-
-}
-
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/utils/AesUtil.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/utils/AesUtil.java
index 00f83b7..f05ba51 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/utils/AesUtil.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/connect/utils/AesUtil.java
@@ -3,22 +3,16 @@
 
 import com.hdl.sdk.common.utils.LogUtils;
 
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
 import java.security.InvalidAlgorithmParameterException;
 import java.security.InvalidKeyException;
 import java.security.Key;
 import java.security.NoSuchAlgorithmException;
-import java.security.Security;
-
 import javax.crypto.BadPaddingException;
 import javax.crypto.Cipher;
 import javax.crypto.IllegalBlockSizeException;
 import javax.crypto.NoSuchPaddingException;
 import javax.crypto.spec.IvParameterSpec;
 import javax.crypto.spec.SecretKeySpec;
-
-import cn.hutool.core.util.HexUtil;
 
 /**
  * Aes 鍔犺В瀵嗗伐鍏风被
@@ -28,13 +22,13 @@
  */
 public class AesUtil {
 
-    private static final String CIPHER_INSTANCE = "AES/ECB/PKCS5Padding";
+    private static final String CIPHER_INSTANCE = "AES/CBC/PKCS7Padding";
     private static final String AES_ALGORITHM = "AES";
 
-    static {
-        //AES/CBC/PKCS7Padding 渚濊禆
-        Security.addProvider(new BouncyCastleProvider());
-    }
+//    static {
+//        //AES/CBC/PKCS7Padding 渚濊禆
+//        Security.addProvider(new BouncyCastleProvider());
+//    }
 
     /**
      * AES鍔犲瘑
@@ -44,7 +38,7 @@
      * @throws Exception
      */
     public static byte[] aesEncrypt(byte[] content, String key) {
-        return encrypt(content, key.getBytes(), "AES/CBC/PKCS7Padding", true, null);
+        return encrypt(content, key.getBytes(), CIPHER_INSTANCE, true, null);
     }
 
     /**
@@ -55,52 +49,9 @@
      * @throws Exception
      */
     public static byte[] aesDecrypt(byte[] content, String key) {
-        return decrypt(content, key.getBytes(), "AES/CBC/PKCS7Padding", true, null);
+        return decrypt(content, key.getBytes(), CIPHER_INSTANCE, true, null);
     }
 
-    /**
-     * 鍔犲瘑
-     *
-     * @param content 寰呭姞瀵嗗瓧绗︿覆
-     * @param keyHex  aesKye鐨刪exStr
-     * @return
-     */
-    public static String encrypt(String content, String keyHex) {
-        return HexUtil.encodeHexStr(encrypt(content.getBytes(), HexUtil.decodeHex(keyHex), CIPHER_INSTANCE, false, null));
-    }
-
-    /**
-     * 鍔犲瘑
-     *
-     * @param content 寰呭姞瀵嗗瓧绗︿覆
-     * @param key     瀵嗛挜
-     * @return
-     */
-    public static String encrypt(String content, byte[] key) {
-        return HexUtil.encodeHexStr(encrypt(content.getBytes(), key, CIPHER_INSTANCE, false, null));
-    }
-
-    /**
-     * 鍔犲瘑
-     *
-     * @param content 寰呭姞瀵嗗瓧绗︿覆
-     * @param keyHex  aesKye鐨刪exStr
-     * @return
-     */
-    public static byte[] encryptReturnByte(String content, String keyHex) {
-        return encrypt(content.getBytes(), HexUtil.decodeHex(keyHex), CIPHER_INSTANCE, false, null);
-    }
-
-    /**
-     * 鍔犲瘑
-     *
-     * @param content 寰呭姞瀵嗗瓧绗︿覆
-     * @param key     瀵嗛挜
-     * @return
-     */
-    public static byte[] encryptReturnByte(String content, byte[] key) {
-        return encrypt(content.getBytes(), key, CIPHER_INSTANCE, false, null);
-    }
 
     /**
      * 鍔犲瘑
@@ -149,51 +100,6 @@
     /**
      * 瑙e瘑
      *
-     * @param contentHex 寰呰В瀵嗗緟瀛楃涓瞙exStr
-     * @param keyHex     desKye鐨刪exStr
-     * @return
-     */
-    public static String decrypt(String contentHex, String keyHex) {
-        return new String(decrypt(HexUtil.decodeHex(contentHex), HexUtil.decodeHex(keyHex), CIPHER_INSTANCE, false, null));
-    }
-
-    /**
-     * 瑙e瘑
-     *
-     * @param contentHex 寰呰В瀵嗗緟瀛楃涓瞙exStr
-     * @param key        瀵嗛挜
-     * @return
-     */
-    public static String decrypt(String contentHex, byte[] key) {
-        return new String(decrypt(HexUtil.decodeHex(contentHex), key, CIPHER_INSTANCE, false, null));
-    }
-
-    /**
-     * 瑙e瘑
-     *
-     * @param content 寰呰В瀵嗗緟鍐呭
-     * @param keyHex  瀵嗛挜
-     * @return
-     */
-    public static String decrypt(byte[] content, String keyHex) {
-        return new String(decrypt(content, HexUtil.decodeHex(keyHex), CIPHER_INSTANCE, false, null));
-    }
-
-    /**
-     * 瑙e瘑
-     *
-     * @param content 寰呰В瀵嗗緟鍐呭
-     * @param key     瀵嗛挜
-     * @return
-     */
-    public static String decrypt(byte[] content, byte[] key) {
-        return new String(decrypt(content, key, CIPHER_INSTANCE, false, null));
-    }
-
-
-    /**
-     * 瑙e瘑
-     *
      * @param contentByte    寰呰В瀵嗗緟瀛楃涓瞙exStr
      * @param contentByte    瀵嗛挜
      * @param cipherInstance AES绠楁硶濉厖鏂瑰紡
@@ -235,51 +141,4 @@
         return null;
     }
 
-
-    public static void main(String[] args) {
-//        jiemi();
-        //jiami();
-    }
-
-    public static void jiami() {
-        String key = "1f6714fc-fb9b-4a";
-        String content = "{\"id\":\"123\",\"objects\":[{\"sid\":\"0001011565879801020200010101\",\"type\":\"PWD\",\"local_id\":\"2\"}],\"time_stamp\":\"1603281282000\"}";
-        byte[] res = aesEncrypt(content.getBytes(), key);
-        System.out.println(HexUtil.encodeHexStr(res));
-    }
-
-//    /**
-//     *
-//     * @param str
-//     * @param houseId
-//     * @return
-//     */
-//    public static String jiemi(byte[] str, String houseId) {
-//        byte[] rs = aesDecrypt(str, HouseIdSecretUtil.getSecret(houseId));
-//        String content = new String(rs);
-//        return content;
-//    }
-
-//    public static void main(String[] args) {
-//        try {
-//            //绗竴姝ワ細 鐢熸垚KEY
-//            //KeyGenerator keyGenerator = KeyGenerator.getInstance(AES_ALGORITHM);
-//            //keyGenerator.init(256);
-//            //绗簩姝ワ細 浜х敓瀵嗛挜
-//            //SecretKey secretKey = keyGenerator.generateKey();
-//            //绗笁姝ワ細 鑾峰彇瀵嗛挜
-//            //byte[] keyBytes = secretKey.getEncoded();
-//            //System.out.println(byteArrayToHexStr(keyBytes));
-//            String src = "aaaaaaaaaVVVVaaaAAAA鏃�";
-//            String pwd = "41151AF257BFDB7859EEC62FB341EE95EE42E648FE24E1F8CE8DADE287CC1E5C";
-//            String mw = encrypt(src,pwd);
-//            System.out.println("mw:"+mw);
-//            String jm = decrypt(mw,pwd);
-//            System.out.println("jm:"+jm);
-//
-//        }catch (Exception e){
-//
-//        }
-//
-//    }
 }

--
Gitblit v1.8.0