All pastes #816458 Raw Edit

Someone

public text v1 · immutable
·published 2007-12-14 20:27 UTC
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;
}