Difference between revisions of "Template:Json API HMAC Block- CSharp"
From Updox API
(One intermediate revision by one user not shown) | |||
Line 10: | Line 10: | ||
// Create the date string | // Create the date string | ||
− | String timestampString = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss | + | String timestampString = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss") + " (GMT)" |
// Build authentication string | // Build authentication string | ||
− | string message = applicationId + ":" + applicationPassword + ":" + accountId + ":" + userId + ":" + timestampString; | + | string message = |
+ | applicationId + ":" + | ||
+ | applicationPassword + ":" + | ||
+ | accountId + ":" + | ||
+ | userId + ":" + | ||
+ | timestampString; | ||
− | // Create the athentication hash | + | // Create the athentication hash - note the intentional <space> after HMAC |
− | string auth = "HMAC " + hmacSha1ToBase64(message, apiSecret); // | + | string auth = "HMAC " + hmacSha1ToBase64(message, apiSecret); // |
// Set the request headers | // Set the request headers |
Latest revision as of 15:37, 5 February 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") + " (GMT)" // Build authentication string string message = applicationId + ":" + applicationPassword + ":" + accountId + ":" + userId + ":" + timestampString; // Create the athentication hash - note the intentional <space> after HMAC string auth = "HMAC " + hmacSha1ToBase64(message, apiSecret); // // 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); }