private static string GetCanonicalizedHeadersForStringToSign(IRequest request)
{
List<string> headersToSign = GetHeadersForStringToSign(request);
for (int i = 0; i < headersToSign.Count; i++)
{
headersToSign[i] = headersToSign[i].ToLowerInvariant();
}
SortedDictionary<string,string> sortedHeaderMap = new SortedDictionary<string,string>();
foreach (var entry in request.Headers)
{
if (headersToSign.Contains(entry.Key.ToLowerInvariant()))
{
sortedHeaderMap[entry.Key] = entry.Value;
}
}
StringBuilder builder = new StringBuilder();
foreach (var entry in sortedHeaderMap)
{
builder.Append(entry.Key.ToLowerInvariant());
builder.Append(":");
builder.Append(entry.Value);
builder.Append("\n");
}
return builder.ToString();
}