1/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying 2 file Copyright.txt or https://cmake.org/licensing#kwsys for details. */ 3#ifndef @KWSYS_NAMESPACE@_MD5_h 4#define @KWSYS_NAMESPACE@_MD5_h 5 6#include <@KWSYS_NAMESPACE@/Configure.h> 7 8/* Redefine all public interface symbol names to be in the proper 9 namespace. These macros are used internally to kwsys only, and are 10 not visible to user code. Use kwsysHeaderDump.pl to reproduce 11 these macros after making changes to the interface. */ 12#if !defined(KWSYS_NAMESPACE) 13# define kwsys_ns(x) @KWSYS_NAMESPACE@##x 14# define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT 15#endif 16#if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS 17# define kwsysMD5 kwsys_ns(MD5) 18# define kwsysMD5_s kwsys_ns(MD5_s) 19# define kwsysMD5_New kwsys_ns(MD5_New) 20# define kwsysMD5_Delete kwsys_ns(MD5_Delete) 21# define kwsysMD5_Initialize kwsys_ns(MD5_Initialize) 22# define kwsysMD5_Append kwsys_ns(MD5_Append) 23# define kwsysMD5_Finalize kwsys_ns(MD5_Finalize) 24# define kwsysMD5_FinalizeHex kwsys_ns(MD5_FinalizeHex) 25# define kwsysMD5_DigestToHex kwsys_ns(MD5_DigestToHex) 26#endif 27 28#if defined(__cplusplus) 29extern "C" { 30#endif 31 32/** 33 * MD5 state data structure. 34 */ 35typedef struct kwsysMD5_s kwsysMD5; 36 37/** 38 * Create a new MD5 instance. The returned instance is not initialized. 39 */ 40kwsysEXPORT kwsysMD5* kwsysMD5_New(void); 41 42/** 43 * Delete an old MD5 instance. 44 */ 45kwsysEXPORT void kwsysMD5_Delete(kwsysMD5* md5); 46 47/** 48 * Initialize a new MD5 digest. 49 */ 50kwsysEXPORT void kwsysMD5_Initialize(kwsysMD5* md5); 51 52/** 53 * Append data to an MD5 digest. If the given length is negative, 54 * data will be read up to but not including a terminating null. 55 */ 56kwsysEXPORT void kwsysMD5_Append(kwsysMD5* md5, unsigned char const* data, 57 int length); 58 59/** 60 * Finalize a MD5 digest and get the 16-byte hash value. 61 */ 62kwsysEXPORT void kwsysMD5_Finalize(kwsysMD5* md5, unsigned char digest[16]); 63 64/** 65 * Finalize a MD5 digest and get the 32-bit hexadecimal representation. 66 */ 67kwsysEXPORT void kwsysMD5_FinalizeHex(kwsysMD5* md5, char buffer[32]); 68 69/** 70 * Convert a MD5 digest 16-byte value to a 32-byte hexadecimal representation. 71 */ 72kwsysEXPORT void kwsysMD5_DigestToHex(unsigned char const digest[16], 73 char buffer[32]); 74 75#if defined(__cplusplus) 76} /* extern "C" */ 77#endif 78 79/* If we are building a kwsys .c or .cxx file, let it use these macros. 80 Otherwise, undefine them to keep the namespace clean. */ 81#if !defined(KWSYS_NAMESPACE) 82# undef kwsys_ns 83# undef kwsysEXPORT 84# if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS 85# undef kwsysMD5 86# undef kwsysMD5_s 87# undef kwsysMD5_New 88# undef kwsysMD5_Delete 89# undef kwsysMD5_Initialize 90# undef kwsysMD5_Append 91# undef kwsysMD5_Finalize 92# undef kwsysMD5_FinalizeHex 93# undef kwsysMD5_DigestToHex 94# endif 95#endif 96 97#endif 98