mirror of
https://gitee.com/willfree/min-dev-java.git
synced 2026-06-18 06:00:25 +08:00
fix:兼容go版本的sm2
This commit is contained in:
@@ -236,6 +236,7 @@ public class Identity {
|
||||
}
|
||||
byte[] passHash = KeyUtils.get16bytePasswd(passwd.getBytes());
|
||||
byte[] by = Prikey.getBytes();
|
||||
// 加密后的私钥序列化数据
|
||||
byte[] encMsg = SM4.encrypt_ECB_Padding(passHash, Prikey.getBytes());
|
||||
PrikeyRawByte = encMsg;
|
||||
Prikey = null;
|
||||
|
||||
@@ -31,7 +31,7 @@ import java.security.NoSuchProviderException;
|
||||
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
|
||||
*/
|
||||
|
||||
// TODO: 加密版本的序列化
|
||||
// DONE: 加密版本的序列化可以不用实现 已经改用加密Sqlite
|
||||
public class IdentitySerializer implements Serializer<Identity> {
|
||||
|
||||
@Override
|
||||
|
||||
@@ -30,42 +30,42 @@ class OperationThread extends Thread{
|
||||
System.out.println(String.format("Operation %d starting", this.threadNo));
|
||||
try{
|
||||
// 测试PersistIdentity
|
||||
// SM2KeyPair pair = SM2KeyPair.generateKeyPair();
|
||||
// Identity identity = new Identity();
|
||||
// identity.setName("wzq"+this.threadNo);
|
||||
// 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());
|
||||
//
|
||||
// identity.setCert(cert);
|
||||
// Db.persistIdentity(identity);
|
||||
//
|
||||
// Identity id = Db.getIdentityByNameFromStorage("wzq"+this.threadNo);
|
||||
//
|
||||
// System.out.println("插入身份:" + id.getName());
|
||||
// System.out.println(String.format("开始设置 wzq%d 为default 身份", this.threadNo));
|
||||
//
|
||||
// Db.SetDefaultIdentityByNameInStorage("wzq"+this.threadNo);
|
||||
SM2KeyPair pair = SM2KeyPair.generateKeyPair();
|
||||
Identity identity = new Identity();
|
||||
identity.setName("wzq"+this.threadNo);
|
||||
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());
|
||||
|
||||
identity.setCert(cert);
|
||||
Db.persistIdentity(identity);
|
||||
|
||||
Identity id = Db.getIdentityByNameFromStorage("wzq"+this.threadNo);
|
||||
|
||||
System.out.println("插入身份:" + id.getName());
|
||||
System.out.println(String.format("开始设置 wzq%d 为default 身份", this.threadNo));
|
||||
|
||||
Db.SetDefaultIdentityByNameInStorage("wzq"+this.threadNo);
|
||||
|
||||
Identity id2 = Db.getDefaultIdentityFromStorage();
|
||||
System.out.println("当前default身份:" + id2.getName());
|
||||
|
||||
Reference in New Issue
Block a user