1/* 2 * Copyright (C) 2009 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#ifndef __OPENSSL_HASH__ 18#define __OPENSSL_HASH__ 19 20#include <openssl/evp.h> 21 22extern const EVP_MD *sha1_md; 23#define SHA1_SIGNATURE_SIZE 20 24#define SHA1_CTX EVP_MD_CTX 25#define SHA1_Init(ctx) { \ 26 EVP_MD_CTX_init(ctx); \ 27 EVP_DigestInit_ex(ctx, sha1_md, NULL); \ 28} 29#define SHA1_Update EVP_DigestUpdate 30#define SHA1_Final(digest, ctx) { \ 31 int md_len; \ 32 EVP_DigestFinal_ex(ctx, digest, &md_len); \ 33} 34 35extern const EVP_MD *md4_md; 36#define MD4_CTX EVP_MD_CTX 37#define MD4Init(ctx) { \ 38 EVP_MD_CTX_init(ctx); \ 39 EVP_DigestInit_ex(ctx, md4_md, NULL); \ 40} 41#define MD4Update EVP_DigestUpdate 42#define MD4Final SHA1_Final 43 44extern const EVP_MD *md5_md; 45#define MD5_CTX EVP_MD_CTX 46#define MD5_Init(ctx) { \ 47 EVP_MD_CTX_init(ctx); \ 48 EVP_DigestInit_ex(ctx, md5_md, NULL); \ 49} 50#define MD5_Update EVP_DigestUpdate 51#define MD5_Final SHA1_Final 52 53extern void openssl_hash_init(); 54 55#endif 56