create static method
Implementation
static Future<SchnorrSigningKey> create([
master_key_type keytype = master_key_type.ed25519,
bool useTEE = false,
]) async {
final r1 = await newMsgSigningKey();
final masterSk = r1;
final r2 = await getVerifyingKeyBytes(sk: masterSk);
final masterVk = r2;
Handle certSk;
if (useTEE) {
throw ('TEE feature coming soon');
} else {
switch (keytype) {
case master_key_type.ed25519:
final r3 = await newMsgSigningKey();
final sk = r3;
final r4 = await getVerifyingKeyBytes(sk: sk);
final vk = r4;
final signedVk = await signMessage(sk: masterSk, msg: vk);
final certSkRes = await createCertifiedSigningKey(
msgSk: sk,
msgVkSign: signedVk,
masterVk: masterVk,
keyType: master_key_type.ed25519,
);
certSk = certSkRes;
break;
case master_key_type.ecdsaP256Sec1:
throw 'ECDSA_P256_SEC1 not supported yet, coming soon';
default:
throw 'Unsupported key type';
}
}
final dynRes = await getMasterVerifyingKey(certSk: certSk);
return SchnorrSigningKey(skHandle: certSk, vkHandle: dynRes);
}