diff --git a/library/ecdsa.c b/library/ecdsa.c
index e2b6a77..b9120c2 100644
--- a/library/ecdsa.c
+++ b/library/ecdsa.c
@@ -131,6 +131,32 @@
 
     memset( ctx, 0, sizeof( hmac_drbg_context ) );
 }
+
+/*
+ * This a hopefully temporary compatibility function.
+ *
+ * Since we can't ensure the caller will pass a valid md_alg before the next
+ * interface change, try to pick up a decent md by size.
+ *
+ * Argument is the minimum size in bytes of the MD output.
+ */
+const md_info_t *md_info_by_size( int min_size )
+{
+    const md_info_t *md_cur, *md_picked = NULL;
+    const int *md_alg;
+
+    for( md_alg = md_list(); *md_alg != 0; md_alg++ )
+    {
+        if( ( md_cur = md_info_from_type( *md_alg ) ) == NULL ||
+            md_cur->size < min_size ||
+            ( md_picked != NULL && md_cur->size > md_picked->size ) )
+            continue;
+
+        md_picked = md_cur;
+    }
+
+    return( md_picked );
+}
 #endif
 
 /*
@@ -242,7 +268,13 @@
     const md_info_t *md_info;
     mpi h;
 
-    if( ( md_info = md_info_from_type( md_alg ) ) == NULL )
+    /* Temporary fallback */
+    if( md_alg == POLARSSL_MD_NONE )
+        md_info = md_info_by_size( blen );
+    else
+        md_info = md_info_from_type( md_alg );
+
+    if( md_info == NULL )
         return( POLARSSL_ERR_ECP_BAD_INPUT_DATA );
 
     mpi_init( &h );
