forked from firka/student-legacy
26 lines
600 B
Dart
26 lines
600 B
Dart
import 'dart:convert';
|
|
import 'package:crypto/crypto.dart';
|
|
|
|
class Nonce {
|
|
String nonce;
|
|
List<int> key;
|
|
String? encoded;
|
|
|
|
Nonce({required this.nonce, required this.key});
|
|
|
|
Future encode(String message) async {
|
|
List<int> messageBytes = utf8.encode(message);
|
|
Hmac hmac = Hmac(sha512, key);
|
|
Digest digest = hmac.convert(messageBytes);
|
|
encoded = base64.encode(digest.bytes);
|
|
}
|
|
|
|
Map<String, String> header() {
|
|
return {
|
|
"X-Authorizationpolicy-Nonce": nonce,
|
|
"X-Authorizationpolicy-Key": encoded ?? "",
|
|
"X-Authorizationpolicy-Version": "v2",
|
|
};
|
|
}
|
|
}
|