diff --git a/requests_http_message_signatures/__init__.py b/requests_http_message_signatures/__init__.py index b1f681fee0a73788a55e08f1198f0665d5dc51d4..8e1f5b913d363674b8adad68f70091825f24d730 100644 --- a/requests_http_message_signatures/__init__.py +++ b/requests_http_message_signatures/__init__.py @@ -112,7 +112,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase): @classmethod def get_string_to_sign( - self, request, headers, created_timestamp, expires_timestamp + cls, request, headers, created_timestamp, expires_timestamp ): sts = [] for header in headers: @@ -180,7 +180,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase): return request @classmethod - def get_sig_struct(self, request, scheme="Authorization"): + def get_sig_struct(cls, request, scheme="Authorization"): sig_struct = request.headers[scheme] if scheme == "Authorization": sig_struct = sig_struct.split(" ", 1)[1] @@ -190,7 +190,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase): } @classmethod - def verify(self, request, key_resolver, scheme="Authorization"): + def verify(cls, request, key_resolver, scheme="Authorization"): if scheme == "Authorization": assert "Authorization" in request.headers, "No Authorization header found" msg = ( @@ -204,13 +204,13 @@ class HTTPSignatureAuth(requests.auth.AuthBase): 'Unknown signature scheme "{}"'.format(scheme) ) - sig_struct = self.get_sig_struct(request, scheme=scheme) + sig_struct = cls.get_sig_struct(request, scheme=scheme) for field in "keyId", "algorithm", "signature": assert ( field in sig_struct ), 'Required signature parameter "{}" not found'.format(field) assert ( - sig_struct["algorithm"] in self.known_algorithms + sig_struct["algorithm"] in cls.known_algorithms ), "Unknown signature algorithm" created_timestamp = ( int(sig_struct["created"]) if "created" in sig_struct else None @@ -220,7 +220,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase): expires_timestamp = int(expires_timestamp) headers = sig_struct.get("headers", "date").split(" ") sig = base64.b64decode(sig_struct["signature"]) - sts = self.get_string_to_sign( + sts = cls.get_string_to_sign( request, headers, created_timestamp, expires_timestamp=expires_timestamp ) key = key_resolver( @@ -241,5 +241,6 @@ class HTTPSignatureHeaderAuth(HTTPSignatureAuth): request.headers["Signature"] = self.create_signature_string(request) return request - def verify(self, request, key_resolver): + @classmethod + def verify(cls, request, key_resolver): return super().verify(request, key_resolver, scheme="Signature")