generateKeyPair static method

Future<Map<String, String>> generateKeyPair({
  1. int bitLength = 2048,
})

Generates an RSA key pair in PEM format

Implementation

static Future<Map<String, String>> generateKeyPair(
    {int bitLength = 2048}) async {
  final keyParams =
      RSAKeyGeneratorParameters(BigInt.parse('65537'), bitLength, 64);
  final secureRandom = SecureRandomUtils.createSeeded();
  final rngParams = ParametersWithRandom(keyParams, secureRandom);
  final generator = RSAKeyGenerator();
  generator.init(rngParams);
  final pair = generator.generateKeyPair();

  final pub = pair.publicKey;
  final priv = pair.privateKey;
  final pubPem = BasicUtils.CryptoUtils.encodeRSAPublicKeyToPem(pub);
  final privPem = BasicUtils.CryptoUtils.encodeRSAPrivateKeyToPem(priv);

  return {'publicKey': pubPem, 'privateKey': privPem};
}