Reintroduce md_init_ctx compatibility wrapper
diff --git a/ChangeLog b/ChangeLog
index 81abd5b..82c9a88 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,7 +6,8 @@
   * Support for DTLS 1.0 and 1.2 (RFC 6347).
 
 API Changes
-   * md_init_ctx() gained a new argument for optional hmac usage
+   * md_init_ctx() is deprecated in favour of md_setup(), that adds a third
+     argument (allowing memory savings if HMAC is not used)
    * Removed individual mdX_hmac and shaX_hmac functions (use generic
      md_hmac functions from md.h)
    * Change md_info_t into an opaque structure (use md_get_xxx() accessors).
diff --git a/include/mbedtls/md.h b/include/mbedtls/md.h
index c750d6a..db85701 100644
--- a/include/mbedtls/md.h
+++ b/include/mbedtls/md.h
@@ -125,6 +125,31 @@
  */
 void md_free( md_context_t *ctx );
 
+#if ! defined(POLARSSL_DEPRECATED_REMOVED)
+#if defined(POLARSSL_DEPRECATED_WARNING)
+#define DEPRECATED    __attribute__((deprecated))
+#else
+#define DEPRECATED
+#endif
+/**
+ * \brief          Initialises and fills the message digest context structure
+ *                 with the appropriate values.
+ *
+ * \deprecated     Superseded by md_setup() in 2.0.0
+ *
+ * \param ctx      context to initialise. May not be NULL. The
+ *                 digest-specific context (ctx->md_ctx) must be NULL. It will
+ *                 be allocated, and must be freed using md_free() later.
+ * \param md_info  message digest to use.
+ *
+ * \returns        \c 0 on success, \c POLARSSL_ERR_MD_BAD_INPUT_DATA on
+ *                 parameter failure, \c POLARSSL_ERR_MD_ALLOC_FAILED if
+ *                 allocation of the digest-specific context failed.
+ */
+int md_init_ctx( md_context_t *ctx, const md_info_t *md_info ) DEPRECATED;
+#undef DEPRECATED
+#endif /* POLARSSL_DEPRECATED_REMOVED */
+
 /**
  * \brief          Initialises and fills the message digest context structure
  *                 with the appropriate values.
diff --git a/library/md.c b/library/md.c
index fab9dea..74038ae 100644
--- a/library/md.c
+++ b/library/md.c
@@ -199,7 +199,14 @@
     polarssl_zeroize( ctx, sizeof( md_context_t ) );
 }
 
-int md_setup( md_context_t *ctx, const md_info_t *md_info, int hmac  )
+#if ! defined(POLARSSL_DEPRECATED_REMOVED)
+int md_init_ctx( md_context_t *ctx, const md_info_t *md_info )
+{
+    return md_setup( ctx, md_info, 1 );
+}
+#endif
+
+int md_setup( md_context_t *ctx, const md_info_t *md_info, int hmac )
 {
     if( md_info == NULL || ctx == NULL )
         return( POLARSSL_ERR_MD_BAD_INPUT_DATA );