mirror of
https://gitee.com/willfree/min-dev-java.git
synced 2026-06-17 17:10:26 +08:00
Merge branch 'master' of gitee.com:willfree/min-dev-java
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
package security;
|
||||
|
||||
/*
|
||||
* @Author: hongyu guo
|
||||
* @Description:
|
||||
* @Version: 1.0.0
|
||||
* @Date: 11:19 2021/05/21
|
||||
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
|
||||
*/
|
||||
public class IdentifyManagerException extends Exception{
|
||||
public IdentifyManagerException(String msg){
|
||||
super(msg);
|
||||
}
|
||||
|
||||
}
|
||||
+211
-4
@@ -1,6 +1,9 @@
|
||||
package security;
|
||||
|
||||
import minsecurity.Common;
|
||||
import minsecurity.certificate.cert.CertException;
|
||||
import minsecurity.certificate.cert.CertUtils;
|
||||
import minsecurity.certificate.cert.Certificate;
|
||||
import minsecurity.crypto.sm2.SM2Base;
|
||||
import minsecurity.crypto.sm2.SM2KeyPair;
|
||||
import minsecurity.identity.Identity;
|
||||
@@ -9,7 +12,15 @@ import minsecurity.identity.KeyParam;
|
||||
//import minsecurity.identity.persist.MapDB;
|
||||
import minsecurity.identity.persist.Persist;
|
||||
import minsecurity.identity.persist.sqlite.Sqlite;
|
||||
import org.omg.CORBA.PUBLIC_MEMBER;
|
||||
|
||||
import javax.crypto.BadPaddingException;
|
||||
import javax.crypto.IllegalBlockSizeException;
|
||||
import javax.crypto.NoSuchPaddingException;
|
||||
import java.security.InvalidAlgorithmParameterException;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.NoSuchProviderException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
@@ -24,15 +35,22 @@ import java.util.concurrent.ConcurrentMap;
|
||||
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
|
||||
*/
|
||||
// TODO: 测试
|
||||
public class IdentifyManager {
|
||||
public class IdentityManager {
|
||||
|
||||
public static String DefaultIdentityDBPath = "/usr/local/.mir/identity/";
|
||||
public void setIdentifies(ConcurrentMap<String, Identity> identifies) {
|
||||
this.identifies = identifies;
|
||||
}
|
||||
|
||||
private ConcurrentMap<String, Identity> identifies; // 一个map,存储了身份名字和网络身份实体的映射
|
||||
private ConcurrentMap<String, Identity> identifies; // 一个map,存储了身份名字和网络身份实体的映射
|
||||
private Identity defaultIdentity; // 默认网络身份
|
||||
private int privateKeyEncryptionAlgorithm; // 对秘钥加密所使用的加密算法
|
||||
// 一个map,存储了身份名字和对应身份的版本号
|
||||
// 1. 初始加载到内存中时,所有身份的版本号均为0
|
||||
// 2. 接着每次对该网络身份进行了任何的修改,对应版本号都会++
|
||||
private ConcurrentMap<String, Long> versionMap;
|
||||
private long version; // 版本号,每次创建一个对象,version从0开始,对身份的任何增删改都会导致版本号的增加
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@@ -43,7 +61,20 @@ public class IdentifyManager {
|
||||
* @author hongyu guo
|
||||
* @date 2021/3/11
|
||||
**/
|
||||
public IdentifyManager(){
|
||||
public IdentityManager(){
|
||||
init();
|
||||
}
|
||||
|
||||
public IdentityManager(String dbPath) {
|
||||
try {
|
||||
Sqlite.getInstance().open(dbPath);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
init();
|
||||
}
|
||||
|
||||
public void init() {
|
||||
try{
|
||||
this.identifies = loadAllIdentifies();
|
||||
this.defaultIdentity = Persist.getDefaultIdentityFromStorage("");
|
||||
@@ -53,6 +84,8 @@ public class IdentifyManager {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 从sqlite中加载全部网络身份信息并封装成ConcurrentMap
|
||||
* @return {ConcurrentMap}
|
||||
@@ -102,6 +135,7 @@ public class IdentifyManager {
|
||||
this.identifies.remove(name);
|
||||
// 从sqlite中删除掉它
|
||||
Persist.deleteIdentityByNameFromStorage(name);
|
||||
version++;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -128,10 +162,17 @@ public class IdentifyManager {
|
||||
|
||||
// 将新的网络身份进行持久化存储
|
||||
// TODO 目前的Persist模块无法实现强制覆盖,因为会抛出重名异常
|
||||
if(force)
|
||||
Persist.deleteIdentityByNameFromStorage(newIdentity.getName());
|
||||
Persist.persistIdentity(newIdentity);
|
||||
|
||||
// 同时更新内存中数据
|
||||
this.identifies.put(newIdentity.getName(), newIdentity);
|
||||
long curVersion = 0;
|
||||
if(versionMap.containsKey(newIdentity.getName())) {
|
||||
curVersion = versionMap.get(newIdentity.getName()) + 1;
|
||||
}
|
||||
versionMap.put(newIdentity.getName(), curVersion);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -171,6 +212,8 @@ public class IdentifyManager {
|
||||
Persist.persistIdentity(newIdentity);
|
||||
// 持久化存储成功则在内存中也存储一份
|
||||
this.identifies.put(name, newIdentity);
|
||||
versionMap.put(name, 0L);
|
||||
version++;
|
||||
return newIdentity;
|
||||
}
|
||||
|
||||
@@ -228,6 +271,147 @@ public class IdentifyManager {
|
||||
return false;
|
||||
return identifies.containsKey(name);
|
||||
}
|
||||
/**
|
||||
* 返回当前版本号
|
||||
* @param
|
||||
* @return long 返回当前版本号
|
||||
* @throws
|
||||
* @author hongyu guo
|
||||
* @date 2021/5/21
|
||||
**/
|
||||
public long getCurrentVersion() {
|
||||
return getVersion();
|
||||
}
|
||||
|
||||
/***
|
||||
* 获取某个网络身份的版本号
|
||||
* @return long 没有该Identity,返回-1
|
||||
* @throws
|
||||
* @author hongyu guo
|
||||
* @date 2021/5/21
|
||||
**/
|
||||
public long getIdentityVersion(String identityName) {
|
||||
if(versionMap.containsKey(identityName)) {
|
||||
return versionMap.get(identityName);
|
||||
}
|
||||
return -1L;
|
||||
}
|
||||
|
||||
/**
|
||||
* 加载证书
|
||||
* @param identityName
|
||||
* @param cert
|
||||
* @return boolean
|
||||
* @throws Exception
|
||||
* @author hongyu guo
|
||||
* @date 2021/5/21
|
||||
**/
|
||||
public boolean loadCert(String identityName, Certificate cert) throws Exception {
|
||||
if(existIdentity(identityName)) {
|
||||
// 已经存在
|
||||
Identity id = Persist.getIdentityByNameFromStorage(identityName, "");
|
||||
if(id == null)
|
||||
throw new IdentifyManagerException("can not find identity by name [" + identityName + "] in sqlite");
|
||||
Certificate oldCert = id.getCert();
|
||||
id.setCert(cert);
|
||||
boolean succ = saveIdentity(id, true, true);
|
||||
if(!succ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
getIdentityByName(identityName).setCert(cert);
|
||||
} else {
|
||||
Identity id = new Identity();
|
||||
id.setName(cert.getIssueTo());
|
||||
id.setCert(cert);
|
||||
id.setKeyParam(new KeyParam(cert.getPublicKeyAlgorithm(), cert.getSignatureAlgorithm()));
|
||||
id.setPubkey(cert.getPublicKey());
|
||||
boolean succ = saveIdentity(id, true, true);
|
||||
if(!succ)
|
||||
return false;
|
||||
identifies.put(id.getName(), id);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用指定的网络身份给自己签发一个自签证书
|
||||
* @param identityName
|
||||
* @param passwd
|
||||
* @return boolean
|
||||
* @throws
|
||||
* @author hongyu guo
|
||||
* @date 2021/5/21
|
||||
**/
|
||||
public boolean selfIssue(String identityName, String passwd) throws Exception {
|
||||
if(!existIdentity(identityName)) {
|
||||
throw new IdentifyManagerException("Target identity [" + identityName + "] not exists!");
|
||||
}
|
||||
|
||||
Identity identity = Persist.getIdentityByNameFromStorage(identityName, "");
|
||||
if(identity == null) {
|
||||
throw new IdentifyManagerException("can not find identity by name [" + identityName + "] in sqlite");
|
||||
}
|
||||
|
||||
if(identity.isLocked()) {
|
||||
boolean succ = identity.unLock(passwd, Common.SM4ECB);
|
||||
if(!succ) {
|
||||
throw new IdentifyManagerException("can not unlock identity [" + identityName + "]");
|
||||
}
|
||||
}
|
||||
|
||||
Certificate cert = new Certificate();
|
||||
cert.setVersion(0);
|
||||
cert.setSerialNumber(1);
|
||||
cert.setPublicKey(identity.getPubkey());
|
||||
cert.setSignatureAlgorithm(identity.getKeyParam().SignatureAlgorithm);
|
||||
cert.setPublicKeyAlgorithm(identity.getKeyParam().PublicKeyAlgorithm);
|
||||
cert.setIssueTo(identity.getName());
|
||||
cert.setIssuer(identity.getName());
|
||||
cert.setNotBefore(System.currentTimeMillis());
|
||||
cert.setNotAfter(System.currentTimeMillis() + 365 * 24 * 60 * 60 * 1000L);
|
||||
cert.setKeyUsage(Common.CertSign);
|
||||
cert.setCA(true);
|
||||
cert.setTimestamp(System.currentTimeMillis());
|
||||
|
||||
CertUtils.signCert(cert, identity.getPrikey());
|
||||
return loadCert(identity.getName(), cert);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出证书
|
||||
* @param identityName
|
||||
* @return java.lang.String
|
||||
* @throws
|
||||
* @author hongyu guo
|
||||
* @date 2021/5/21
|
||||
**/
|
||||
public String dumpCert(String identityName) throws NoSuchPaddingException, InvalidKeyException, CertException, IllegalBlockSizeException, BadPaddingException, NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException {
|
||||
Identity targetIdentity = getIdentityByName(identityName);
|
||||
if(targetIdentity == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
if (targetIdentity.getCert() == null ||
|
||||
(targetIdentity.getCert().getIssuer().equals("") && targetIdentity.getCert().getSignature() == null)) {
|
||||
return "";
|
||||
}
|
||||
return CertUtils.toPem(targetIdentity.getCert(), "".getBytes(), Common.SM4ECB);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入证书
|
||||
* @param bytesOfCert
|
||||
* @return boolean
|
||||
* @throws
|
||||
* @author hongyu guo
|
||||
* @date 2021/5/21
|
||||
**/
|
||||
public boolean importCert(byte[] bytesOfCert) throws Exception {
|
||||
Certificate cert = CertUtils.fromPem(new String(bytesOfCert), null, Common.SM4ECB);
|
||||
return loadCert(cert.getIssueTo(), cert);
|
||||
}
|
||||
|
||||
public ConcurrentMap<String, Identity> getIdentifies() {
|
||||
return identifies;
|
||||
@@ -236,7 +420,14 @@ public class IdentifyManager {
|
||||
public Identity getDefaultIdentity() {
|
||||
return defaultIdentity;
|
||||
}
|
||||
|
||||
/**
|
||||
* setter方法!
|
||||
* @param defaultIdentity
|
||||
* @return void
|
||||
* @throws
|
||||
* @author hongyu guo
|
||||
* @date 2021/5/21
|
||||
**/
|
||||
public void setDefaultIdentity(Identity defaultIdentity) {
|
||||
this.defaultIdentity = defaultIdentity;
|
||||
}
|
||||
@@ -248,4 +439,20 @@ public class IdentifyManager {
|
||||
public void setPrivateKeyEncryptionAlgorithm(int privateKeyEncryptionAlgorithm) {
|
||||
this.privateKeyEncryptionAlgorithm = privateKeyEncryptionAlgorithm;
|
||||
}
|
||||
|
||||
public ConcurrentMap<String, Long> getVersionMap() {
|
||||
return versionMap;
|
||||
}
|
||||
|
||||
public void setVersionMap(ConcurrentMap<String, Long> versionMap) {
|
||||
this.versionMap = versionMap;
|
||||
}
|
||||
|
||||
public long getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(long version) {
|
||||
this.version = version;
|
||||
}
|
||||
}
|
||||
@@ -13,11 +13,9 @@ import packet.MINPacket;
|
||||
import javax.crypto.BadPaddingException;
|
||||
import javax.crypto.IllegalBlockSizeException;
|
||||
import javax.crypto.NoSuchPaddingException;
|
||||
import java.lang.reflect.Array;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.NoSuchProviderException;
|
||||
import java.util.IdentityHashMap;
|
||||
|
||||
/*
|
||||
* @Author: hongyu guo
|
||||
@@ -27,24 +25,9 @@ import java.util.IdentityHashMap;
|
||||
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
|
||||
*/
|
||||
public class KeyChain {
|
||||
private static final String defaultIdentifyName = "/localhost/operator";
|
||||
public IdentifyManager getIdentifyManager() {
|
||||
return identifyManager;
|
||||
}
|
||||
private static final String defaultIdentityName = "/localhost/operator";
|
||||
|
||||
public void setIdentifyManager(IdentifyManager identifyManager) {
|
||||
this.identifyManager = identifyManager;
|
||||
}
|
||||
|
||||
public Identity getCurrentIdentity() {
|
||||
return currentIdentity;
|
||||
}
|
||||
|
||||
public void setCurrentIdentity(Identity currentIdentity) {
|
||||
this.currentIdentity = currentIdentity;
|
||||
}
|
||||
|
||||
private IdentifyManager identifyManager;
|
||||
private IdentityManager identityManager;
|
||||
private Identity currentIdentity;
|
||||
|
||||
/**
|
||||
@@ -55,13 +38,40 @@ public class KeyChain {
|
||||
* @date 2021/3/11
|
||||
**/
|
||||
public KeyChain() throws Exception{
|
||||
identifyManager = new IdentifyManager();
|
||||
currentIdentity = identifyManager.getDefaultIdentity();
|
||||
// DONE: 考虑是否需要在没有默认身份的时候创建一个缺省的本地网络身份
|
||||
if (currentIdentity == null){
|
||||
Identity newId = this.identifyManager.createIdentityByName(defaultIdentifyName, "", true);
|
||||
this.identifyManager.setDefaultIdentity(newId);
|
||||
this.currentIdentity = newId;
|
||||
// identifyManager = new IdentifyManager();
|
||||
// currentIdentity = identifyManager.getDefaultIdentity();
|
||||
// // DONE: 考虑是否需要在没有默认身份的时候创建一个缺省的本地网络身份
|
||||
// if (currentIdentity == null){
|
||||
// Identity newId = this.identifyManager.createIdentityByName(defaultIdentifyName, "", true);
|
||||
// this.identifyManager.setDefaultIdentity(newId);
|
||||
// this.currentIdentity = newId;
|
||||
// }
|
||||
init(IdentityManager.DefaultIdentityDBPath);
|
||||
}
|
||||
|
||||
public KeyChain(String dbPath) throws Exception {
|
||||
init(dbPath);
|
||||
}
|
||||
|
||||
private void init(String dbPath) throws Exception {
|
||||
identityManager = new IdentityManager(dbPath);
|
||||
currentIdentity = identityManager.getDefaultIdentity();
|
||||
if(identityManager.getDefaultIdentity() == null) {
|
||||
Identity defaultIdentity = identityManager.getIdentityByName(defaultIdentityName);
|
||||
if(defaultIdentity != null) {
|
||||
currentIdentity = defaultIdentity;
|
||||
return;
|
||||
}
|
||||
|
||||
Identity newIdentity = identityManager.createIdentityByName(defaultIdentityName, "", true);
|
||||
if(newIdentity == null) {
|
||||
throw new KeyChainException("init failed: can not create identity [" + defaultIdentityName + "]");
|
||||
}
|
||||
boolean succ = identityManager.setDefaultIdentity(newIdentity, true);
|
||||
if(!succ) {
|
||||
throw new KeyChainException("init failed: can not set default identity [" + newIdentity.getName() + "]");
|
||||
}
|
||||
currentIdentity = newIdentity;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,23 +85,15 @@ public class KeyChain {
|
||||
**/
|
||||
public void setCurrentIdentity(Identity identity, String passwd) {
|
||||
try {
|
||||
if(passwd != null && !passwd.equals("")){
|
||||
identity.unLock(passwd, identifyManager.getPrivateKeyEncryptionAlgorithm());
|
||||
currentIdentity = identity;
|
||||
if(!"".equals(passwd) && identity.isLocked()){
|
||||
boolean success = identity.unLock(passwd, identityManager.getPrivateKeyEncryptionAlgorithm());
|
||||
if(!success) {
|
||||
throw new KeyChainException("Unlock " + identity.getName() + " by " + passwd + " failed!!");
|
||||
}
|
||||
}
|
||||
} catch (IdentityException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InvalidKeyException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchPaddingException e) {
|
||||
e.printStackTrace();
|
||||
} catch (BadPaddingException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchProviderException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalBlockSizeException e) {
|
||||
currentIdentity = identity;
|
||||
} catch (IdentityException | NoSuchAlgorithmException | InvalidKeyException | NoSuchPaddingException
|
||||
| BadPaddingException | NoSuchProviderException | IllegalBlockSizeException | KeyChainException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
@@ -225,7 +227,7 @@ public class KeyChain {
|
||||
Signature signature = minPacket.signatureField.getSignature(0);
|
||||
|
||||
String identityName = signature.getSigInfo().getKeyLocator().getIdentifier().toUri();
|
||||
Identity identity = this.identifyManager.getIdentityByName(identityName);
|
||||
Identity identity = this.identityManager.getIdentityByName(identityName);
|
||||
|
||||
if (identity == null){
|
||||
throw new KeyChainException("Verify failed, could not find the identity");
|
||||
@@ -289,13 +291,29 @@ public class KeyChain {
|
||||
*/
|
||||
public void importSafeBag(SafeBag safeBag, String passwd, boolean force) throws Exception{
|
||||
if (safeBag == null)
|
||||
throw new KeyChainException(String.format("SafeBag is %s", safeBag));
|
||||
throw new KeyChainException("SafeBag is null");
|
||||
Identity identity = Identity.load(safeBag.getValue(), passwd);
|
||||
|
||||
if (!this.identifyManager.existIdentity(identity.getName()) || force){
|
||||
this.identifyManager.saveIdentity(identity, force, false);
|
||||
if (!this.identityManager.existIdentity(identity.getName()) || force){
|
||||
this.identityManager.saveIdentity(identity, force, false);
|
||||
}else {
|
||||
throw new KeyChainException(String.format("Identify %s is already exists!", identity.getName()));
|
||||
}
|
||||
}
|
||||
|
||||
public IdentityManager getIdentifyManager() {
|
||||
return identityManager;
|
||||
}
|
||||
|
||||
public void setIdentifyManager(IdentityManager identityManager) {
|
||||
this.identityManager = identityManager;
|
||||
}
|
||||
|
||||
public Identity getCurrentIdentity() {
|
||||
return currentIdentity;
|
||||
}
|
||||
|
||||
// public void setCurrentIdentity(Identity currentIdentity) {
|
||||
// this.currentIdentity = currentIdentity;
|
||||
// }
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ import minsecurity.certificate.cert.CertUtils;
|
||||
import minsecurity.certificate.cert.Certificate;
|
||||
import minsecurity.crypto.sm2.SM2KeyPair;
|
||||
import minsecurity.identity.Identity;
|
||||
import minsecurity.identity.IdentityBenchmark;
|
||||
import minsecurity.identity.KeyParam;
|
||||
import org.openjdk.jmh.annotations.*;
|
||||
import org.openjdk.jmh.runner.Runner;
|
||||
@@ -61,19 +60,19 @@ public class IdentifyManagerBenchmark {
|
||||
|
||||
@Benchmark
|
||||
public void testIdentifyManagerInit(){
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
}
|
||||
|
||||
@Benchmark
|
||||
public void testGetIdentityByName(){
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
String name = "wzq0.6597381351293033"; // 预先存储好的身份名
|
||||
manager.getIdentityByName(name);
|
||||
}
|
||||
|
||||
@Benchmark
|
||||
public void testSaveAndDelete() throws Exception {
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
Identity id = createRandomIdentity();
|
||||
manager.saveIdentity(id, true, true);
|
||||
manager.deleteIdentityByName(id.getName(), true);
|
||||
@@ -81,14 +80,14 @@ public class IdentifyManagerBenchmark {
|
||||
|
||||
@Benchmark
|
||||
public void testSetDefault() throws Exception {
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
String name = "wzq0.6597381351293033"; // 预先存储好的身份名
|
||||
manager.setDefaultIdentity(manager.getIdentifies().get(name), true);
|
||||
}
|
||||
|
||||
@Benchmark
|
||||
public void testExistIdentity(){
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
String name = "wzq0.6597381351293033"; // 预先存储好的身份名
|
||||
manager.existIdentity(name);
|
||||
manager.existIdentity(name + "test");
|
||||
@@ -96,7 +95,7 @@ public class IdentifyManagerBenchmark {
|
||||
|
||||
@Benchmark
|
||||
public void testCreateIdentityByNameAndDelete() throws Exception {
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
String s = "wzq"+Math.random();
|
||||
manager.createIdentityByName(s, "1234", true);
|
||||
manager.deleteIdentityByName(s, true);
|
||||
|
||||
+16
-19
@@ -7,16 +7,13 @@ import minsecurity.certificate.cert.Certificate;
|
||||
import minsecurity.crypto.sm2.SM2KeyPair;
|
||||
import minsecurity.identity.Identity;
|
||||
import minsecurity.identity.KeyParam;
|
||||
import minsecurity.identity.TestIdentity;
|
||||
import minsecurity.identity.persist.sqlite.Sqlite;
|
||||
import org.junit.Test;
|
||||
//import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
|
||||
public class IdentifyManagerTest {
|
||||
public class IdentityManagerTest {
|
||||
// private static final org.slf4j.Logger logger = LoggerFactory.getLogger(TestIdentity.class);
|
||||
/**
|
||||
* 随机生成身份数据
|
||||
@@ -59,7 +56,7 @@ public class IdentifyManagerTest {
|
||||
try{
|
||||
// 打开数据库
|
||||
// Sqlite.getInstance().openDefault();
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("默认身份:%s", manager.getDefaultIdentity().getName()));
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
LoggerHelper.info(String.format("私钥加密算法:%d", manager.getPrivateKeyEncryptionAlgorithm()));
|
||||
@@ -71,7 +68,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testGetIdentityByName(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
ConcurrentMap<String, Identity> hashMap = manager.getIdentifies();
|
||||
Set<String> keySet = hashMap.keySet();
|
||||
// 查询所有manager中的用户
|
||||
@@ -87,7 +84,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testGetIdentityByName2(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
ConcurrentMap<String, Identity> hashMap = manager.getIdentifies();
|
||||
Set<String> keySet = hashMap.keySet();
|
||||
@@ -109,7 +106,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testDeleteIdentityByName2(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
ConcurrentMap<String, Identity> hashMap = manager.getIdentifies();
|
||||
Set<String> keySet = hashMap.keySet();
|
||||
@@ -131,7 +128,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testDeleteIdentityByName(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
ConcurrentMap<String, Identity> hashMap = manager.getIdentifies();
|
||||
Set<String> keySet = hashMap.keySet();
|
||||
@@ -150,7 +147,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testSaveIdentity(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
// 随机生成身份并保存 重复五次
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -167,7 +164,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testSaveIdentity2(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
// 插入 null 重复五次
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -183,7 +180,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testCreateIdentityByNameAndKeyParam(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
// 随机生成名称并保存 重复五次
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -203,7 +200,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testCreateIdentityByName(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
// 随机生成名称并保存 重复五次
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -219,7 +216,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testCreateIdentityByName2(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
// 保存null 重复五次
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -236,7 +233,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testCreateIdentityByNameAndKeyParam2(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
// 保存null 重复五次
|
||||
for (int i = 0; i < 5; i++) {
|
||||
@@ -253,7 +250,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testSetDefaultIdentity(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
ConcurrentMap<String, Identity> hashMap = manager.getIdentifies();
|
||||
Set<String> keySet = hashMap.keySet();
|
||||
@@ -272,7 +269,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testSetDefaultIdentity2(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
ConcurrentMap<String, Identity> hashMap = manager.getIdentifies();
|
||||
Set<String> keySet = hashMap.keySet();
|
||||
@@ -294,7 +291,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testExistIdentity(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
ConcurrentMap<String, Identity> hashMap = manager.getIdentifies();
|
||||
Set<String> keySet = hashMap.keySet();
|
||||
@@ -314,7 +311,7 @@ public class IdentifyManagerTest {
|
||||
@Test
|
||||
public void testExistIdentity2(){
|
||||
try{
|
||||
IdentifyManager manager = new IdentifyManager();
|
||||
IdentityManager manager = new IdentityManager();
|
||||
LoggerHelper.info(String.format("身份数量:%d", manager.getIdentifies().size()));
|
||||
ConcurrentMap<String, Identity> hashMap = manager.getIdentifies();
|
||||
Set<String> keySet = hashMap.keySet();
|
||||
Reference in New Issue
Block a user