1  /* MD5SUM.C - Sum MD5 file - 12/04/2011
 2  This program is derived from the RSA Data Security,
 3  Inc. MD5 Message-Digest Algorithm. */
 4  
 5  #include "md5.h"
 6  #include <stdio.h>
 7  #include <windows.h>
 8  
 9  int main (int argc, char *argv[])
10  {
11      FILE *file;
12      MD5_CTX context;
13      UINT32 i, len;
14      UCHAR buffer[MD5_BUFFER], digest[17], *d = digest;
15  
16      for (i = 1; i < (UINT32) argc; i++)
17      {
18          if (! (file = fopen (argv[i], "rb")))
19          {
20              printf ("\"%s\"  Error: can't be opened.\n", argv[i]);
21              return 1;
22          }
23          MD5Init (&context);
24          while ( (len = fread (buffer, 1, MD5_BUFFER, file)))
25              MD5Update (&context, buffer, len);
26          MD5Final (digest, &context);
27          fclose (file);
28  
29          CharToOem (argv[i], argv[i]);
30          digest[16] = '\0';
31          strrev ( (char *) digest);
32       /* printf ("\"%s\"  %016I64x%016I64x\n", argv[i], U64 (d, 8 ), U64 (d, 0)); */
33          printf ("\"%s\"  %08x%08x%08x%08x\n", argv[i], U32 (d, 12), U32 (d, 8), U32 (d, 4), U32 (d, 0));
34      }
35      return 0;
36  }  /* main */