// by juza - iamjuza [at] gmail [dot] com

#include "Hash.h"
#include "commons.h"

#include <stdio.h>

int main(void)
{
	PHASH lpHash	= {0};

	if (newHash(&lpHash))
	{
		printf("------------\n");
		printf("CRC-16     : %s\n", lpHash->crc16File((PCUBYTE)"example.exe"));
		printf("crc16ccitt : %s\n", lpHash->crc16ccittFile((PCUBYTE)"example.exe"));
		printf("CRC-32     : %s\n", lpHash->crc32File((PCUBYTE)"example.exe"));
		printf("CRC-64     : %s\n", lpHash->crc64File((PCUBYTE)"example.exe"));
		printf("------------\n");
		printf("GOST       : %s\n", lpHash->gostFile((PCUBYTE)"example.exe"));
		printf("------------\n");
		printf("MD2        : %s\n", lpHash->md2File((PCUBYTE)"example.exe"));
		printf("MD4        : %s\n", lpHash->md4File((PCUBYTE)"example.exe"));
		printf("MD5        : %s\n", lpHash->md5File((PCUBYTE)"example.exe"));
		printf("------------\n");
		printf("haval128p3 : %s\n", lpHash->haval128p3File((PCUBYTE)"example.exe"));
		printf("haval128p4 : %s\n", lpHash->haval128p4File((PCUBYTE)"example.exe"));
		printf("haval128p5 : %s\n", lpHash->haval128p5File((PCUBYTE)"example.exe"));
		printf("haval160p3 : %s\n", lpHash->haval160p3File((PCUBYTE)"example.exe"));
		printf("haval160p3 : %s\n", lpHash->haval160p4File((PCUBYTE)"example.exe"));
		printf("haval160p5 : %s\n", lpHash->haval160p5File((PCUBYTE)"example.exe"));
		printf("haval192p3 : %s\n", lpHash->haval192p3File((PCUBYTE)"example.exe"));
		printf("haval192p4 : %s\n", lpHash->haval192p4File((PCUBYTE)"example.exe"));
		printf("haval192p5 : %s\n", lpHash->haval192p5File((PCUBYTE)"example.exe"));
		printf("haval224p3 : %s\n", lpHash->haval224p3File((PCUBYTE)"example.exe"));
		printf("haval224p4 : %s\n", lpHash->haval224p4File((PCUBYTE)"example.exe"));
		printf("haval224p5 : %s\n", lpHash->haval224p5File((PCUBYTE)"example.exe"));
		printf("haval256p3 : %s\n", lpHash->haval256p3File((PCUBYTE)"example.exe"));
		printf("haval256p4 : %s\n", lpHash->haval256p4File((PCUBYTE)"example.exe"));
		printf("haval256p5 : %s\n", lpHash->haval256p5File((PCUBYTE)"example.exe"));
		printf("------------\n");
		printf("SHA128     : %s\n", lpHash->sha128File((PCUBYTE)"example.exe"));
		printf("SHA224     : %s\n", lpHash->sha224File((PCUBYTE)"example.exe"));
		printf("SHA256     : %s\n", lpHash->sha256File((PCUBYTE)"example.exe"));
		printf("SHA384     : %s\n", lpHash->sha384File((PCUBYTE)"example.exe"));
		printf("SHA512     : %s\n", lpHash->sha512File((PCUBYTE)"example.exe"));
		printf("------------\n");
		printf("RIPEMD-128 : %s\n", lpHash->ripemd128File((PCUBYTE)"example.exe"));
		printf("RIPEMD-160 : %s\n", lpHash->ripemd160File((PCUBYTE)"example.exe"));
		printf("------------\n");
		printf("Tiger      : %s\n", lpHash->tigerFile((PCUBYTE)"example.exe"));
		printf("------------\n");
		printf("Whirlpool  : %s\n", lpHash->whirlpoolFile((PCUBYTE)"example.exe"));
		printf("------------\n");

		closeHash(lpHash);
	}

	return 0;
}