- Abstracted checksum updating during handshake

diff --git a/include/polarssl/ssl.h b/include/polarssl/ssl.h
index 8110fbc..4ac6f86 100644
--- a/include/polarssl/ssl.h
+++ b/include/polarssl/ssl.h
@@ -342,11 +342,10 @@
      * Crypto layer
      */
     dhm_context dhm_ctx;                /*!<  DHM key exchange        */
-    md5_context fin_md5;                /*!<  Finished MD5 checksum   */
-    sha1_context fin_sha1;              /*!<  Finished SHA-1 checksum */
-    sha2_context fin_sha2;              /*!<  Finished SHA-256 checksum */
-    sha4_context fin_sha4;              /*!<  Finished SHA-384 checksum */
+    unsigned char ctx_checksum[500];    /*!<  Checksum context(s)     */
 
+    void (*update_checksum)(ssl_context *, unsigned char *, size_t);
+    void (*calc_verify)(ssl_context *, unsigned char *);
     void (*calc_finished)(ssl_context *, unsigned char *, int);
     int  (*tls_prf)(unsigned char *, size_t, char *,
                     unsigned char *, size_t,
@@ -737,7 +736,6 @@
 int ssl_handshake_server( ssl_context *ssl );
 
 int ssl_derive_keys( ssl_context *ssl );
-void ssl_calc_verify( ssl_context *ssl, unsigned char hash[36] );
 
 int ssl_read_record( ssl_context *ssl );
 /**
@@ -758,6 +756,9 @@
 int ssl_parse_finished( ssl_context *ssl );
 int ssl_write_finished( ssl_context *ssl );
 
+void ssl_kickstart_checksum( ssl_context *ssl, int ciphersuite,
+                             unsigned char *input_buf, size_t len );
+
 #ifdef __cplusplus
 }
 #endif