identity manager (without TEST)

This commit is contained in:
ghy committed 2021-03-11 15:48:46 +08:00
1 parent 16416fecf4
commit dbeb27abe7
4 files changed
+130

No files matched your search

@@ -166,5 +166,9 @@ public class SM2Base {
return new ECPublicKeyParameters(ecPubKey.getQ(), domainParameters);
}
public static SM2KeyPair generateSM2KeyPair(){
return SM2KeyPair.generateKeyPair();
}
}
@@ -0,0 +1,41 @@
package minsecurity.crypto.sm2;
import org.bouncycastle.crypto.AsymmetricCipherKeyPair;
import org.bouncycastle.crypto.params.ECPrivateKeyParameters;
import org.bouncycastle.crypto.params.ECPublicKeyParameters;
/*
* @Author: hongyu guo
* @Description:
* @Version: 1.0.0
* @Date: 09:57 2021/03/11
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
*/
public class SM2KeyPair {
private final SM2PublicKey sm2PublicKey;
private final SM2PrivateKey sm2PrivateKey;
public SM2KeyPair(SM2PublicKey sm2PublicKey, SM2PrivateKey sm2PrivateKey) {
this.sm2PublicKey = sm2PublicKey;
this.sm2PrivateKey = sm2PrivateKey;
}
public static SM2KeyPair generateKeyPair(){
AsymmetricCipherKeyPair keyPair = SM2Base.generateKeyPairParameter();
ECPrivateKeyParameters priKey = (ECPrivateKeyParameters) keyPair.getPrivate();
ECPublicKeyParameters pubKey = (ECPublicKeyParameters) keyPair.getPublic();
byte[] d = priKey.getD().toByteArray();
byte[] x = pubKey.getQ().getAffineXCoord().getEncoded();
byte[] y = pubKey.getQ().getAffineYCoord().getEncoded();
return new SM2KeyPair(new SM2PublicKey(x,y), new SM2PrivateKey(d));
}
public SM2PublicKey getSm2PublicKey() {
return sm2PublicKey;
}
public SM2PrivateKey getSm2PrivateKey() {
return sm2PrivateKey;
}
}