generateKeyPair method
Implementation
Future<Map<String, Object?>> generateKeyPair() async {
try {
//add if for prevent refetch loop
var ec;
var fetchKey;
if(lastKey != null) {
var timeNow = DateTime.now();
var gep = timeNow.difference(lastFetch!).inSeconds;
// print("gep last key : " + gep.toString());
if(gep < 60) {
fetchKey = lastKey;
} else {
fetchKey = await fetch();
}
} else {
fetchKey = await fetch();
}
var serverKey = fetchKey.keys![0];
if (serverKey.crv == "P-256") {
ec = getP256();
} else {
ec = getP521();
}
var priv = ec.generatePrivateKey() as PrivateKey;
var pub = priv.publicKey;
// print('privateKey: 0x$priv');
// print('publicKey: 0x$pub');
// var basePriv = "3e7079fd5664347bbbd00e6340f4965ad3c3c715dc4829cf5788dee8f78e064e";
// var basePub = "04f8688146e10bed653d2663d6244896fa8707206c1c545c5abda62b2607adab3b64ebb6441452f179898adfe74296b6c000175aeb2fa6a2a028ae3d03987fbb86";
//
// var priv = PrivateKey.fromHex(ec, basePriv);
// var pub = priv.publicKey;
// print(pub.curve.name);
var keySetRes = {
"X": serverKey.x,
"Y": serverKey.y,
"curve": serverKey.crv,
"priv": priv,
"pub": pub
};
return keySetRes;
} catch (e) {
throw (e);
}
}