generateKeyPair static method
Generates an ECC key pair for the specified curve
Implementation
static Future<Map<String, String>> generateKeyPair({
String curve = secp256r1,
}) async {
final curveParams = ECDomainParameters(curve);
final keyParams = ECKeyGeneratorParameters(curveParams);
final secureRandom = SecureRandomUtils.createSeeded();
final rngParams = ParametersWithRandom(keyParams, secureRandom);
final generator = ECKeyGenerator();
generator.init(rngParams);
final pair = generator.generateKeyPair();
final privateKey = pair.privateKey;
final publicKey = pair.publicKey;
// Convert to PEM format
final publicPem = BasicUtils.CryptoUtils.encodeEcPublicKeyToPem(publicKey);
final privatePem = BasicUtils.CryptoUtils.encodeEcPrivateKeyToPem(privateKey);
return {
'publicKey': publicPem,
'privateKey': privatePem,
'curve': curve,
};
}