Home | History | Annotate | Download | only in evp
      1 /* crypto/evp/m_wp.c */
      2 
      3 #include <stdio.h>
      4 #include "cryptlib.h"
      5 
      6 #ifndef OPENSSL_NO_WHIRLPOOL
      7 
      8 #include <openssl/evp.h>
      9 #include <openssl/objects.h>
     10 #include <openssl/x509.h>
     11 #include <openssl/whrlpool.h>
     12 #include "evp_locl.h"
     13 
     14 static int init(EVP_MD_CTX *ctx)
     15 	{ return WHIRLPOOL_Init(ctx->md_data); }
     16 
     17 static int update(EVP_MD_CTX *ctx,const void *data,size_t count)
     18 	{ return WHIRLPOOL_Update(ctx->md_data,data,count); }
     19 
     20 static int final(EVP_MD_CTX *ctx,unsigned char *md)
     21 	{ return WHIRLPOOL_Final(md,ctx->md_data); }
     22 
     23 static const EVP_MD whirlpool_md=
     24 	{
     25 	NID_whirlpool,
     26 	0,
     27 	WHIRLPOOL_DIGEST_LENGTH,
     28 	0,
     29 	init,
     30 	update,
     31 	final,
     32 	NULL,
     33 	NULL,
     34 	EVP_PKEY_NULL_method,
     35 	WHIRLPOOL_BBLOCK/8,
     36 	sizeof(EVP_MD *)+sizeof(WHIRLPOOL_CTX),
     37 	};
     38 
     39 const EVP_MD *EVP_whirlpool(void)
     40 	{
     41 	return(&whirlpool_md);
     42 	}
     43 #endif
     44