protected override Task ProcessRequestAsync(HttpWebRequest request, Dictionary <string, object> payload) { if (CanMakeAuthenticatedRequest(payload)) { request.Headers["apisign"] = CryptoUtility.SHA512Sign(request.RequestUri.ToString(), PrivateApiKey.ToUnsecureString()).ToLower(); } return(base.ProcessRequestAsync(request, payload)); }
protected override async Task ProcessRequestAsync(HttpWebRequest request, Dictionary <string, object> payload) { if (CanMakeAuthenticatedRequest(payload)) { string form = CryptoUtility.GetFormForPayload(payload); request.Headers["Key"] = PublicApiKey.ToUnsecureString(); request.Headers["Sign"] = CryptoUtility.SHA512Sign(form, PrivateApiKey.ToUnsecureString()); request.Method = "POST"; await CryptoUtility.WriteToRequestAsync(request, form); } }
protected override async Task ProcessRequestAsync(HttpWebRequest request, Dictionary <string, object> payload) { // Only Private APIs are POST and need Authorization if (CanMakeAuthenticatedRequest(payload) && request.Method == "POST") { var msg = CryptoUtility.GetFormForPayload(payload); var sig = CryptoUtility.SHA512Sign(msg, PrivateApiKey.ToUnsecureString()); request.Headers.Add("Key", PublicApiKey.ToUnsecureString()); request.Headers.Add("Sign", sig.ToLower()); using (Stream stream = await request.GetRequestStreamAsync()) { byte[] content = Encoding.UTF8.GetBytes(msg); stream.Write(content, 0, content.Length); } } }
protected override async Task ProcessRequestAsync(HttpWebRequest request, Dictionary <string, object> payload) { if (CanMakeAuthenticatedRequest(payload)) { // ensure nonce is the last parameter string nonce = payload["nonce"].ToStringInvariant(); payload.Remove("nonce"); var msg = CryptoUtility.GetFormForPayload(payload) + "&nonce=" + nonce; var sig = CryptoUtility.SHA512Sign(msg, CryptoUtility.ToBytes(PrivateApiKey)).ToLower(); request.Headers.Add("Sign", sig); request.Headers.Add("Key", PublicApiKey.ToUnsecureString()); using (Stream stream = await request.GetRequestStreamAsync()) { byte[] content = Encoding.UTF8.GetBytes(msg); stream.Write(content, 0, content.Length); } } }