Adapt Whirlpool API for EVP.
diff --git a/crypto/whrlpool/whrlpool.h b/crypto/whrlpool/whrlpool.h
index bf9d7f5..03c91da 100644
--- a/crypto/whrlpool/whrlpool.h
+++ b/crypto/whrlpool/whrlpool.h
@@ -24,10 +24,10 @@
 	} WHIRLPOOL_CTX;
 
 #ifndef OPENSSL_NO_WHIRLPOOL
-void WHIRLPOOL_Init	(WHIRLPOOL_CTX *c);
-void WHIRLPOOL_Update	(WHIRLPOOL_CTX *c,const void *inp,size_t bytes);
+int WHIRLPOOL_Init	(WHIRLPOOL_CTX *c);
+int WHIRLPOOL_Update	(WHIRLPOOL_CTX *c,const void *inp,size_t bytes);
 void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c,const void *inp,size_t bits);
-void WHIRLPOOL_Final	(unsigned char *md,WHIRLPOOL_CTX *c);
+int WHIRLPOOL_Final	(unsigned char *md,WHIRLPOOL_CTX *c);
 unsigned char *WHIRLPOOL(const void *inp,size_t bytes,unsigned char *md);
 #endif
 
diff --git a/crypto/whrlpool/wp_dgst.c b/crypto/whrlpool/wp_dgst.c
index 1d33eb6..7aa4beb 100644
--- a/crypto/whrlpool/wp_dgst.c
+++ b/crypto/whrlpool/wp_dgst.c
@@ -54,9 +54,13 @@
 #include "wp_locl.h"
 #include <string.h>
 
-void WHIRLPOOL_Init	(WHIRLPOOL_CTX *c) { memset (c,0,sizeof(*c)); }
+int WHIRLPOOL_Init	(WHIRLPOOL_CTX *c)
+	{
+	memset (c,0,sizeof(*c));
+	return(1);
+	}
 
-void WHIRLPOOL_Update	(WHIRLPOOL_CTX *c,const void *_inp,size_t bytes)
+int WHIRLPOOL_Update	(WHIRLPOOL_CTX *c,const void *_inp,size_t bytes)
 	{
 	/* Well, largest suitable chunk size actually is
 	 * (1<<(sizeof(size_t)*8-3))-64, but below number
@@ -73,6 +77,8 @@
 		}
 	if (bytes)
 		WHIRLPOOL_BitUpdate(c,inp,bytes*8);
+
+	return(1);
 	}
 
 void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c,const void *_inp,size_t bits)
@@ -206,7 +212,7 @@
 		}
 	}
 
-void WHIRLPOOL_Final	(unsigned char *md,WHIRLPOOL_CTX *c)
+int WHIRLPOOL_Final	(unsigned char *md,WHIRLPOOL_CTX *c)
 	{
 	unsigned int	bitoff  = c->bitoff,
 			byteoff = bitoff/8;
@@ -238,8 +244,12 @@
 
 	whirlpool_block(c,c->data,1);
 
-	memcpy(md,c->H.c,WHIRLPOOL_DIGEST_LENGTH);
-	memset(c,0,sizeof(*c));
+	if (md)	{
+		memcpy(md,c->H.c,WHIRLPOOL_DIGEST_LENGTH);
+		memset(c,0,sizeof(*c));
+		return(1);
+		}
+	return(0);
 	}
 
 unsigned char *WHIRLPOOL(const void *inp, size_t bytes,unsigned char *md)