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"))