public Dictionary<String, String> RefreshSignParameters(Dictionary<String, String> parameters, ISigner signer, String accessKeyId, FormatType? format) { Dictionary<String, String> immutableMap = new Dictionary<String, String>(parameters); DictionaryUtil.Add(immutableMap, "Timestamp", ParameterHelper.FormatIso8601Date(DateTime.Now)); DictionaryUtil.Add(immutableMap, "SignatureMethod", signer.SignerName); DictionaryUtil.Add(immutableMap, "SignatureVersion", signer.SignerVersion); DictionaryUtil.Add(immutableMap, "SignatureNonce", Guid.NewGuid().ToString()); DictionaryUtil.Add(immutableMap, "AccessKeyId", accessKeyId); DictionaryUtil.Add(immutableMap, "Format", format.ToString()); return immutableMap; }
public string ComposeStringToSign(MethodType? method, string uriPattern, ISigner signer, Dictionary<string, string> queries, Dictionary<string, string> headers, Dictionary<string, string> paths) { var sortedDictionary = SortDictionary(queries); StringBuilder canonicalizedQueryString = new StringBuilder(); foreach (var p in sortedDictionary) { canonicalizedQueryString.Append("&") .Append(AcsURLEncoder.PercentEncode(p.Key)).Append("=") .Append(AcsURLEncoder.PercentEncode(p.Value)); } StringBuilder stringToSign = new StringBuilder(); stringToSign.Append(method.ToString()); stringToSign.Append(SEPARATOR); stringToSign.Append(AcsURLEncoder.PercentEncode("/")); stringToSign.Append(SEPARATOR); stringToSign.Append(AcsURLEncoder.PercentEncode( canonicalizedQueryString.ToString().Substring(1))); return stringToSign.ToString(); }
public ISigner GetSigner() { if (null == isigner) { isigner = new ShaHmac1(); } return isigner; }