def test_normalized_request_string_with_custom_port(self): req = "GET / HTTP/1.1\r\nHost: example.com:88\r\n\r\n" req = Request.from_string(req) req.authorization = ("MAC", {"ts": "1", "nonce": "2"}) sigstr = "1\n2\nGET\n/\nexample.com\n88\n\n" mysigstr = get_normalized_request_string(req) self.assertEquals(sigstr, mysigstr)
def test_normalized_request_string_with_https_scheme(self): req = "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" req = Request.from_string(req) req.authorization = ("MAC", {"ts": "1", "nonce": "2"}) req.scheme = "https" sigstr = "1\n2\nGET\n/\nexample.com\n443\n\n" mysigstr = get_normalized_request_string(req) self.assertEquals(sigstr, mysigstr)
def test_get_mac_signature_against_example_from_spec(self): # This is the example used in Section 1.1 of RFC-TODO req = "GET /resource/1?b=1&a=2 HTTP/1.1\r\n" "Host: example.com\r\n" "\r\n" params = {"id": "h480djs93hd8", "ts": "1336363200", "nonce": "dj83hs9s"} secret = "489dks293j39" sigstr = "1336363200\n" "dj83hs9s\n" "GET\n" "/resource/1?b=1&a=2\n" "example.com\n" "80\n" "\n" sig = "bhCQXTVyfj5cmA9uKkPFx1zeOXM=" req = Request.from_string(req) mysigstr = get_normalized_request_string(req, params) self.assertEquals(sigstr, mysigstr) mysig = get_mac_signature(req, secret, params)
def test_normalized_request_string_against_example_from_spec(self): # This is the example used in Section 3.2.1 of RFC-TODO req = "POST /request?b5=%3D%253D&a3=a&c%40=&a2=r%20b&c2&a3=2+q"\ " HTTP/1.1\r\n"\ "Host: example.com\r\n"\ "\r\n"\ "Hello World!" params = { "ts": "264095", "nonce": "7d8f3e4a", "ext": "a,b,c", } sigstr = "264095\n"\ "7d8f3e4a\n"\ "POST\n"\ "/request?b5=%3D%253D&a3=a&c%40=&a2=r%20b&c2&a3=2+q\n"\ "example.com\n"\ "80\n"\ "a,b,c\n" # IanB, *thank you* for Request.from_string! req = Request.from_string(req) mysigstr = get_normalized_request_string(req, params) self.assertEquals(sigstr, mysigstr)
def test_get_mac_signature_against_example_from_spec(self): # This is the example used in Section 1.1 of RFC-TODO req = "GET /resource/1?b=1&a=2 HTTP/1.1\r\n"\ "Host: example.com\r\n"\ "\r\n" params = { "id": "h480djs93hd8", "ts": "1336363200", "nonce": "dj83hs9s" } secret = "489dks293j39" sigstr = "1336363200\n"\ "dj83hs9s\n"\ "GET\n"\ "/resource/1?b=1&a=2\n"\ "example.com\n"\ "80\n"\ "\n" sig = "bhCQXTVyfj5cmA9uKkPFx1zeOXM=" req = Request.from_string(req) mysigstr = get_normalized_request_string(req, params) self.assertEquals(sigstr, mysigstr) mysig = get_mac_signature(req, secret, params)
def test_normalized_request_string_against_example_from_spec(self): # This is the example used in Section 3.2.1 of RFC-TODO req = ( "POST /request?b5=%3D%253D&a3=a&c%40=&a2=r%20b&c2&a3=2+q" " HTTP/1.1\r\n" "Host: example.com\r\n" "\r\n" "Hello World!" ) params = {"ts": "264095", "nonce": "7d8f3e4a", "ext": "a,b,c"} sigstr = ( "264095\n" "7d8f3e4a\n" "POST\n" "/request?b5=%3D%253D&a3=a&c%40=&a2=r%20b&c2&a3=2+q\n" "example.com\n" "80\n" "a,b,c\n" ) # IanB, *thank you* for Request.from_string! req = Request.from_string(req) mysigstr = get_normalized_request_string(req, params) self.assertEquals(sigstr, mysigstr)