From 6b415c19f2b862bb22c96edd87f6a2208dc404d0 Mon Sep 17 00:00:00 2001 From: Andrey Kislyuk Date: Sat, 25 Apr 2020 14:02:22 -0700 Subject: [PATCH] Fix handling of readme example Fixes #5 --- requests_http_signature/__init__.py | 2 +- test/test.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/requests_http_signature/__init__.py b/requests_http_signature/__init__.py index 9ebb4d6..b7336d7 100644 --- a/requests_http_signature/__init__.py +++ b/requests_http_signature/__init__.py @@ -98,7 +98,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase): self.add_date(request) self.add_digest(request) raw_sig = Crypto(self.algorithm).sign(string_to_sign=self.get_string_to_sign(request, self.headers), - key=self.key, + key=self.key.encode() if isinstance(self.key, str) else self.key, passphrase=self.passphrase) sig = base64.b64encode(raw_sig).decode() sig_struct = [("keyId", self.key_id), diff --git a/test/test.py b/test/test.py index c7f0d25..b08c016 100755 --- a/test/test.py +++ b/test/test.py @@ -43,6 +43,12 @@ class TestRequestsHTTPSignature(unittest.TestCase): self.session = requests.Session() self.session.mount("http://", TestAdapter(self)) + def test_readme_example(self): + preshared_key_id = 'squirrel' + preshared_secret = 'monorail_cat' + url = 'http://example.com/path' + requests.get(url, auth=HTTPSignatureAuth(key=preshared_secret, key_id=preshared_key_id)) + def test_basic_statements(self): url = 'http://example.com/path?query#fragment' self.session.get(url, auth=HTTPSignatureAuth(key=hmac_secret, key_id="sekret"))