getValidApi method
Implementation
ApiKeyData? getValidApi(String? base64Encoded) {
if (base64Encoded == null) return null;
String? jsonObjString = _decryptString(base64Encoded);
if (jsonObjString == null) return null;
Map<String, dynamic> jsonObj = json.decode(jsonObjString);
String? api = jsonObj['api'];
String? id = jsonObj['id'];
String? timestamp = jsonObj['timestamp'];
String? hmac = jsonObj['hmac'];
if (api == null || id == null || timestamp == null || hmac == null) {
return null;
}
DateTime createdAt =
DateTime.fromMillisecondsSinceEpoch(int.parse(timestamp));
// here all the data are available
String message = '$timestamp$api$id';
String generatedHmac = _hmacHandler.generateHmacSignature(message);
bool validHash = generatedHmac == hmac;
if (!validHash) {
return null;
}
var apiData = ApiKeyData(api: api, createdAt: createdAt, id: id);
return apiData;
}