Added md_process() to MD layer for generic internal access to hash
process functions

Access to process functions is needed to reduce possible timing attacks
on SSL MAC checks. As SSL is set to move to using the dynamic MD layer,
the MD layer needs access to these process functions as well.
diff --git a/include/polarssl/md.h b/include/polarssl/md.h
index 88596cb..b81ebf1 100644
--- a/include/polarssl/md.h
+++ b/include/polarssl/md.h
@@ -111,6 +111,8 @@
     /** Free the given context */
     void (*ctx_free_func)( void *ctx );
 
+    /** Internal use only */
+    void (*process_func)( void *ctx, const unsigned char *input );
 } md_info_t;
 
 /**
@@ -347,6 +349,9 @@
                 const unsigned char *input, size_t ilen,
                 unsigned char *output );
 
+/* Internal use */
+int md_process( md_context_t *ctx, const unsigned char *data );
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/polarssl/md2.h b/include/polarssl/md2.h
index 1f60470..02a0a10 100644
--- a/include/polarssl/md2.h
+++ b/include/polarssl/md2.h
@@ -146,6 +146,9 @@
  */
 int md2_self_test( int verbose );
 
+/* Internal use */
+void md2_process( md2_context *ctx );
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/polarssl/md4.h b/include/polarssl/md4.h
index 641edf1..4791fb1 100644
--- a/include/polarssl/md4.h
+++ b/include/polarssl/md4.h
@@ -152,6 +152,9 @@
  */
 int md4_self_test( int verbose );
 
+/* Internal use */
+void md4_process( md4_context *ctx, const unsigned char data[64] );
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/polarssl/sha4.h b/include/polarssl/sha4.h
index 6aae124..5563676 100644
--- a/include/polarssl/sha4.h
+++ b/include/polarssl/sha4.h
@@ -161,6 +161,9 @@
  */
 int sha4_self_test( int verbose );
 
+/* Internal use */
+void sha4_process( sha4_context *ctx, const unsigned char data[128] );
+
 #ifdef __cplusplus
 }
 #endif