namespace signalvine
{
class SignatureService
{
public string buildString(string token, DateTime timestamp, string httpVerb, string path, Json body) {
var JavascriptSerializer = new jsSerializer();
var bodyStr = jsSerailizer.serialize(body);
val sb = new StringBuilder();
sb.append(token.toLower());
sb.appendLine();
sb.append(httpVerb.toLower());
sb.appendLine();
sb.append(path.toLower());
sb.appendLine();
sb.append(bodyStr.toLower());
sb.appendLine();
sb.appendLine(timestamp.toString("o").toLower());
return sb.toString();
}
public string sign(string token, string secret, DateTime timestamp, string httpVerb, string path, Json body) {
var stringToSign = buildString(token, timestamp, httpVerb, path, body);
var key = Encoding.UTF8.getBytes(secret);
var val = Encoding.UTF8.getBytes(stringToSign);
var encoder = new HMACSHA256(secretBytes);
var signature = encoder.ComputeHash(key, val);
return Convert.ToBase64String(signature)
}
}
}
Have more questions? Submit a request
Comments
Please sign in to leave a comment.