diff --git a/library/hash_info.c b/library/hash_info.c
index c3a81cf..19afae8 100644
--- a/library/hash_info.c
+++ b/library/hash_info.c
@@ -22,6 +22,7 @@
 
 #include "hash_info.h"
 #include "legacy_or_psa.h"
+#include "error.h"
 
 typedef struct
 {
@@ -107,3 +108,20 @@
 
     return entry->md_type;
 }
+
+int mbedtls_md_error_from_psa( psa_status_t status )
+{
+    switch( status )
+    {
+        case PSA_SUCCESS:
+            return( 0 );
+        case PSA_ERROR_NOT_SUPPORTED:
+            return( MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE );
+        case PSA_ERROR_INVALID_ARGUMENT:
+            return( MBEDTLS_ERR_MD_BAD_INPUT_DATA );
+        case PSA_ERROR_INSUFFICIENT_MEMORY:
+            return( MBEDTLS_ERR_MD_ALLOC_FAILED );
+        default:
+            return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED );
+    }
+}
diff --git a/library/hash_info.h b/library/hash_info.h
index 67983f7..54f5f7c 100644
--- a/library/hash_info.h
+++ b/library/hash_info.h
@@ -74,4 +74,12 @@
  */
 mbedtls_md_type_t mbedtls_hash_info_md_from_psa( psa_algorithm_t psa_alg );
 
+/** Convert PSA status to MD error code.
+ *
+ * \param status    PSA status.
+ *
+ * \return          The corresponding MD error code,
+ */
+int mbedtls_md_error_from_psa( psa_status_t status );
+
 #endif /* MBEDTLS_HASH_INFO_H */
diff --git a/library/rsa.c b/library/rsa.c
index e461f6e..3ff6fdc 100644
--- a/library/rsa.c
+++ b/library/rsa.c
@@ -1098,25 +1098,6 @@
 }
 
 #if defined(MBEDTLS_PKCS1_V21)
-#if !defined(MBEDTLS_MD_C)
-static int ret_from_status( psa_status_t status )
-{
-    switch( status )
-    {
-        case PSA_SUCCESS:
-            return( 0 );
-        case PSA_ERROR_NOT_SUPPORTED:
-            return( MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE );
-        case PSA_ERROR_INVALID_ARGUMENT:
-            return( MBEDTLS_ERR_MD_BAD_INPUT_DATA );
-        case PSA_ERROR_INSUFFICIENT_MEMORY:
-            return( MBEDTLS_ERR_MD_ALLOC_FAILED );
-        default:
-            return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED );
-    }
-}
-#endif /* !MBEDTLS_MD_C */
-
 /**
  * Generate and apply the MGF1 operation (from PKCS#1 v2.1) to a buffer.
  *
@@ -1208,7 +1189,7 @@
 #else
     psa_hash_abort( &op );
 
-    return( ret_from_status( status ) );
+    return( mbedtls_md_error_from_psa( status ) );
 #endif
 }
 
@@ -1276,7 +1257,7 @@
 exit:
     psa_hash_abort( &op );
 
-    return( ret_from_status( status ) );
+    return( mbedtls_md_error_from_psa( status ) );
 #endif /* !MBEDTLS_MD_C */
 }
 
@@ -1308,7 +1289,7 @@
 
     status = psa_hash_compute( alg, input, ilen, output, out_size, &out_len );
 
-    return( ret_from_status( status ) );
+    return( mbedtls_md_error_from_psa( status ) );
 #endif /* !MBEDTLS_MD_C */
 }
 #endif /* MBEDTLS_PKCS1_V21 */
