Difference between revisions of "Template:Json API HMAC Block- CSharp"
From Updox API
Line 5: | Line 5: | ||
string applicationId = "vendor-id"; | string applicationId = "vendor-id"; | ||
string applicationPassword = "vendor-password"; | string applicationPassword = "vendor-password"; | ||
+ | string accountId = "accountId"; | ||
+ | string userId = "userId"; | ||
string apiSecret = "vendor-private-secret-key"; | string apiSecret = "vendor-private-secret-key"; | ||
Line 11: | Line 13: | ||
// Build authentication string | // Build authentication string | ||
− | string message = applicationId + ":" + applicationPassword + ":" + timestampString; | + | string message = applicationId + ":" + applicationPassword + ":" + accountId + ":" + userId + ":" + timestampString; |
// Create the athentication hash | // Create the athentication hash |
Revision as of 11:35, 28 January 2014
public void setHmacHeaders(HttpWebRequest request) { string applicationId = "vendor-id"; string applicationPassword = "vendor-password"; string accountId = "accountId"; string userId = "userId"; 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 + ":" + accountId + ":" + userId + ":" + timestampString; // Create the athentication hash string auth = "HMAC " + hmacSha1ToBase64(message, apiSecret); //space after HMAC is intentional // Set the request headers request.Headers.Add("updox-timestamp", timestampString); request.Headers.Add("Authorization", auth); } public 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); }