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 22 extern 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 35 extern 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 44 extern 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 53 extern void openssl_hash_init(); 54 55 #endif 56