diff options
-rw-r--r-- | src/_cffi_src/openssl/err.py | 9 | ||||
-rw-r--r-- | src/cryptography/hazmat/backends/openssl/rsa.py | 3 | ||||
-rw-r--r-- | src/cryptography/hazmat/bindings/openssl/_conditional.py | 3 |
3 files changed, 15 insertions, 0 deletions
diff --git a/src/_cffi_src/openssl/err.py b/src/_cffi_src/openssl/err.py index 6ec13775..3eb783ee 100644 --- a/src/_cffi_src/openssl/err.py +++ b/src/_cffi_src/openssl/err.py @@ -14,6 +14,7 @@ static const int Cryptography_HAS_098H_ERROR_CODES; static const int Cryptography_HAS_098C_CAMELLIA_CODES; static const int Cryptography_HAS_EC_CODES; static const int Cryptography_HAS_RSA_R_PKCS_DECODING_ERROR; +static const int Cryptography_HAS_RSA_R_OAEP_DECODING_ERROR; struct ERR_string_data_st { unsigned long error; @@ -230,6 +231,7 @@ static const int RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY; static const int RSA_R_BLOCK_TYPE_IS_NOT_01; static const int RSA_R_BLOCK_TYPE_IS_NOT_02; static const int RSA_R_PKCS_DECODING_ERROR; +static const int RSA_R_OAEP_DECODING_ERROR; static const int RSA_F_RSA_SIGN; """ @@ -334,4 +336,11 @@ static const long Cryptography_HAS_RSA_R_PKCS_DECODING_ERROR = 1; static const long Cryptography_HAS_RSA_R_PKCS_DECODING_ERROR = 0; static const long RSA_R_PKCS_DECODING_ERROR = 0; #endif + +#ifdef RSA_R_OAEP_DECODING_ERROR +static const long Cryptography_HAS_RSA_R_OAEP_DECODING_ERROR = 1; +#else +static const long Cryptography_HAS_RSA_R_OAEP_DECODING_ERROR = 0; +static const long RSA_R_OAEP_DECODING_ERROR = 0; +#endif """ diff --git a/src/cryptography/hazmat/backends/openssl/rsa.py b/src/cryptography/hazmat/backends/openssl/rsa.py index 664f6d35..1be6f059 100644 --- a/src/cryptography/hazmat/backends/openssl/rsa.py +++ b/src/cryptography/hazmat/backends/openssl/rsa.py @@ -142,6 +142,9 @@ def _handle_rsa_enc_dec_error(backend, key): if backend._lib.Cryptography_HAS_RSA_R_PKCS_DECODING_ERROR: decoding_errors.append(backend._lib.RSA_R_PKCS_DECODING_ERROR) + if backend._lib.Cryptography_HAS_RSA_R_OAEP_DECODING_ERROR: + decoding_errors.append(backend._lib.RSA_R_OAEP_DECODING_ERROR) + assert errors[0].reason in decoding_errors raise ValueError("Decryption failed.") diff --git a/src/cryptography/hazmat/bindings/openssl/_conditional.py b/src/cryptography/hazmat/bindings/openssl/_conditional.py index 206c2915..c4e39db9 100644 --- a/src/cryptography/hazmat/bindings/openssl/_conditional.py +++ b/src/cryptography/hazmat/bindings/openssl/_conditional.py @@ -219,6 +219,9 @@ CONDITIONAL_NAMES = { "Cryptography_HAS_RSA_R_PKCS_DECODING_ERROR": [ "RSA_R_PKCS_DECODING_ERROR" ], + "Cryptography_HAS_RSA_R_OAEP_DECODING_ERROR": [ + "RSA_R_OAEP_DECODING_ERROR" + ], "Cryptography_HAS_GCM": [ "EVP_CTRL_GCM_GET_TAG", "EVP_CTRL_GCM_SET_TAG", |