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 23 static int init(EVP_MD_CTX *ctx) 24 { 25 return MD2_Init(EVP_MD_CTX_md_data(ctx)); 26 } 27 28 static 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 33 static int final(EVP_MD_CTX *ctx, unsigned char *md) 34 { 35 return MD2_Final(md, EVP_MD_CTX_md_data(ctx)); 36 } 37 38 static 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 52 const EVP_MD *EVP_md2(void) 53 { 54 return &md2_md; 55 } 56 #endif 57