1238384Sjkim/* crypto/evp/m_wp.c */ 2238384Sjkim 3238384Sjkim#include <stdio.h> 4238384Sjkim#include "cryptlib.h" 5238384Sjkim 6238384Sjkim#ifndef OPENSSL_NO_WHIRLPOOL 7238384Sjkim 8280304Sjkim# include <openssl/evp.h> 9280304Sjkim# include <openssl/objects.h> 10280304Sjkim# include <openssl/x509.h> 11280304Sjkim# include <openssl/whrlpool.h> 12280304Sjkim# include "evp_locl.h" 13238384Sjkim 14238384Sjkimstatic int init(EVP_MD_CTX *ctx) 15280304Sjkim{ 16280304Sjkim return WHIRLPOOL_Init(ctx->md_data); 17280304Sjkim} 18238384Sjkim 19280304Sjkimstatic int update(EVP_MD_CTX *ctx, const void *data, size_t count) 20280304Sjkim{ 21280304Sjkim return WHIRLPOOL_Update(ctx->md_data, data, count); 22280304Sjkim} 23238384Sjkim 24280304Sjkimstatic int final(EVP_MD_CTX *ctx, unsigned char *md) 25280304Sjkim{ 26280304Sjkim return WHIRLPOOL_Final(md, ctx->md_data); 27280304Sjkim} 28238384Sjkim 29280304Sjkimstatic const EVP_MD whirlpool_md = { 30280304Sjkim NID_whirlpool, 31280304Sjkim 0, 32280304Sjkim WHIRLPOOL_DIGEST_LENGTH, 33280304Sjkim 0, 34280304Sjkim init, 35280304Sjkim update, 36280304Sjkim final, 37280304Sjkim NULL, 38280304Sjkim NULL, 39280304Sjkim EVP_PKEY_NULL_method, 40280304Sjkim WHIRLPOOL_BBLOCK / 8, 41280304Sjkim sizeof(EVP_MD *) + sizeof(WHIRLPOOL_CTX), 42280304Sjkim}; 43238384Sjkim 44238384Sjkimconst EVP_MD *EVP_whirlpool(void) 45280304Sjkim{ 46280304Sjkim return (&whirlpool_md); 47280304Sjkim} 48238384Sjkim#endif 49