diff --git a/jose/backends/ecdsa_backend.py b/jose/backends/ecdsa_backend.py index 73b3eab0..af0d9750 100644 --- a/jose/backends/ecdsa_backend.py +++ b/jose/backends/ecdsa_backend.py @@ -91,11 +91,22 @@ def _process_jwk(self, jwk_dict): return ecdsa.keys.VerifyingKey.from_public_point(point, self.curve) def sign(self, msg): - return self.prepared_key.sign(msg, hashfunc=self.hash_alg, sigencode=ecdsa.util.sigencode_string) + return self.prepared_key.sign( + msg, + hashfunc=self.hash_alg, + sigencode=ecdsa.util.sigencode_string, + allow_truncate=False + ) def verify(self, msg, sig): try: - return self.prepared_key.verify(sig, msg, hashfunc=self.hash_alg, sigdecode=ecdsa.util.sigdecode_string) + return self.prepared_key.verify( + sig, + msg, + hashfunc=self.hash_alg, + sigdecode=ecdsa.util.sigdecode_string, + allow_truncate=False + ) except Exception: return False diff --git a/setup.py b/setup.py index 7e7afbaf..5d82817e 100644 --- a/setup.py +++ b/setup.py @@ -38,7 +38,7 @@ def _cryptography_version(): 'pycrypto': ['pycrypto >=2.6.0, <2.7.0'] + pyasn1, 'pycryptodome': ['pycryptodome >=3.3.1, <4.0.0'] + pyasn1, } -legacy_backend_requires = ['ecdsa <0.15', 'rsa'] + pyasn1 +legacy_backend_requires = ['ecdsa != 0.15', 'rsa'] + pyasn1 install_requires = ['six <2.0'] # TODO: work this into the extras selection instead. @@ -78,7 +78,7 @@ def _cryptography_version(): ], tests_require=[ 'six', - 'ecdsa<0.15', + 'ecdsa != 0.15', 'pytest', 'pytest-cov', 'pytest-runner',