generateKeyPair function
AsymmetricKeyPair<PublicKey, PrivateKey>
generateKeyPair()
Generate Keypair
Implementation
AsymmetricKeyPair<PublicKey, PrivateKey> generateKeyPair() {
var keyParams = ECCurve_sm2();
var random = FortunaRandom();
random.seed(KeyParameter(_seed(32)));
var n = keyParams.n;
var nBitLength = n.bitLength;
BigInt d;
do {
d = random.nextBigInteger(nBitLength);
} while (d == BigInt.zero || (d >= n));
ECPoint? Q = scalar_multiple(d, keyParams.G);
if (Q == null) {
throw Exception("Failed to generate key pair");
}
return AsymmetricKeyPair(
ECPublicKey(Q, keyParams), ECPrivateKey(d, keyParams));
}