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