Added RSA512 algorithm.

pull/2/head
Kevin Gill 2018-10-19 16:38:40 +01:00
parent 7f8f69116d
commit 80c9bb8c14
1 changed files with 5 additions and 1 deletions

View File

@ -13,7 +13,7 @@ class Crypto:
from cryptography.hazmat.backends import default_backend from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import rsa, ec from cryptography.hazmat.primitives.asymmetric import rsa, ec
from cryptography.hazmat.primitives.asymmetric.padding import PKCS1v15 from cryptography.hazmat.primitives.asymmetric.padding import PKCS1v15
from cryptography.hazmat.primitives.hashes import SHA1, SHA256 from cryptography.hazmat.primitives.hashes import SHA1, SHA256, SHA512
self.__dict__.update(locals()) self.__dict__.update(locals())
def sign(self, string_to_sign, key, passphrase=None): def sign(self, string_to_sign, key, passphrase=None):
@ -23,6 +23,9 @@ class Crypto:
if self.algorithm in {"rsa-sha1", "rsa-sha256"}: if self.algorithm in {"rsa-sha1", "rsa-sha256"}:
hasher = self.SHA1() if self.algorithm.endswith("sha1") else self.SHA256() hasher = self.SHA1() if self.algorithm.endswith("sha1") else self.SHA256()
signer = key.signer(padding=self.PKCS1v15(), algorithm=hasher) signer = key.signer(padding=self.PKCS1v15(), algorithm=hasher)
elif self.algorithm in {"rsa-sha512"}:
hasher = self.SHA512()
signer = key.signer(padding=self.PKCS1v15(), algorithm=hasher)
elif self.algorithm == "ecdsa-sha256": elif self.algorithm == "ecdsa-sha256":
signer = key.signer(signature_algorithm=self.ec.ECDSA(algorithm=self.SHA256())) signer = key.signer(signature_algorithm=self.ec.ECDSA(algorithm=self.SHA256()))
signer.update(string_to_sign) signer.update(string_to_sign)
@ -44,6 +47,7 @@ class HTTPSignatureAuth(requests.auth.AuthBase):
known_algorithms = { known_algorithms = {
"rsa-sha1", "rsa-sha1",
"rsa-sha256", "rsa-sha256",
"rsa-sha512",
"hmac-sha256", "hmac-sha256",
"ecdsa-sha256", "ecdsa-sha256",
} }