rendered paste body#include <stdio.h>
#include <md5.h>
#define BUFSIZE 65536
int main(int argc, char **argv) {
FILE *input;
char *buffer;
int readlen;
MD5_CTX md5_context;
unsigned char finalmd5[16];
int itr;
if (argc < 2) {
printf("Usage is %s <file>\n", argv[0]);
exit(1);
}
if ((buffer = malloc(BUFSIZE)) == NULL) {
printf("Unable to allocate %i bytes for buffer\n", BUFSIZE);
exit(1);
}
if ((input = fopen(argv[1], "rb")) == NULL) {
printf("Unable to open %s\n", argv[1]);
perror("fopen");
exit(1);
}
MD5Init(&md5_context);
do {
readlen = fread(buffer, 1, BUFSIZE, input);
MD5Update(&md5_context, buffer, readlen);
} while (readlen > 0);
MD5Final(finalmd5, &md5_context);
printf("md5sum: ");
for (itr = 0; itr < 16; itr++)
printf("%.2x", finalmd5[itr]);
printf("\n");
return 0;
}