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;
  var d;
  do {
    d = random.nextBigInteger(nBitLength);
  } while (d == BigInt.zero || (d >= n));
  ECPoint Q = scalar_multiple(d, keyParams.G)!;
  return new AsymmetricKeyPair(
      new ECPublicKey(Q, keyParams), new ECPrivateKey(d, keyParams));
}