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_RMD160 14 15# include <openssl/ripemd.h> 16# include <openssl/evp.h> 17# include <openssl/objects.h> 18# include <openssl/x509.h> 19# include <openssl/rsa.h> 20# include "crypto/evp.h" 21 22static int init(EVP_MD_CTX *ctx) 23{ 24 return RIPEMD160_Init(EVP_MD_CTX_md_data(ctx)); 25} 26 27static int update(EVP_MD_CTX *ctx, const void *data, size_t count) 28{ 29 return RIPEMD160_Update(EVP_MD_CTX_md_data(ctx), data, count); 30} 31 32static int final(EVP_MD_CTX *ctx, unsigned char *md) 33{ 34 return RIPEMD160_Final(md, EVP_MD_CTX_md_data(ctx)); 35} 36 37static const EVP_MD ripemd160_md = { 38 NID_ripemd160, 39 NID_ripemd160WithRSA, 40 RIPEMD160_DIGEST_LENGTH, 41 0, 42 init, 43 update, 44 final, 45 NULL, 46 NULL, 47 RIPEMD160_CBLOCK, 48 sizeof(EVP_MD *) + sizeof(RIPEMD160_CTX), 49}; 50 51const EVP_MD *EVP_ripemd160(void) 52{ 53 return &ripemd160_md; 54} 55#endif 56