From f1ced58164d78262b8ef234011ec8ee231a8d0c4 Mon Sep 17 00:00:00 2001 From: Andrey Kislyuk Date: Sat, 25 Apr 2020 07:18:14 -0700 Subject: [PATCH] Revert "Use one-shot signing. Fixes #16" This reverts commit 053678a22ee1e55a811fb05c1ae68f2b41f6e949. --- requests_http_signature/__init__.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/requests_http_signature/__init__.py b/requests_http_signature/__init__.py index 4dd7509..9ebb4d6 100644 --- a/requests_http_signature/__init__.py +++ b/requests_http_signature/__init__.py @@ -26,12 +26,14 @@ class Crypto: key = self.load_pem_private_key(key, password=passphrase, backend=self.default_backend()) if self.algorithm in {"rsa-sha1", "rsa-sha256"}: hasher = self.SHA1() if self.algorithm.endswith("sha1") else self.SHA256() - return key.sign(string_to_sign, padding=self.PKCS1v15(), algorithm=hasher) + signer = key.signer(padding=self.PKCS1v15(), algorithm=hasher) elif self.algorithm in {"rsa-sha512"}: hasher = self.SHA512() - return key.sign(string_to_sign, padding=self.PKCS1v15(), algorithm=hasher) + signer = key.signer(padding=self.PKCS1v15(), algorithm=hasher) elif self.algorithm == "ecdsa-sha256": - return key.sign(string_to_sign, signature_algorithm=self.ec.ECDSA(algorithm=self.SHA256())) + signer = key.signer(signature_algorithm=self.ec.ECDSA(algorithm=self.SHA256())) + signer.update(string_to_sign) + return signer.finalize() def verify(self, signature, string_to_sign, key): if self.algorithm == "hmac-sha256":