public string CreateSignature(X509Certificate2 certificate, IToken token, Uri uri, string verb, string verifier = null) { var oAuthParameters = new OAuthParameters( new ConsumerKey(token.ConsumerKey), new TokenKey(token.ConsumerKey), "RSA-SHA1", new DefaultTimestampSequence(), new DefaultNonceSequence(), string.Empty, "1.0", verifier, token.Session); var signatureBaseString = new SignatureBaseString( new Request { Url = uri, Verb = verb }, oAuthParameters); var signature = new RsaSha1(certificate).Sign(signatureBaseString); oAuthParameters.SetSignature(signature); return(new AuthorizationHeader(oAuthParameters, string.Empty).Value);; }
public Fixture Then_we_can_connect() { var oAuthParameters = new OAuthParameters( _consumer.ConsumerKey, new TokenKey(_consumer.ConsumerKey.Value), "RSA-SHA1", new DefaultTimestampSequence(), new DefaultNonceSequence(), string.Empty, "1.0" ); var earl = new Uri("https://api.xero.com/api.xro/2.0/Organisation"); var signatureBaseString = new SignatureBaseString( new Request { Url = earl, Verb = "GET" }, oAuthParameters ); var signature = new RsaSha1(_cert).Sign(signatureBaseString); oAuthParameters.SetSignature(signature); var header = new AuthorizationHeader(oAuthParameters, string.Empty); var req = (HttpWebRequest)WebRequest.Create(earl); req.Headers.Add("Authorization", header.Value); var response = TInternet.Get(req); const HttpStatusCode expected = HttpStatusCode.OK; var actual = response.StatusCode; return(new YesNoFixture(actual == expected, "Expected [" + expected + "]. Got [" + actual + "]. And here is the body: " + response.Body, 2)); }