diff options
author | Brad King <brad.king@kitware.com> | 2007-03-14 19:12:10 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2007-03-14 19:12:10 (GMT) |
commit | 6d2f08b6e1dd1c0f5dc9f277834e839138a8ddba (patch) | |
tree | 0290f061e6018efec0dd41256696dd81c1ce1994 /Source/kwsys/testEncode.c | |
parent | a724f0d425f42a1352f5a7a6a6403f27c8acd145 (diff) | |
download | CMake-6d2f08b6e1dd1c0f5dc9f277834e839138a8ddba.zip CMake-6d2f08b6e1dd1c0f5dc9f277834e839138a8ddba.tar.gz CMake-6d2f08b6e1dd1c0f5dc9f277834e839138a8ddba.tar.bz2 |
ENH: Added MD5 implementation to KWSys.
Diffstat (limited to 'Source/kwsys/testEncode.c')
-rw-r--r-- | Source/kwsys/testEncode.c | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/Source/kwsys/testEncode.c b/Source/kwsys/testEncode.c new file mode 100644 index 0000000..fb576c4 --- /dev/null +++ b/Source/kwsys/testEncode.c @@ -0,0 +1,78 @@ +/*========================================================================= + + Program: KWSys - Kitware System Library + Module: $RCSfile$ + + Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.kitware.com/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "kwsysPrivate.h" +#include KWSYS_HEADER(MD5.h) + +/* Work-around CMake dependency scanning limitation. This must + duplicate the above list of headers. */ +#if 0 +# include "MD5.h.in" +#endif + +#include <stdio.h> +#include <string.h> + +static const unsigned char testMD5input1[] = +" Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.\n" +" See Copyright.txt or http://www.kitware.com/Copyright.htm for details.\n"; +static const char testMD5output1[] = "04051e509e81ef0b1612ddf0e52ca89e"; + +static const int testMD5input2len = 28; +static const unsigned char testMD5input2[] = "the cow jumped over the moon"; +static const char testMD5output2[] = "a2ad137b746138fae4e5adca9c85d3ae"; + +static int testMD5_1(kwsysMD5* md5) +{ + char md5out[33]; + kwsysMD5_Initialize(md5); + kwsysMD5_Append(md5, testMD5input1, -1); + kwsysMD5_FinalizeHex(md5, md5out); + md5out[32] = 0; + printf("md5sum 1: expected [%s]\n" + " got [%s]\n", + testMD5output1, md5out); + return (strcmp(md5out, testMD5output1) != 0)? 1:0; +} + +static int testMD5_2(kwsysMD5* md5) +{ + unsigned char digest[16]; + char md5out[33]; + kwsysMD5_Initialize(md5); + kwsysMD5_Append(md5, testMD5input2, testMD5input2len); + kwsysMD5_Finalize(md5, digest); + kwsysMD5_DigestToHex(digest, md5out); + md5out[32] = 0; + printf("md5sum 2: expected [%s]\n" + " got [%s]\n", + testMD5output2, md5out); + return (strcmp(md5out, testMD5output2) != 0)? 1:0; +} + +int testEncode(int argc, char* argv[]) +{ + int result = 0; + (void)argc; + (void)argv; + + /* Test MD5 digest. */ + { + kwsysMD5* md5 = kwsysMD5_New(); + result |= testMD5_1(md5); + result |= testMD5_2(md5); + kwsysMD5_Delete(md5); + } + + return result; +} |