diff options
Diffstat (limited to 'src/lib/libcrypto/evp/m_wp.c')
| -rw-r--r-- | src/lib/libcrypto/evp/m_wp.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/lib/libcrypto/evp/m_wp.c b/src/lib/libcrypto/evp/m_wp.c new file mode 100644 index 0000000000..c51bc2d5d1 --- /dev/null +++ b/src/lib/libcrypto/evp/m_wp.c | |||
| @@ -0,0 +1,43 @@ | |||
| 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 | ||
