create static method

Future<SchnorrSigningKey> create([
  1. master_key_type keytype = master_key_type.ed25519,
  2. bool useTEE = false
])

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);
}