#include #include #include #include #include #include #include "nessie.h" main(int argc, char **argv) { struct NESSIEstruct whirlpool_ctx; int desc, readed, counter; char buf[4100]; char digest[72]; if(argc != 2) { printf("Usage: whirlpool {filename}\n"); exit(1); } if((desc = open(argv[1],O_RDONLY)) < 0) { perror("Could not open file"); exit(2); } NESSIEinit(&whirlpool_ctx); readed = 1; while(readed > 0) { readed = read(desc,buf,4096); if(readed > 0) NESSIEadd(buf,readed * 8,&whirlpool_ctx); } NESSIEfinalize(&whirlpool_ctx,digest); printf("Whirlpool digest: "); for(counter = 0; counter < 64; counter++) printf("%02x",digest[counter] & 0xff); printf("\n"); }