x86_64 assembler pack to comply with updated styling x86_64-xlate.pl rules.
[openssl.git] / crypto / whrlpool / wp_dgst.c
index 1d33eb658cea75da36aedb260e8fa3a2f563b3d4..291991405935bca4a380f8bb609b673290cd5fe9 100644 (file)
 #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 @@ void WHIRLPOOL_Update (WHIRLPOOL_CTX *c,const void *_inp,size_t bytes)
                }
        if (bytes)
                WHIRLPOOL_BitUpdate(c,inp,bytes*8);
+
+       return(1);
        }
 
 void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c,const void *_inp,size_t bits)
@@ -206,12 +212,11 @@ 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 int    bitoff  = c->bitoff,
                        byteoff = bitoff/8;
-       int             i,j;
-       size_t          v;
+       size_t          i,j,v;
        unsigned char  *p;
 
        bitoff %= 8;
@@ -238,8 +243,12 @@ void WHIRLPOOL_Final       (unsigned char *md,WHIRLPOOL_CTX *c)
 
        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)