generateKeyPair static method

Future<Map<String, String>> generateKeyPair({
  1. String curve = 'prime256v1',
})
override

Generates an ECC key pair (PEM format)

Implementation

static Future<Map<String, String>> generateKeyPair(
    {String curve = 'prime256v1'}) async {
  final ecDomain = ECDomainParameters(curve);
  final keyGen = ECKeyGenerator();
  final params = ECKeyGeneratorParameters(ecDomain);
  final random = FortunaRandom();
  random.seed(KeyParameter(Uint8List.fromList(List.generate(
      32, (_) => DateTime.now().microsecondsSinceEpoch % 256))));
  keyGen.init(ParametersWithRandom(params, random));
  final pair = keyGen.generateKeyPair();
  final pubKey = pair.publicKey;
  final privKey = pair.privateKey;
  final pubPem = BasicUtils.CryptoUtils.encodeEcPublicKeyToPem(pubKey);
  final privPem = BasicUtils.CryptoUtils.encodeEcPrivateKeyToPem(privKey);
  return {'publicKey': pubPem, 'privateKey': privPem};
}