internal override IDictionary <string, string> GetSignature(HttpRequest request, HttpContext context, IHeaders iheaders) { CommonUtil.AddHeader(request, iheaders.ContentSha256Header(), ContentSha256); IDictionary <string, string> tempDict = new Dictionary <string, string>(); foreach (KeyValuePair <string, string> entry in request.Headers) { if (string.IsNullOrEmpty(entry.Key)) { continue; } tempDict.Add(entry.Key.Trim().ToLower(), entry.Value); } List <string> signedHeadersList = V4Signer.GetSignedHeaderList(tempDict); string signedHeaders = V4Signer.GetSignedHeaders(signedHeadersList); IDictionary <string, string> dateDict = V4Signer.GetLongDateAndShortDate(request, iheaders); string signature = GetTemporarySignature(request, context, iheaders, dateDict, signedHeaders, tempDict, signedHeadersList, ContentSha256); IDictionary <string, string> ret = new Dictionary <string, string>(); ret.Add("Signature", signature); ret.Add("ShortDate", dateDict["ShortDate"]); ret.Add("SignedHeaders", signedHeaders); return(ret); }