Fail if a padding disabled by the build-time configuration is selected
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
diff --git a/library/rsa.c b/library/rsa.c
index 26a93c1..a788337 100644
--- a/library/rsa.c
+++ b/library/rsa.c
@@ -500,9 +500,20 @@
int mbedtls_rsa_set_padding( mbedtls_rsa_context *ctx, int padding,
mbedtls_md_type_t hash_id )
{
- if( ( padding != MBEDTLS_RSA_PKCS_V15 ) &&
- ( padding != MBEDTLS_RSA_PKCS_V21 ) )
- return( MBEDTLS_ERR_RSA_INVALID_PADDING );
+ switch( padding )
+ {
+#if defined(MBEDTLS_PKCS1_V15)
+ case MBEDTLS_RSA_PKCS_V15:
+ break;
+#endif
+
+#if defined(MBEDTLS_PKCS1_V21)
+ case MBEDTLS_RSA_PKCS_V21:
+ break;
+#endif
+ default:
+ return( MBEDTLS_ERR_RSA_INVALID_PADDING );
+ }
if( ( padding == MBEDTLS_RSA_PKCS_V21 ) &&
( hash_id != MBEDTLS_MD_NONE ) )