Signature example in C#

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)
    }
  }
}
Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

Comments

0 comments

Please sign in to leave a comment.