1238384Sjkim/* crypto/evp/m_wp.c */ 2238384Sjkim 3238384Sjkim#include <stdio.h> 4238384Sjkim#include "cryptlib.h" 5238384Sjkim 6238384Sjkim#ifndef OPENSSL_NO_WHIRLPOOL 7238384Sjkim 8296341Sdelphij# include <openssl/evp.h> 9296341Sdelphij# include <openssl/objects.h> 10296341Sdelphij# include <openssl/x509.h> 11296341Sdelphij# include <openssl/whrlpool.h> 12296341Sdelphij# include "evp_locl.h" 13238384Sjkim 14238384Sjkimstatic int init(EVP_MD_CTX *ctx) 15296341Sdelphij{ 16296341Sdelphij return WHIRLPOOL_Init(ctx->md_data); 17296341Sdelphij} 18238384Sjkim 19296341Sdelphijstatic int update(EVP_MD_CTX *ctx, const void *data, size_t count) 20296341Sdelphij{ 21296341Sdelphij return WHIRLPOOL_Update(ctx->md_data, data, count); 22296341Sdelphij} 23238384Sjkim 24296341Sdelphijstatic int final(EVP_MD_CTX *ctx, unsigned char *md) 25296341Sdelphij{ 26296341Sdelphij return WHIRLPOOL_Final(md, ctx->md_data); 27296341Sdelphij} 28238384Sjkim 29296341Sdelphijstatic const EVP_MD whirlpool_md = { 30296341Sdelphij NID_whirlpool, 31296341Sdelphij 0, 32296341Sdelphij WHIRLPOOL_DIGEST_LENGTH, 33296341Sdelphij 0, 34296341Sdelphij init, 35296341Sdelphij update, 36296341Sdelphij final, 37296341Sdelphij NULL, 38296341Sdelphij NULL, 39296341Sdelphij EVP_PKEY_NULL_method, 40296341Sdelphij WHIRLPOOL_BBLOCK / 8, 41296341Sdelphij sizeof(EVP_MD *) + sizeof(WHIRLPOOL_CTX), 42296341Sdelphij}; 43238384Sjkim 44238384Sjkimconst EVP_MD *EVP_whirlpool(void) 45296341Sdelphij{ 46296341Sdelphij return (&whirlpool_md); 47296341Sdelphij} 48238384Sjkim#endif 49