1 /***************************************************************************** 2 * 3 * Copyright (c) 2008-2010, CoreCodec, Inc. 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are met: 8 * * Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * * Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * * Neither the name of CoreCodec, Inc. nor the 14 * names of its contributors may be used to endorse or promote products 15 * derived from this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY CoreCodec, Inc. ``AS IS'' AND ANY 18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 * DISCLAIMED. IN NO EVENT SHALL CoreCodec, Inc. BE LIABLE FOR ANY 21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * 28 ****************************************************************************/ 29 30 #ifndef __MD5_H 31 #define __MD5_H 32 33 #include "corec/corec.h" 34 35 #ifdef __cplusplus 36 extern "C" { 37 #endif 38 39 #if defined(MD5_EXPORTS) 40 #define MD5_DLL DLLEXPORT 41 #elif defined(MD5_IMPORTS) 42 #define MD5_DLL DLLIMPORT 43 #else 44 #define MD5_DLL 45 #endif 46 47 typedef struct md5_ctx 48 { 49 uint32_t buf[4]; 50 uint32_t bits[2]; 51 uint8_t in[64]; 52 53 } md5_ctx; 54 55 MD5_DLL void MD5Init(md5_ctx* ctx); 56 MD5_DLL void MD5Update(md5_ctx* ctx, const uint8_t* buf, size_t len); 57 MD5_DLL void MD5Final(md5_ctx* ctx, uint8_t digest[16]); 58 59 #ifdef __cplusplus 60 } 61 #endif 62 63 #endif 64