Newer
Older
using System.Security.Cryptography;
using System.Text;
namespace FitConnect;
/// <summary>
/// This class contains all security related methods that can be changed due to future
/// security issues or decisions from the BSI.
public const int MaxCallbackAge = 5;
public const string CallbackTimestamp = "callback-timestamp";
public const string CallbackAuthentication = "callback-authentication";
public const string PackageVersion = "0.9.3-beta.2";
public static string CommitId => GetCommitId() ?? "development";
private static string? GetCommitId() {
return JsonHelper.LoadContentOfResource("commitId.tmp").Trim();
public static byte[] CalculateCallbackHmac(string callbackSecret, long timestamp, string body) {
return new HMACSHA512(Encoding.UTF8.GetBytes(callbackSecret))
.ComputeHash(Encoding.UTF8.GetBytes($"{timestamp}.{body}"));
}
}