1/* 2 * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the OpenSSL license (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10#include <stdio.h> 11#include "internal/cryptlib.h" 12 13#ifndef OPENSSL_NO_MD2 14 15# include <openssl/evp.h> 16# include <openssl/objects.h> 17# include <openssl/x509.h> 18# include <openssl/md2.h> 19# include <openssl/rsa.h> 20 21#include "crypto/evp.h" 22 23static int init(EVP_MD_CTX *ctx) 24{ 25 return MD2_Init(EVP_MD_CTX_md_data(ctx)); 26} 27 28static int update(EVP_MD_CTX *ctx, const void *data, size_t count) 29{ 30 return MD2_Update(EVP_MD_CTX_md_data(ctx), data, count); 31} 32 33static int final(EVP_MD_CTX *ctx, unsigned char *md) 34{ 35 return MD2_Final(md, EVP_MD_CTX_md_data(ctx)); 36} 37 38static const EVP_MD md2_md = { 39 NID_md2, 40 NID_md2WithRSAEncryption, 41 MD2_DIGEST_LENGTH, 42 0, 43 init, 44 update, 45 final, 46 NULL, 47 NULL, 48 MD2_BLOCK, 49 sizeof(EVP_MD *) + sizeof(MD2_CTX), 50}; 51 52const EVP_MD *EVP_md2(void) 53{ 54 return &md2_md; 55} 56#endif 57