Ejemplo n.º 1
0
        public void TestSignRequestToken()
        {
            var cert = new X509Certificate2("XeroApiNet-Sample.pfx", "password");

            var consumerContext = new OAuthConsumerContext
            {
                // Partner and Private apps use RSA-SHA1 signing method
                SignatureMethod = SignatureMethod.RsaSha1,
                UseHeaderForOAuthParameters = true,

                // Urls
                RequestTokenUri = null,
                UserAuthorizeUri = null,
                AccessTokenUri = XeroApiEndpoints.PublicAccessTokenUri,
                BaseEndpointUri = XeroApiEndpoints.PublicBaseEndpointUri,

                Key = cert.PrivateKey,
                ConsumerKey = ConsumerKey,
                ConsumerSecret = string.Empty,
                UserAgent = UserAgent,
            };

            var oauthContext = new OAuthContext
            {
                RequestMethod = "POST",
                RawUri = new Uri("https://photos.example.net/request_token"),
                ConsumerKey = "dpf43f3p2l4k3l03",
                SignatureMethod = SignatureMethod.RsaSha1,
                Timestamp = "1191242090",
                Nonce = "hsu94j3884jdopsl",
                Version = "1.0"
            };

            var signatureBase = oauthContext.GenerateSignatureBase();
            consumerContext.Signer.SignContext(oauthContext,
                                               new SigningContext
                                               {
                                                   Algorithm = consumerContext.Key,
                                                   ConsumerSecret = null,
                                                   SignatureBase = signatureBase
                                               });

            Assert.That(oauthContext.Signature, Is.EqualTo("aIIAFPjD0uavubFeL/Hz4LSV6NsvAbrvfnPF6OcgGfhML5ezO0+E+tofLgp1SHbLyNFM7D1p/SJN1J4MY7T3HzvM8HX+3u5Q+Ui+en0/ewHZ+3ar6BA7r3zOYqDn8rfCGSnweia3fFYmjkeS8NvKShnewUu0jUFbnG4RXw8BiEk="));
        }
		public void generate_signature_when_token_is_url_encoded()
		{
			var context = new OAuthContext
			              	{
			              		RequestMethod = "GET",
			              		RawUri = new Uri("https://www.google.com/m8/feeds/contacts/default/base"),
			              		Token = "1/2",
			              		ConsumerKey = "context",
			              		SignatureMethod = SignatureMethod.RsaSha1
			              	};

			Assert.Equal(
				"GET&https%3A%2F%2Fwww.google.com%2Fm8%2Ffeeds%2Fcontacts%2Fdefault%2Fbase&oauth_consumer_key%3Dcontext%26oauth_signature_method%3DRSA-SHA1%26oauth_token%3D1%252F2",
				context.GenerateSignatureBase());

			Assert.Equal(
				"https://www.google.com/m8/feeds/contacts/default/base?oauth_token=1%2F2&oauth_consumer_key=context&oauth_signature_method=RSA-SHA1",
				context.GenerateUrl());
		}
		public void generate_signature_with_hello_world_body()
		{
			// generate a signature base, as per the oauth body hash spec example
			// http://oauth.googlecode.com/svn/spec/ext/body_hash/1.0/oauth-bodyhash.html

			var context = new OAuthContext
			              	{
			              		RequestMethod = "POST",
			              		RawUri = new Uri("http://www.example.com/resource"),
			              		RawContentType = "text/plain",
			              		RawContent = Encoding.UTF8.GetBytes("Hello World!"),
			              		ConsumerKey = "consumer",
			              		SignatureMethod = "HMAC-SHA1",
			              		Timestamp = "1236874236",
			              		Version = "1.0",
			              		IncludeOAuthRequestBodyHashInSignature = true,
			              		Nonce = "10369470270925",
			              		Token = "token"
			              	};

			Assert.Equal(
				"POST&http%3A%2F%2Fwww.example.com%2Fresource&oauth_body_hash%3DLve95gjOVATpfV8EL5X4nxwjKHE%253D%26oauth_consumer_key%3Dconsumer%26oauth_nonce%3D10369470270925%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1236874236%26oauth_token%3Dtoken%26oauth_version%3D1.0",
				context.GenerateSignatureBase());
		}
Ejemplo n.º 4
0
        public void TestSignAccessToken()
        {
            var cert = new X509Certificate2("XeroApiNet-Sample.pfx", "password");
            
            var consumerContext = new OAuthConsumerContext
            {
                // Partner and Private apps use RSA-SHA1 signing method
                SignatureMethod = SignatureMethod.RsaSha1,
                UseHeaderForOAuthParameters = true,

                // Urls
                RequestTokenUri = null,
                UserAuthorizeUri = null,
                AccessTokenUri = XeroApiEndpoints.PublicAccessTokenUri,
                BaseEndpointUri = XeroApiEndpoints.PublicBaseEndpointUri,

                Key = cert.PrivateKey,
                ConsumerKey = ConsumerKey,
                ConsumerSecret = string.Empty,
                UserAgent = UserAgent,
            };

            var oauthContext = new OAuthContext
                {
                    RequestMethod = "POST",
                    RawUri = new Uri("https://photos.example.net/access_token"),
                    ConsumerKey = "dpf43f3p2l4k3l03",
                    SignatureMethod = SignatureMethod.RsaSha1,
                    Timestamp = "1191242090",
                    Token = "hh5s93j4hdidpola",
                    TokenSecret = "hdhd0244k9j7ao03",
                    Nonce = "hsu94j3884jdopsl",
                    Verifier = "hfdp7dh39dks9884",
                    Version = "1.0"
                };

            var signatureBase = oauthContext.GenerateSignatureBase();
            consumerContext.Signer.SignContext(oauthContext,
                                               new SigningContext
                                                   {
                                                       Algorithm = consumerContext.Key,
                                                       ConsumerSecret = null,
                                                       SignatureBase = signatureBase
                                                   });

            Assert.That(oauthContext.Signature, Is.EqualTo("32vGleSAIeMbgW9E0pC+PUkyZ1Y05zuEd+FZwg+w4jZzj3E1zldbrGY5SnVpypZfjixWuHMtV4mwGwptwiTZRkrLBudWqJDEddvlwuIMY1j6WkQulz/IXzbGuPNgTya/KTEhQ5IExJXCKE1LZ9bNsMXBDpyi7/ayZe9ONqoVzS8="));
        }
    public void generate_signature_with_xauth()
    {
      // generate a signature base, as per the twitter example
      // http://dev.twitter.com/pages/xauth

      var context = new OAuthContext
      {
        RawUri = new Uri("https://api.twitter.com/oauth/access_token"),
        RequestMethod = "POST",
        ConsumerKey = "JvyS7DO2qd6NNTsXJ4E7zA",
        SignatureMethod = "HMAC-SHA1",
        Timestamp = "1284565601",
        Version = "1.0",
        Nonce = "6AN2dKRzxyGhmIXUKSmp1JcB4pckM8rD3frKMTmVAo",
        XAuthMode = "client_auth",
        XAuthUsername = "******",
        XAuthPassword = "******"
      };

      Assert.Equal(
        "POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Faccess_token&oauth_consumer_key%3DJvyS7DO2qd6NNTsXJ4E7zA%26oauth_nonce%3D6AN2dKRzxyGhmIXUKSmp1JcB4pckM8rD3frKMTmVAo%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1284565601%26oauth_version%3D1.0%26x_auth_mode%3Dclient_auth%26x_auth_password%3Dtwitter-xauth%26x_auth_username%3Doauth_test_exec",
        context.GenerateSignatureBase());
    }