diff options
Diffstat (limited to 'crypto/digest/digests.c')
-rw-r--r-- | crypto/digest/digests.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/crypto/digest/digests.c b/crypto/digest/digests.c index b757ea8..e3d3a87 100644 --- a/crypto/digest/digests.c +++ b/crypto/digest/digests.c @@ -56,6 +56,7 @@ #include <openssl/digest.h> +#include <openssl/md4.h> #include <openssl/md5.h> #include <openssl/obj.h> #include <openssl/sha.h> @@ -63,6 +64,24 @@ #include "internal.h" +static int md4_init(EVP_MD_CTX *ctx) { return MD4_Init(ctx->md_data); } + +static int md4_update(EVP_MD_CTX *ctx, const void *data, size_t count) { + return MD4_Update(ctx->md_data, data, count); +} + +static int md4_final(EVP_MD_CTX *ctx, unsigned char *out) { + return MD4_Final(out, ctx->md_data); +} + +static const EVP_MD md4_md = { + NID_md4, MD4_DIGEST_LENGTH, 0 /* flags */, md4_init, + md4_update, md4_final, 64 /* block size */, sizeof(MD4_CTX), +}; + +const EVP_MD *EVP_md4(void) { return &md4_md; } + + static int md5_init(EVP_MD_CTX *ctx) { return MD5_Init(ctx->md_data); } static int md5_update(EVP_MD_CTX *ctx, const void *data, size_t count) { |