diff --git a/pom.xml b/pom.xml
index 6dc9ff1..361a3a9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -106,11 +106,11 @@
-
-
-
-
-
+
+ org.xerial
+ sqlite-jdbc
+ 3.28.0
+
io.github.willena
sqlite-jdbc
@@ -139,11 +139,11 @@
-
-
-
-
-
+
+ com.github.jnr
+ jnr-unixsocket
+ 0.18
+
com.cloudbees.util
diff --git a/src/test/java/packet/DataTest.java b/src/test/java/packet/DataTest.java
index fcdf928..c5c9ff4 100644
--- a/src/test/java/packet/DataTest.java
+++ b/src/test/java/packet/DataTest.java
@@ -3,7 +3,12 @@ package packet;
import component.ComponentException;
import component.Identifier;
import encoding.*;
+import minsecurity.Common;
+import minsecurity.certificate.cert.CertUtils;
+import minsecurity.certificate.cert.Certificate;
+import minsecurity.crypto.sm2.SM2KeyPair;
import minsecurity.identity.Identity;
+import minsecurity.identity.KeyParam;
import org.junit.Test;
import security.KeyChain;
@@ -73,35 +78,81 @@ public class DataTest {
+" , payload: "+newData.payload.getValue() );
}
- @Test
- public void WireEncode2() throws Exception {
- Identifier name = new Identifier("/min/pkusz");
- //////////////////// 构建数据包 ////////////////////////
- Data data = new Data();
- data.setName(name);
- data.freshnessPeriod.setFreshnessPeriod(1234);
- byte[] str = "hello world".getBytes();
- data.congestionMark.setCongestionLevel(1234);
-// todo data.setttl(1234);
- /////////////////////////////////////////////////////
+ /**
+ * 随机生成身份数据
+ * @return Identity
+ */
+ private Identity createRandomIdentity() throws Exception{
+ // 测试PersistIdentity
+ SM2KeyPair pair = SM2KeyPair.generateKeyPair();
+ Identity identity = new Identity();
+ identity.setName("/zf"+Math.random()); // 身份名称必须以/开头 Identifier规定
+ KeyParam keyParam = new KeyParam();
+ keyParam.PublicKeyAlgorithm = 0;
+ keyParam.SignatureAlgorithm = 0;
+ identity.setKeyParam(keyParam);
+ identity.setPrikey(pair.getSm2PrivateKey());
+ identity.setPubkey(pair.getSm2PublicKey());
+ identity.setPasswd("2DD29CA851E7B56E4697B0E1F08507293D761A05CE4D1B628663F411A8086D99");
+ // identity.lock("0123456789abcdef", Common.SM4ECB);
+ Certificate cert = new Certificate();
+ cert.setVersion(1);
+ cert.setSerialNumber(1);
+ cert.setPublicKey(pair.getSm2PublicKey());
+ cert.setSignatureAlgorithm(Common.SM3withSM2); // TODO 名字有误? SM2withSM3?
+ cert.setPublicKeyAlgorithm(Common.SM2);
+ cert.setIssueTo("root");
+ cert.setIssuer("root");
+ long timestamp = System.currentTimeMillis() / 1000;
+ cert.setTimestamp(timestamp); // 10bit timestamp
+ cert.setNotAfter(timestamp); // 10bit timestamp
+ cert.setNotBefore(timestamp + 1000); // 10bit timestamp
+ cert.setKeyUsage(Common.CertSign);
+ cert.setCA(true);
+ CertUtils.signCert(cert, pair.getSm2PrivateKey());
- //////////////////// 数据包签名 ////////////////////////
- // 如果要进行包签名的话,则需要加入KeyChain
- KeyChain keyChain = new KeyChain();
- // 获取身份
- Identity i = keyChain.getIdentifyManager().getIdentityByName("/localhost/operator");
- // 将身份对应的加密秘钥作为第二个参数传入
- keyChain.setCurrentIdentity(i,"pkusz123pkusz123");
- keyChain.signData(data);
- /////////////////////////////////////////////////////
-
- // 获取编码结果
- Encoder encoder = new Encoder();
- encoder.encoderReset(new SizeT(Encoder.MaxPacketSize), new SizeT(0));
- data.wireEncode(encoder);
- byte[] buf = encoder.getBuffer();
- System.out.println(Arrays.toString(buf));
+ identity.setCert(cert);
+ return identity;
}
+
+// @Test
+// public void WireEncode2() throws Exception {
+// //////////////////// 构建数据包 ////////////////////////
+// Identifier name = new Identifier("/min/pkusz");
+// Data data = new Data();
+// data.setName(name);
+// data.freshnessPeriod.setFreshnessPeriod(1234);
+// byte[] str = "hello world".getBytes();
+// data.congestionMark.setCongestionLevel(1234);
+////// data.setttl(1234);
+// /////////////////////////////////////////////////////
+//
+// //////////////////// 数据包签名 ////////////////////////
+// //测试设置新身份为当前身份
+// KeyChain keyChain = new KeyChain();
+// Identity id = createRandomIdentity();
+// keyChain.getIdentifyManager().setDefaultIdentity(id,true);
+// // 输入命名解锁身份
+// keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(),"0123456789abcdef");
+// keyChain.signData(data);
+//
+//// //////////////////// 数据包签名 ////////////////////////
+//// // 如果要进行包签名的话,则需要加入KeyChain
+//// KeyChain keyChain = new KeyChain();
+//// // 获取身份
+//// Identity i = keyChain.getIdentifyManager().getIdentityByName("/localhost/operator");
+//// // 将身份对应的加密秘钥作为第二个参数传入
+//// keyChain.setCurrentIdentity(i,"pkusz123pkusz123");
+//// keyChain.signData(data);
+//// /////////////////////////////////////////////////////
+////
+// // 获取编码结果
+// Encoder encoder = new Encoder();
+// encoder.encoderReset(new SizeT(Encoder.MaxPacketSize), new SizeT(0));
+// data.wireEncode(encoder);
+// byte[] buf = encoder.getBuffer();
+// System.out.println(Arrays.toString(buf));
+// }
}
diff --git a/src/test/java/packet/InterestTest.java b/src/test/java/packet/InterestTest.java
index e627a9c..5a50035 100644
--- a/src/test/java/packet/InterestTest.java
+++ b/src/test/java/packet/InterestTest.java
@@ -71,37 +71,37 @@ public class InterestTest {
+" , ttl; "+newInterest.ttl.ttl());
}
- @Test
- public void TestInterest_WireEncode2() throws Exception {
- Identifier name = new Identifier("/min/pkusz");
- //////////////////// 构建兴趣包 ////////////////////////
- Interest interest = new Interest();
- interest.setName(name);
- interest.canBePrefix.setCanBePrefix(true);
- interest.mustBeRefresh.setMustBeRefresh(true);
- interest.nonce.setNonce(1234);
- interest.hopLimit.setHopLimit(1234);
- interest.congestionMark.setCongestionLevel(1234);
- interest.ttl.setTtl(1234);
- byte[] str = "hello world".getBytes();
- interest.payload.setValue(str);
- //////////////////////////////////////////////////////
-
- //////////////////// 兴趣包签名 ////////////////////////
- // 如果要进行包签名的话,则需要加入KeyChain
- KeyChain keyChain = new KeyChain();
-// Identity i = keyChain.getIdentifyManager().getIdentityByName("/min123");
- Identity i = keyChain.getIdentifyManager().getIdentityByName("/localhost/operator");
- keyChain.setCurrentIdentity(i,"pkusz123pkusz123");
- keyChain.signInterest(interest);
- /////////////////////////////////////////////////////
-
- // 获取编码结果
- Encoder encoder = new Encoder();
- encoder.encoderReset(new SizeT(Encoder.MaxPacketSize), new SizeT(0));
- interest.wireEncode(encoder);
- byte[] buf = encoder.getBuffer();
- System.out.println(Arrays.toString(buf));
-
- }
+// @Test
+// public void TestInterest_WireEncode2() throws Exception {
+// Identifier name = new Identifier("/min/pkusz");
+// //////////////////// 构建兴趣包 ////////////////////////
+// Interest interest = new Interest();
+// interest.setName(name);
+// interest.canBePrefix.setCanBePrefix(true);
+// interest.mustBeRefresh.setMustBeRefresh(true);
+// interest.nonce.setNonce(1234);
+// interest.hopLimit.setHopLimit(1234);
+// interest.congestionMark.setCongestionLevel(1234);
+// interest.ttl.setTtl(1234);
+// byte[] str = "hello world".getBytes();
+// interest.payload.setValue(str);
+// //////////////////////////////////////////////////////
+//
+// //////////////////// 兴趣包签名 ////////////////////////
+// // 如果要进行包签名的话,则需要加入KeyChain
+// KeyChain keyChain = new KeyChain();
+//// Identity i = keyChain.getIdentifyManager().getIdentityByName("/min123");
+// Identity i = keyChain.getIdentifyManager().getIdentityByName("/localhost/operator");
+// keyChain.setCurrentIdentity(i,"pkusz123pkusz123");
+// keyChain.signInterest(interest);
+// /////////////////////////////////////////////////////
+//
+// // 获取编码结果
+// Encoder encoder = new Encoder();
+// encoder.encoderReset(new SizeT(Encoder.MaxPacketSize), new SizeT(0));
+// interest.wireEncode(encoder);
+// byte[] buf = encoder.getBuffer();
+// System.out.println(Arrays.toString(buf));
+//
+// }
}