Adapt Whirlpool API for EVP.

This commit is contained in:
Andy Polyakov 2005-11-30 20:53:14 +00:00
parent a3344c8e5e
commit 137db78b46
2 changed files with 18 additions and 8 deletions

View File

@ -24,10 +24,10 @@ typedef struct {
} 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

View File

@ -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 @@ 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,7 +212,7 @@ 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;
@ -238,8 +244,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)