aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cryptography/hazmat/backends/openssl/backend.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/cryptography/hazmat/backends/openssl/backend.py b/cryptography/hazmat/backends/openssl/backend.py
index 923cc478..538e6a5f 100644
--- a/cryptography/hazmat/backends/openssl/backend.py
+++ b/cryptography/hazmat/backends/openssl/backend.py
@@ -897,15 +897,18 @@ class _RSASignatureContext(object):
if res != 1:
errors = self._backend._consume_errors()
assert errors[0].lib == self._backend._lib.ERR_LIB_RSA
- raise ValueError(
- {
- self._backend._lib.RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE:
- "Salt length too long for key size. Try using MAX_LENGTH "
- "instead.",
- self._backend._lib.RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY:
- "Digest too large for key size. Use a larger key."
- }[errors[0].reason]
- )
+ assert (errors[0].reason ==
+ self._backend._lib.RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE or
+ errors[0].reason ==
+ self._backend._lib.RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY)
+ if (errors[0].reason ==
+ self._backend._lib.RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE):
+ reason = ("Salt length too long for key size. Try using "
+ "MAX_LENGTH instead.")
+ if (errors[0].reason ==
+ self._backend._lib.RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY):
+ reason = "Digest too large for key size. Use a larger key."
+ raise ValueError(reason)
return self._backend._ffi.buffer(buf)[:]