|
|
|
/*============================================================================
|
|
|
|
KWSys - Kitware System Library
|
|
|
|
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
|
|
|
|
|
|
|
Distributed under the OSI-approved BSD License (the "License");
|
|
|
|
see accompanying file Copyright.txt for details.
|
|
|
|
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
|
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
See the License for more information.
|
|
|
|
============================================================================*/
|
|
|
|
#ifndef @KWSYS_NAMESPACE@_MD5_h
|
|
|
|
#define @KWSYS_NAMESPACE@_MD5_h
|
|
|
|
|
|
|
|
#include <@KWSYS_NAMESPACE@/Configure.h>
|
|
|
|
|
|
|
|
/* Redefine all public interface symbol names to be in the proper
|
|
|
|
namespace. These macros are used internally to kwsys only, and are
|
|
|
|
not visible to user code. Use kwsysHeaderDump.pl to reproduce
|
|
|
|
these macros after making changes to the interface. */
|
|
|
|
#if !defined(KWSYS_NAMESPACE)
|
|
|
|
# define kwsys_ns(x) @KWSYS_NAMESPACE@##x
|
|
|
|
# define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT
|
|
|
|
#endif
|
|
|
|
#if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
|
|
|
|
# define kwsysMD5 kwsys_ns(MD5)
|
|
|
|
# define kwsysMD5_s kwsys_ns(MD5_s)
|
|
|
|
# define kwsysMD5_New kwsys_ns(MD5_New)
|
|
|
|
# define kwsysMD5_Delete kwsys_ns(MD5_Delete)
|
|
|
|
# define kwsysMD5_Initialize kwsys_ns(MD5_Initialize)
|
|
|
|
# define kwsysMD5_Append kwsys_ns(MD5_Append)
|
|
|
|
# define kwsysMD5_Finalize kwsys_ns(MD5_Finalize)
|
|
|
|
# define kwsysMD5_FinalizeHex kwsys_ns(MD5_FinalizeHex)
|
|
|
|
# define kwsysMD5_DigestToHex kwsys_ns(MD5_DigestToHex)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(__cplusplus)
|
|
|
|
extern "C"
|
|
|
|
{
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/**
|
|
|
|
* MD5 state data structure.
|
|
|
|
*/
|
|
|
|
typedef struct kwsysMD5_s kwsysMD5;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create a new MD5 instance. The returned instance is not initialized.
|
|
|
|
*/
|
|
|
|
kwsysEXPORT kwsysMD5* kwsysMD5_New(void);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Delete an old MD5 instance.
|
|
|
|
*/
|
|
|
|
kwsysEXPORT void kwsysMD5_Delete(kwsysMD5* md5);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Initialize a new MD5 digest.
|
|
|
|
*/
|
|
|
|
kwsysEXPORT void kwsysMD5_Initialize(kwsysMD5* md5);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Append data to an MD5 digest. If the given length is negative,
|
|
|
|
* data will be read up to but not including a terminating null.
|
|
|
|
*/
|
|
|
|
kwsysEXPORT void kwsysMD5_Append(kwsysMD5* md5, unsigned char const* data,
|
|
|
|
int length);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Finalize a MD5 digest and get the 16-byte hash value.
|
|
|
|
*/
|
|
|
|
kwsysEXPORT void kwsysMD5_Finalize(kwsysMD5* md5, unsigned char digest[16]);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Finalize a MD5 digest and get the 32-bit hexadecimal representation.
|
|
|
|
*/
|
|
|
|
kwsysEXPORT void kwsysMD5_FinalizeHex(kwsysMD5* md5, char buffer[32]);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Convert a MD5 digest 16-byte value to a 32-byte hexadecimal representation.
|
|
|
|
*/
|
|
|
|
kwsysEXPORT void kwsysMD5_DigestToHex(unsigned char const digest[16],
|
|
|
|
char buffer[32]);
|
|
|
|
|
|
|
|
#if defined(__cplusplus)
|
|
|
|
} /* extern "C" */
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* If we are building a kwsys .c or .cxx file, let it use these macros.
|
|
|
|
Otherwise, undefine them to keep the namespace clean. */
|
|
|
|
#if !defined(KWSYS_NAMESPACE)
|
|
|
|
# undef kwsys_ns
|
|
|
|
# undef kwsysEXPORT
|
|
|
|
# if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
|
|
|
|
# undef kwsysMD5
|
|
|
|
# undef kwsysMD5_s
|
|
|
|
# undef kwsysMD5_New
|
|
|
|
# undef kwsysMD5_Delete
|
|
|
|
# undef kwsysMD5_Initialize
|
|
|
|
# undef kwsysMD5_Append
|
|
|
|
# undef kwsysMD5_Finalize
|
|
|
|
# undef kwsysMD5_FinalizeHex
|
|
|
|
# undef kwsysMD5_DigestToHex
|
|
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|