Difference between revisions of "Template:Json API HMAC Block- CSharp"

From Updox API
Jump to: navigation, search
(Created page with " public static void setHmacHeaders(HttpWebRequest request) { string applicationId = "vendor-id"; string applicationPassword = "vendor-pa...")

Revision as of 12:38, 3 December 2013

       public static void setHmacHeaders(HttpWebRequest request)
       {
           string applicationId = "vendor-id";
           string applicationPassword = "vendor-password";
           string apiSecret = "vendor-private-secret-key"; 
           
           // Create the date string
           String timestampString = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss (zzz)");

           // Build authentication string
           string message = applicationId + ":" + applicationPassword + ":" + timestampString; 
           // Create the athentication hash
           string auth = "HMAC:" + hmacSha1ToBase64(message, apiSecret);
           // Set the request headers
           request.Headers.Add("updox-timestamp", timestampString);
           request.Headers.Add("Authorization", auth);
       }
       public static String hmacSha1ToBase64(String value, String key)
       {
           // Get an hmac_sha1 key from the raw key bytes
           byte[] keyBytes = Encoding.UTF8.GetBytes(key);
           byte[] valueBytes = Encoding.UTF8.GetBytes(value);
           
           
           // Get an hmac_sha1 Mac instance and initialize with the signing key
           HMACSHA1 myhmacsha1 = new HMACSHA1();
           myhmacsha1.Key = keyBytes;
           byte[] final = myhmacsha1.ComputeHash(valueBytes);
           // Covert array of Hex bytes to a String
           return Convert.ToBase64String(final);
       }