/// <exception cref="System.IO.IOException"></exception> private void Authorize(HttpURLConnection c) { IDictionary<string, IList<string>> reqHdr = c.GetRequestProperties(); SortedDictionary<string, string> sigHdr = new SortedDictionary<string, string>(); foreach (KeyValuePair<string, IList<string>> entry in reqHdr.EntrySet()) { string hdr = entry.Key; if (IsSignedHeader(hdr)) { sigHdr.Put(StringUtils.ToLowerCase(hdr), ToCleanString(entry.Value)); } } StringBuilder s = new StringBuilder(); s.Append(c.GetRequestMethod()); s.Append('\n'); s.Append(Remove(sigHdr, "content-md5")); s.Append('\n'); s.Append(Remove(sigHdr, "content-type")); s.Append('\n'); s.Append(Remove(sigHdr, "date")); s.Append('\n'); foreach (KeyValuePair<string, string> e in sigHdr.EntrySet()) { s.Append(e.Key); s.Append(':'); s.Append(e.Value); s.Append('\n'); } string host = c.GetURL().GetHost(); s.Append('/'); s.Append(Sharpen.Runtime.Substring(host, 0, host.Length - DOMAIN.Length - 1)); s.Append(c.GetURL().AbsolutePath); string sec; try { Mac m = Mac.GetInstance(HMAC); m.Init(privateKey); sec = Base64.EncodeBytes(m.DoFinal(Sharpen.Runtime.GetBytesForString(s.ToString() , "UTF-8"))); } catch (NoSuchAlgorithmException e_1) { throw new IOException(MessageFormat.Format(JGitText.Get().noHMACsupport, HMAC, e_1 .Message)); } catch (InvalidKeyException e_1) { throw new IOException(MessageFormat.Format(JGitText.Get().invalidKey, e_1.Message )); } c.SetRequestProperty("Authorization", "AWS " + publicKey + ":" + sec); }
/// <exception cref="System.IO.IOException"></exception> internal override void ConfigureRequest(HttpURLConnection conn) { IDictionary<string, string> r = new LinkedHashMap<string, string>(); string realm = @params.Get("realm"); string nonce = @params.Get("nonce"); string cnonce = @params.Get("cnonce"); string uri = Uri(conn.GetURL()); string qop = @params.Get("qop"); string method = conn.GetRequestMethod(); string A1 = user + ":" + realm + ":" + pass; string A2 = method + ":" + uri; r.Put("username", user); r.Put("realm", realm); r.Put("nonce", nonce); r.Put("uri", uri); string response; string nc; if ("auth".Equals(qop)) { nc = string.Format("%08x", ++requestCount); response = KD(H(A1), nonce + ":" + nc + ":" + cnonce + ":" + qop + ":" + H(A2)); } else { nc = null; response = KD(H(A1), nonce + ":" + H(A2)); } r.Put("response", response); if (@params.ContainsKey("algorithm")) { r.Put("algorithm", "MD5"); } if (cnonce != null && qop != null) { r.Put("cnonce", cnonce); } if (@params.ContainsKey("opaque")) { r.Put("opaque", @params.Get("opaque")); } if (qop != null) { r.Put("qop", qop); } if (nc != null) { r.Put("nc", nc); } StringBuilder v = new StringBuilder(); foreach (KeyValuePair<string, string> e in r.EntrySet()) { if (v.Length > 0) { v.Append(", "); } v.Append(e.Key); v.Append('='); v.Append('"'); v.Append(e.Value); v.Append('"'); } conn.SetRequestProperty(HttpSupport.HDR_AUTHORIZATION, NAME + " " + v); }
/// <exception cref="System.IO.IOException"></exception> internal override void ConfigureRequest(HttpURLConnection conn) { IDictionary<string, string> p = new Dictionary<string, string>(@params); p.Put("username", user); string realm = p.Get("realm"); string nonce = p.Get("nonce"); string uri = p.Get("uri"); string qop = p.Get("qop"); string method = conn.GetRequestMethod(); string A1 = user + ":" + realm + ":" + pass; string A2 = method + ":" + uri; string expect; if ("auth".Equals(qop)) { string c = p.Get("cnonce"); string nc = string.Format("%08x", ++requestCount); p.Put("nc", nc); expect = KD(H(A1), nonce + ":" + nc + ":" + c + ":" + qop + ":" + H(A2)); } else { expect = KD(H(A1), nonce + ":" + H(A2)); } p.Put("response", expect); StringBuilder v = new StringBuilder(); foreach (KeyValuePair<string, string> e in p.EntrySet()) { if (v.Length > 0) { v.Append(", "); } v.Append(e.Key); v.Append('='); v.Append('"'); v.Append(e.Value); v.Append('"'); } conn.SetRequestProperty(HttpSupport.HDR_AUTHORIZATION, NAME + " " + v); }
/// <exception cref="System.IO.IOException"></exception> internal override void ConfigureRequest(HttpURLConnection conn) { string ident = user + ":" + pass; string enc = Base64.EncodeBytes(Sharpen.Runtime.GetBytesForString(ident, "UTF-8") ); conn.SetRequestProperty(HttpSupport.HDR_AUTHORIZATION, NAME + " " + enc); }
internal override void Request(HttpURLConnection u, string prefix) { u.SetRequestProperty(prefix + JETS3T_CRYPTO_VER, "2"); u.SetRequestProperty(prefix + JETS3T_CRYPTO_ALG, algorithmName); }