signWithIntent method

Future<SignatureWithBytes> signWithIntent(
  1. Uint8List bytes,
  2. IntentScope intent
)

Signs bytes under intent, returning the base64 passkey signature (flag(0x06) || BCS(PasskeyAuthenticator)) and the base64 message bytes.

Implementation

Future<SignatureWithBytes> signWithIntent(
    Uint8List bytes, IntentScope intent) async {
  final intentMessage = messageWithIntent(intent, bytes);
  final digest = blake2b(intentMessage);
  final signature = await sign(digest);

  final serialized = Uint8List(1 + signature.length);
  serialized[0] = SIGNATURE_SCHEME_TO_FLAG.Passkey;
  serialized.setAll(1, signature);
  return SignatureWithBytes(base64Encode(serialized), base64Encode(bytes));
}