aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStanisław Pitucha <stanislaw.pitucha@hp.com>2015-08-11 15:17:05 +1000
committerStanisław Pitucha <stanislaw.pitucha@hp.com>2015-08-11 15:17:05 +1000
commit305bee427aa5bf5908b74f384d90a29879ac7f6a (patch)
treef2b6e6f2886bc3e4107a9c0b06a684ef47bea6e9
parentcf267dc727b9f7f56f07d19da1d19643100a4f38 (diff)
downloadcryptography-305bee427aa5bf5908b74f384d90a29879ac7f6a.tar.gz
cryptography-305bee427aa5bf5908b74f384d90a29879ac7f6a.tar.bz2
cryptography-305bee427aa5bf5908b74f384d90a29879ac7f6a.zip
Ensure early exeption on non-bytes signature
Signature must be in bytes. If the check is skipped, verify() can explode later in cffi call in _verify_pkey_ctx() for example.
-rw-r--r--src/cryptography/hazmat/backends/openssl/dsa.py3
-rw-r--r--src/cryptography/hazmat/backends/openssl/rsa.py3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/dsa.py b/src/cryptography/hazmat/backends/openssl/dsa.py
index f84857ff..f1bb6d9b 100644
--- a/src/cryptography/hazmat/backends/openssl/dsa.py
+++ b/src/cryptography/hazmat/backends/openssl/dsa.py
@@ -29,6 +29,9 @@ def _truncate_digest_for_dsa(dsa_cdata, digest, backend):
@utils.register_interface(AsymmetricVerificationContext)
class _DSAVerificationContext(object):
def __init__(self, backend, public_key, signature, algorithm):
+ if not isinstance(signature, bytes):
+ raise TypeError("signature must be bytes.")
+
self._backend = backend
self._public_key = public_key
self._signature = signature
diff --git a/src/cryptography/hazmat/backends/openssl/rsa.py b/src/cryptography/hazmat/backends/openssl/rsa.py
index 822c7304..8e32eb02 100644
--- a/src/cryptography/hazmat/backends/openssl/rsa.py
+++ b/src/cryptography/hazmat/backends/openssl/rsa.py
@@ -337,6 +337,9 @@ class _RSASignatureContext(object):
@utils.register_interface(AsymmetricVerificationContext)
class _RSAVerificationContext(object):
def __init__(self, backend, public_key, signature, padding, algorithm):
+ if not isinstance(signature, bytes):
+ raise TypeError("signature must be bytes.")
+
self._backend = backend
self._public_key = public_key
self._signature = signature