import 'dart:convert'; import 'package:crypto/crypto.dart'; class Nonce { String nonce; List key; String? encoded; Nonce({required this.nonce, required this.key}); Future encode(String message) async { List messageBytes = utf8.encode(message); Hmac hmac = Hmac(sha512, key); Digest digest = hmac.convert(messageBytes); encoded = base64.encode(digest.bytes); } Map header() { return { "X-Authorizationpolicy-Nonce": nonce, "X-Authorizationpolicy-Key": encoded ?? "", "X-Authorizationpolicy-Version": "v2", }; } }