getPasskeyInstance static method

Future<PasskeyKeypair> getPasskeyInstance(
  1. PasskeyProvider provider
)

Registers a fresh passkey via provider and returns a signer for it. Only call this when creating a passkey wallet for the first time; to use an existing passkey whose public key is unknown, see signAndRecover.

Implementation

static Future<PasskeyKeypair> getPasskeyInstance(
  PasskeyProvider provider,
) async {
  final registration = await provider.create();
  final uncompressed = parseDerSPKI(registration.publicKeyDer);
  final compressed = curve256r1Params.curve
      .decodePoint(uncompressed)!
      .getEncoded(true);
  return PasskeyKeypair(
    Uint8List.fromList(compressed),
    provider,
    registration.credentialId,
  );
}