seal method
Seal data for a retry of method by principal. request binds the
state to the request's salient parameters (it is digested, not stored).
Implementation
String seal(
Map<String, Object?> data, {
required String? principal,
required String method,
Object? request,
DateTime? now,
}) {
final payload = utf8.encode(jsonEncode({
'd': data,
'p': principal,
'm': method,
'r': _digest(request),
'e': (now ?? DateTime.now()).add(ttl).millisecondsSinceEpoch,
}));
final mac = _hmac.convert(payload).bytes;
return '${base64Url.encode(payload)}.${base64Url.encode(mac)}';
}