Use one-shot signing. Fixes #16

pull/21/head
Andrey Kislyuk 2020-04-25 06:58:40 -07:00
parent b6d74a46e0
commit 053678a22e
No known key found for this signature in database
GPG Key ID: 8AFAFCD242818A52
1 changed files with 3 additions and 5 deletions

View File

@ -26,14 +26,12 @@ 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()
signer = key.signer(padding=self.PKCS1v15(), algorithm=hasher)
return key.sign(string_to_sign, padding=self.PKCS1v15(), algorithm=hasher)
elif self.algorithm in {"rsa-sha512"}:
hasher = self.SHA512()
signer = key.signer(padding=self.PKCS1v15(), algorithm=hasher)
return key.sign(string_to_sign, padding=self.PKCS1v15(), algorithm=hasher)
elif self.algorithm == "ecdsa-sha256":
signer = key.signer(signature_algorithm=self.ec.ECDSA(algorithm=self.SHA256()))
signer.update(string_to_sign)
return signer.finalize()
return key.sign(string_to_sign, signature_algorithm=self.ec.ECDSA(algorithm=self.SHA256()))
def verify(self, signature, string_to_sign, key):
if self.algorithm == "hmac-sha256":