Get rid of md_info outside helper functions

Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
diff --git a/library/rsa.c b/library/rsa.c
index 7e7af2a..d879a30 100644
--- a/library/rsa.c
+++ b/library/rsa.c
@@ -502,10 +502,8 @@
     if( ( padding == MBEDTLS_RSA_PKCS_V21 ) &&
         ( hash_id != MBEDTLS_MD_NONE ) )
     {
-        const mbedtls_md_info_t *md_info;
-
-        md_info = mbedtls_md_info_from_type( hash_id );
-        if( md_info == NULL )
+        /* Just make sure this hash is supported in this build. */
+        if( mbedtls_hash_info_get_size( hash_id ) == 0 )
             return( MBEDTLS_ERR_RSA_INVALID_PADDING );
     }
 #endif /* MBEDTLS_PKCS1_V21 */
@@ -1236,7 +1234,6 @@
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     unsigned char *p = output;
     unsigned int hlen;
-    const mbedtls_md_info_t *md_info;
 
     RSA_VALIDATE_RET( ctx != NULL );
     RSA_VALIDATE_RET( output != NULL );
@@ -1246,12 +1243,11 @@
     if( f_rng == NULL )
         return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
 
-    md_info = mbedtls_md_info_from_type( (mbedtls_md_type_t) ctx->hash_id );
-    if( md_info == NULL )
+    hlen = mbedtls_hash_info_get_size( (mbedtls_md_type_t) ctx->hash_id );
+    if( hlen == 0 )
         return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
 
     olen = ctx->len;
-    hlen = mbedtls_md_get_size( md_info );
 
     /* first comparison checks for overflow */
     if( ilen + 2 * hlen + 2 < ilen || olen < ilen + 2 * hlen + 2 )
@@ -1399,7 +1395,6 @@
     unsigned char buf[MBEDTLS_MPI_MAX_SIZE];
     unsigned char lhash[MBEDTLS_MD_MAX_SIZE];
     unsigned int hlen;
-    const mbedtls_md_info_t *md_info;
 
     RSA_VALIDATE_RET( ctx != NULL );
     RSA_VALIDATE_RET( output_max_len == 0 || output != NULL );
@@ -1418,12 +1413,10 @@
     if( ilen < 16 || ilen > sizeof( buf ) )
         return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
 
-    md_info = mbedtls_md_info_from_type( (mbedtls_md_type_t) ctx->hash_id );
-    if( md_info == NULL )
+    hlen = mbedtls_hash_info_get_size( (mbedtls_md_type_t) ctx->hash_id );
+    if( hlen == 0 )
         return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
 
-    hlen = mbedtls_md_get_size( md_info );
-
     // checking for integer underflow
     if( 2 * hlen + 2 > ilen )
         return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
@@ -1609,7 +1602,6 @@
     size_t slen, min_slen, hlen, offset = 0;
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
     size_t msb;
-    const mbedtls_md_info_t *md_info;
 
     RSA_VALIDATE_RET( ctx != NULL );
     RSA_VALIDATE_RET( ( md_alg  == MBEDTLS_MD_NONE &&
@@ -1628,20 +1620,18 @@
     if( md_alg != MBEDTLS_MD_NONE )
     {
         /* Gather length of hash to sign */
-        md_info = mbedtls_md_info_from_type( md_alg );
-        if( md_info == NULL )
+        size_t exp_hashlen = mbedtls_hash_info_get_size( md_alg );
+        if( exp_hashlen == 0 )
             return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
 
-        if( hashlen != mbedtls_md_get_size( md_info ) )
+        if( hashlen != exp_hashlen )
             return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
     }
 
-    md_info = mbedtls_md_info_from_type( (mbedtls_md_type_t) ctx->hash_id );
-    if( md_info == NULL )
+    hlen = mbedtls_hash_info_get_size( (mbedtls_md_type_t) ctx->hash_id );
+    if( hlen == 0 )
         return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
 
-    hlen = mbedtls_md_get_size( md_info );
-
     if (saltlen == MBEDTLS_RSA_SALT_LEN_ANY)
     {
        /* Calculate the largest possible salt length, up to the hash size.
@@ -2001,7 +1991,6 @@
     unsigned char result[MBEDTLS_MD_MAX_SIZE];
     unsigned int hlen;
     size_t observed_salt_len, msb;
-    const mbedtls_md_info_t *md_info;
     unsigned char buf[MBEDTLS_MPI_MAX_SIZE] = {0};
 
     RSA_VALIDATE_RET( ctx != NULL );
@@ -2028,20 +2017,18 @@
     if( md_alg != MBEDTLS_MD_NONE )
     {
         /* Gather length of hash to sign */
-        md_info = mbedtls_md_info_from_type( md_alg );
-        if( md_info == NULL )
+        size_t exp_hashlen = mbedtls_hash_info_get_size( md_alg );
+        if( exp_hashlen == 0 )
             return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
 
-        if( hashlen != mbedtls_md_get_size( md_info ) )
+        if( hashlen != exp_hashlen )
             return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
     }
 
-    md_info = mbedtls_md_info_from_type( mgf1_hash_id );
-    if( md_info == NULL )
+    hlen = mbedtls_hash_info_get_size( mgf1_hash_id );
+    if( hlen == 0 )
         return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA );
 
-    hlen = mbedtls_md_get_size( md_info );
-
     /*
      * Note: EMSA-PSS verification is over the length of N - 1 bits
      */