private String getSignature() { if (signature == null) { signature = Rfc3986.Encode(getConsumerSecret()) + '&' + Rfc3986.Encode(getTokenSecret()); } return(signature); }
public string ComputeSignature(string signatureBase, string consumerSecret, string tokenSecret) { using (HMACSHA1 crypto = new HMACSHA1()) { string key = Rfc3986.Encode(consumerSecret) + "&" + Rfc3986.Encode(tokenSecret); crypto.Key = Encoding.ASCII.GetBytes(key); string hash = Convert.ToBase64String(crypto.ComputeHash(Encoding.ASCII.GetBytes(signatureBase))); crypto.Clear(); return(hash); } }
public ComparableParameter(OAuth.Parameter value) { this.value = value; String n = ToString(value.Key); String v = ToString(value.Value); key = Rfc3986.Encode(n) + ' ' + Rfc3986.Encode(v); // ' ' is used because it comes before any character // that can appear in a percentEncoded string. }
public static string Serialize(OAuthToken token) { if (token == null) { throw new ArgumentNullException("token"); } return("[" + Rfc3986.Encode(Enum.Format(typeof(TokenType), token.Type, "G")) + "|" + Rfc3986.Encode(token.Token) + "|" + Rfc3986.Encode(token.Secret) + "|" + Rfc3986.Encode(token.ConsumerKey) + "]"); }
public void Test_AuthCore1_0_Section9_4_1_EmptyToken() { string sigBase = string.Empty; string consumerSecret = "djr9rjt0jd78jf88"; string tokenSecret = string.Empty; PlaintextSigningProvider signingProvider = new PlaintextSigningProvider(false); Assert.That(signingProvider.SignatureMethod, Is.EqualTo("PLAINTEXT")); string hash = Rfc3986.Encode(signingProvider.ComputeSignature(sigBase, consumerSecret, tokenSecret)); Assert.That(hash, Is.EqualTo("djr9rjt0jd78jf88%26")); }
public string ToNormalizedString(params string[] excludedParameters) { List <KeyValuePair <string, string> > @params = new List <KeyValuePair <string, string> >(); // Add OAuth parameters whose values are not null except excluded parameters foreach (string param in parameters.Keys) { if (parameters[param] != null && Array.IndexOf(excludedParameters, param) < 0) { @params.Add(new KeyValuePair <string, string>(Rfc3986.Encode(param), Rfc3986.Encode(parameters[param]))); } } // Add all additional parameters foreach (var param in additionalParameters.AllKeys) { foreach (var value in additionalParameters.GetValues(param) ?? new string[] { }) { @params.Add(new KeyValuePair <string, string>(Rfc3986.Encode(param), Rfc3986.Encode(value))); } } // Sort parameters into lexicographic order (by key and value) @params.Sort(CompareKeys); // Concatenate and encode string equals = "="; string ampersand = "&"; StringBuilder parms = new StringBuilder(); bool first = true; foreach (var pair in @params) { if (first) { first = false; } else { parms.Append(ampersand); } parms.Append(pair.Key).Append(equals).Append(pair.Value); } return(parms.ToString()); }
public string ComputeSignature(string signatureBase, string consumerSecret, string tokenSecret) { StringBuilder signature = new StringBuilder(); if (!String.IsNullOrEmpty(consumerSecret)) { signature.Append(Rfc3986.Encode(consumerSecret)); } signature.Append("&"); if (!String.IsNullOrEmpty(tokenSecret)) { signature.Append(Rfc3986.Encode(tokenSecret)); } return(signature.ToString()); }
private static void EncodeHeaderValue(StringBuilder buffer, string key, string value, string separator, bool quote) { buffer.Append(separator); buffer.Append(Rfc3986.Encode(key)); buffer.Append("="); if (quote) { buffer.Append('"'); } buffer.Append(Rfc3986.Encode(value)); if (quote) { buffer.Append('"'); } }
public ParametersAbsentException(string message, string[] parameters) : base(message, OAuthProblemTypes.ParameterAbsent) { this.parameters = parameters; StringBuilder sb = new StringBuilder(); for (int i = 0; i < parameters.Length; i++) { sb.Append(Rfc3986.Encode(parameters[i])); if (i < parameters.Length - 1) { sb.Append("&"); } } AddParameter(OAuthErrorParameterKeys.ParametersAbsent, sb.ToString()); }
private byte[] computeSignature(String baseString) { byte[] _key; lock (this) { if (key == null) { String keyString = Rfc3986.Encode(getConsumerSecret()) + "&" + Rfc3986.Encode(getTokenSecret()); key = Encoding.GetEncoding(ENCODING).GetBytes(keyString); } _key = key; } using (HMACSHA1 crypto = new HMACSHA1()) { crypto.Key = _key; byte[] hash = crypto.ComputeHash(Encoding.GetEncoding(ENCODING).GetBytes(baseString)); crypto.Clear(); return(hash); } }
/** * Builds the URL the client needs to visit to approve access. */ private void buildAznUrl() { // At some point we can be clever and use a callback URL to improve // the user experience, but that's too complex for now. OAuthAccessor accessor = accessorInfo.getAccessor(); StringBuilder azn = new StringBuilder( accessor.consumer.serviceProvider.userAuthorizationURL); if (azn.ToString().IndexOf("?") == -1) { azn.Append('?'); } else { azn.Append('&'); } azn.Append(OAuth.OAUTH_TOKEN); azn.Append('='); azn.Append(Rfc3986.Encode(accessor.requestToken)); responseParams.setAznUrl(azn.ToString()); }
public static string Create(string httpMethod, Uri requestUrl, OAuthParameters parameters) { StringBuilder sigbase = new StringBuilder(); // Http header sigbase.Append(Rfc3986.Encode(httpMethod)).Append("&"); // Normalized request URL sigbase.Append(Rfc3986.Encode(requestUrl.Scheme)); sigbase.Append(Rfc3986.Encode("://")); sigbase.Append(Rfc3986.Encode(requestUrl.Authority.ToLowerInvariant())); sigbase.Append(Rfc3986.Encode(requestUrl.AbsolutePath)); sigbase.Append("&"); // Normalized parameters sigbase.Append( Rfc3986.Encode(parameters.ToNormalizedString(OAuthParameterKeys.Realm, OAuthParameterKeys.Signature, OAuthParameterKeys.TokenSecret))); return(sigbase.ToString()); }
public static String getBaseString(OAuthMessage message) { List <OAuth.Parameter> parameters; String url = message.URL; int q = url.IndexOf('?'); if (q < 0) { parameters = message.getParameters(); } else { // Combine the URL query string with the other parameters: parameters = new List <OAuth.Parameter>(); parameters.AddRange(OAuth.decodeForm(url.Substring(q + 1))); parameters.AddRange(message.getParameters()); url = url.Substring(0, q); } return(Rfc3986.Encode(message.method.ToUpper()) + '&' + Rfc3986.Encode(normalizeUrl(url)) + '&' + Rfc3986.Encode(normalizeParameters(parameters))); }
private static String getAuthorizationHeader(IEnumerable <OAuth.Parameter> oauthParams) { StringBuilder result = new StringBuilder("OAuth "); bool first = true; foreach (var parameter in oauthParams) { if (!first) { result.Append(", "); } else { first = false; } result.Append(Rfc3986.Encode(parameter.Key)) .Append("=\"") .Append(Rfc3986.Encode(parameter.Value)) .Append('"'); } return(result.ToString()); }
//TODO: No anda todavia!! private HttpWebResponse GetContacts() { yahooAccessToken = (string[])HttpContext.Current.Session["Yahoo_AccessToken"]; Uri RequestContactBaseUri = new Uri("http://social.yahooapis.com/v1/user/" + YGuid + "/contacts"); int timestamp = Common.GetTimestamp(); OAuthParameters parameters = new OAuthParameters(); parameters.ConsumerKey = apiKey; parameters.Nonce = new GuidNonceProvider().GenerateNonce(timestamp); parameters.SignatureMethod = "HMAC-SHA1"; parameters.Timestamp = timestamp.ToString(CultureInfo.InvariantCulture); parameters.Token = Rfc3986.Decode(AccessToken); parameters.Version = "1.0"; parameters.AdditionalParameters.Add("format", "xml"); string sigBase = SignatureBase.Create("GET", RequestContactBaseUri, parameters); HmacSha1SigningProvider singProvier = new HmacSha1SigningProvider(); parameters.Signature = singProvier.ComputeSignature( sigBase, (secret), Rfc3986.Encode(AccessTokenSecret)); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://social.yahooapis.com/v1/user/" + YGuid + "/contacts?view=tinyusercard"); request.CookieContainer = new CookieContainer(); request.Headers["WWW-Authenticate"] = " OAuth realm='yahooapis.com',"; request.Headers["WWW-Authenticate"] += " oauth_consumer_key='" + parameters.ConsumerKey + "',"; request.Headers["WWW-Authenticate"] += " oauth_nonce='" + parameters.Nonce + "',"; request.Headers["WWW-Authenticate"] += " oauth_signature_method='" + parameters.SignatureMethod + "',"; request.Headers["WWW-Authenticate"] += " oauth_timestamp='" + parameters.Timestamp + "',"; request.Headers["WWW-Authenticate"] += " oauth_token='" + token + "',"; request.Headers["WWW-Authenticate"] += " oauth_version='" + parameters.Version + "',"; request.Headers["WWW-Authenticate"] += " oauth_signature='" + parameters.Signature + "'"; request.Method = "GET"; request.ContentType = "application/xml; charset=utf-8"; return((HttpWebResponse)request.GetResponse()); }
public void TestDashDotUnderscoreTilde() { Assert.That(Rfc3986.Encode("-._~"), Is.EqualTo("-._~")); }
public void TestPercent() { Assert.That(Rfc3986.Encode("%"), Is.EqualTo("%25")); }
public void TestAmpersandEqualsAsterisk() { Assert.That(Rfc3986.Encode("&=*"), Is.EqualTo("%26%3D%2A")); }
public void Test_EncodePlusCharacter() { string value = Rfc3986.Encode("123+regerg"); Assert.That(value, Is.EqualTo("123%2Bregerg")); }
public void TestUnicodeU3001() { Assert.That(Rfc3986.Encode("\u3001"), Is.EqualTo("%E3%80%81")); }
public void TestUnicodeU0080() { Assert.That(Rfc3986.Encode("\u0080"), Is.EqualTo("%C2%80")); }
public void TestUnicodeU007F() { Assert.That(Rfc3986.Encode("\u007F"), Is.EqualTo("%7F")); }
public void TestAlphanumerics() { Assert.That(Rfc3986.Encode("abcABC123"), Is.EqualTo("abcABC123")); }
public void Test_GoogleRequestTokenUrlScopeValue_Encode() { string googleurl = Rfc3986.Encode("http://www.google.com/m8/feeds"); Assert.That(googleurl, Is.EqualTo("http%3A%2F%2Fwww.google.com%2Fm8%2Ffeeds")); }
public void TestPlus() { Assert.That(Rfc3986.Encode("+"), Is.EqualTo("%2B")); }