Merge branch 'master' of gitee.com:willfree/min-dev-java

This commit is contained in:
free will
2021-05-14 15:29:56 +08:00
7 changed files with 104 additions and 34 deletions
+1 -6
View File
@@ -261,15 +261,10 @@
<!-- Sqlite Driver compatible with sqlcipher-->
<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.28.0</version>
</dependency>
<dependency>
<groupId>io.github.willena</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.35.4</version>
<version>3.35.5.1</version>
</dependency>
<!--jmh 基准测试 -->
@@ -162,6 +162,11 @@ public class ControlParameters implements IEncodingAble {
Block newBlock = elementContainer.getBlock(i);
int type = newBlock.getType().getVlIntValue2Int();
switch (type) {
case TLV.TlvManagementLogicFaceId:
if (!this.controlParameterLogicFaceId.wireDecode(newBlock)) {
return false;
}
break;
case TLV.TlvManagementPrefix:
if (!this.controlParameterPrefix.wireDecode(newBlock)) {
return false;
+5
View File
@@ -1,5 +1,6 @@
package mgmt;
import com.fasterxml.jackson.annotation.JsonProperty;
import util.JSONHelper;
import util.JSONHelperException;
@@ -28,15 +29,19 @@ public class ControlResponse {
public static final String ControlResponseTypeBytes = "bytes";
// Data类型
@JsonProperty("Type")
public String type;
// 状态码
@JsonProperty("Code")
public int code;
// 信息
@JsonProperty("Msg")
public String msg;
// 数据
public class ControlResponseData<E>{
public E value;
}
@JsonProperty("Data")
public ControlResponseData data=new ControlResponseData();
public ControlResponse(){
@@ -1,9 +1,11 @@
package minsecurity.identity.persist.sqlite;
import org.sqlite.mc.SQLiteMCConfig;
import org.sqlite.mc.SQLiteMCSqlCipherConfig;
import java.io.File;
import java.sql.*;
import java.util.Properties;
/*
* @Author: zhengqi wu
@@ -80,8 +82,12 @@ public class Sqlite {
new File(db_path).mkdirs();
}
String real_db_file = db_path + db_file;
// 兼容sqlcipher
c = DriverManager.getConnection("jdbc:sqlite:" + real_db_file, SQLiteMCSqlCipherConfig.getV4Defaults().withKey(passwd2HexKey()).toProperties());
SQLiteMCSqlCipherConfig sqlCipherConfig = SQLiteMCSqlCipherConfig.getV4Defaults();
SQLiteMCConfig config = sqlCipherConfig.withKey(passwd2HexKey());
Properties properties = config.toProperties();
c = DriverManager.getConnection("jdbc:sqlite:" + real_db_file, properties);
stmt = c.createStatement();
stmt.executeUpdate(table_create);
stmt.close();
+38
View File
@@ -0,0 +1,38 @@
package mgmt;
import component.*;
import org.junit.Test;
import org.slf4j.LoggerFactory;
import packet.Interest;
public class CommandBaseTest {
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(CommandBaseTest.class);
@Test
public void testCreateAndParseCommand(){
try{
ControlParameters parameters = new ControlParameters();
Identifier prefix = new Identifier("/pku/sz");
ControlParameterPrefix controlParameterPrefix = new ControlParameterPrefix(prefix);
parameters.controlParameterPrefix = controlParameterPrefix;
parameters.controlParameterLogicFaceId.setLogicFaceId(1);
parameters.controlParameterCost.setCost(1);
parameters.controlParameterCapacity.setCapacity(1);
parameters.controlParameterCount.setCount(1);
parameters.controlParameterExpireTime.setExpireTime(1);
parameters.controlParameterUri.setUri("/pku/sz");
parameters.controlParameterLocalUri.setLocalUri("/local");
parameters.controlParameterLogicFacePersistency.setPersistency(1);
parameters.controlParameterUriScheme.setUriScheme(1);
parameters.controlParameterMtu.setMtu(1);
Interest interest = CommandBase.createCommandIdentifierInterest(parameters, "/cp1/test");
ControlParameters cp = CommandBase.parseControlParameters(interest);
System.out.println(cp);
}catch (Exception ex){
logger.debug(ex.getMessage());
}
}
}
@@ -0,0 +1,21 @@
package mgmt;
import minsecurity.identity.TestIdentity;
import org.junit.Test;
import org.slf4j.LoggerFactory;
public class ControlResponseTest {
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(ControlResponseTest.class);
@Test
public void testUnmarshal(){
try{
ControlResponse response = new ControlResponse();
String jsonString = "{\"Code\": 1, \"Type\": \"string\", \"Msg\": \"bbb\", \"Data\": \"abcd\"}";
// Data无法解析
response.UnmarshalJSON(jsonString.getBytes());
}catch (Exception ex){
logger.debug(ex.getMessage());
}
}
}
+27 -27
View File
@@ -93,9 +93,9 @@ public class KeyChainTest {
// 测试设置新身份为当前身份
KeyChain keyChain = new KeyChain();
Identity id = createRandomIdentity();
keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// 输入密码用于解锁身份
keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// // 输入密码用于解锁身份
// keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
}catch (Exception ex){
LoggerHelper.info(ex.getMessage());
}
@@ -107,9 +107,9 @@ public class KeyChainTest {
// 测试设置新身份为当前身份
KeyChain keyChain = new KeyChain();
Identity id = createRandomIdentity();
keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// 输入密码用于解锁身份
keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// // 输入密码用于解锁身份
// keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// 身份允许签名与验证签名
Identifier id1 = new Identifier("/min/pku/sz");
@@ -142,9 +142,9 @@ public class KeyChainTest {
// 测试设置新身份为当前身份
KeyChain keyChain = new KeyChain();
Identity id = createRandomIdentity();
keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// 输入密码用于解锁身份
keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// // 输入密码用于解锁身份
// keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// 身份允许签名与验证签名
Identifier id1 = new Identifier("/min/pku/sz");
@@ -178,9 +178,9 @@ public class KeyChainTest {
// 测试设置新身份为当前身份
KeyChain keyChain = new KeyChain();
Identity id = createRandomIdentity();
keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// 输入密码用于解锁身份
keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// // 输入密码用于解锁身份
// keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// 身份允许签名与验证签名
// Identifier id1 = new Identifier("/min/pku/sz");
@@ -206,10 +206,10 @@ public class KeyChainTest {
try {
// 测试设置新身份为当前身份
KeyChain keyChain = new KeyChain();
Identity id = createRandomIdentity();
keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// 输入密码用于解锁身份
keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// Identity id = createRandomIdentity();
// keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// // 输入密码用于解锁身份
// keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// 身份允许签名与验证签名
Identifier id1 = new Identifier("/min/pku/sz");
@@ -236,9 +236,9 @@ public class KeyChainTest {
// 测试设置新身份为当前身份
KeyChain keyChain = new KeyChain();
Identity id = createRandomIdentity();
keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// 输入密码用于解锁身份
keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// // 输入密码用于解锁身份
// keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
//////////////////// 构建Data包 ////////////////////////
Data data = new Data();
data.freshnessPeriod.setFreshnessPeriod(02346345465453L);
@@ -261,9 +261,9 @@ public class KeyChainTest {
// 测试设置新身份为当前身份
KeyChain keyChain = new KeyChain();
Identity id = createRandomIdentity();
keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// 输入密码用于解锁身份
keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// // 输入密码用于解锁身份
// keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
//////////////////// 构建Data包 无只读区与标识区 ////////////////////////
Data data = new Data();
// data.freshnessPeriod.setFreshnessPeriod(02346345465453L);
@@ -287,10 +287,10 @@ public class KeyChainTest {
// 测试设置新身份为当前身份
KeyChain keyChain = new KeyChain();
Identity id2 = createRandomIdentity();
id2.unLock("0123456789abcdef", Common.SM4ECB); // 锁住的Identity无法导出
// id2.unLock("0123456789abcdef", Common.SM4ECB); // 锁住的Identity无法导出
keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// 输入密码用于解锁身份
keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// 正常导入导出 通过
LoggerHelper.info(String.format("身份数量:%d", keyChain.getIdentifyManager().getIdentifies().size()));
SafeBag bag = keyChain.exportSafeBag(id2, "1234");
@@ -308,10 +308,10 @@ public class KeyChainTest {
// 测试设置新身份为当前身份
KeyChain keyChain = new KeyChain();
Identity id2 = createRandomIdentity();
id2.unLock("0123456789abcdef", Common.SM4ECB); // 锁住的Identity无法导出
// id2.unLock("0123456789abcdef", Common.SM4ECB); // 锁住的Identity无法导出
keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// 输入密码用于解锁身份
keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// 导入null 抛出异常
LoggerHelper.info(String.format("身份数量:%d", keyChain.getIdentifyManager().getIdentifies().size()));
SafeBag bag = keyChain.exportSafeBag(null, "1234");
@@ -331,7 +331,7 @@ public class KeyChainTest {
Identity id2 = new Identity();
keyChain.getIdentifyManager().setDefaultIdentity(id, true);
// 输入密码用于解锁身份
keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// keyChain.setCurrentIdentity(keyChain.getIdentifyManager().getDefaultIdentity(), "0123456789abcdef");
// 导入空Identity 抛出异常
LoggerHelper.info(String.format("身份数量:%d", keyChain.getIdentifyManager().getIdentifies().size()));
SafeBag bag = keyChain.exportSafeBag(null, "1234");