Example #1
0
void sha512_test (const void *msg, int len, void *out) {
  sha512_ctx ctx;
  
  rhash_sha512_init (&ctx);
  rhash_sha512_update (&ctx, msg, len);
  rhash_sha512_final (&ctx, out);
}
Example #2
0
static inline void HashFunction_Final(hash_ctx *const ctx, unsigned char *const result)
{
	switch(ctx->hashType)
	{
		case STD_HASHTYPE_CRC_32:
			rhash_crc32_final(&ctx->data.crc32, result);
			return;
		case STD_HASHTYPE_MD5_128:
			rhash_md5_final(&ctx->data.md5, result);
			return;
		case STD_HASHTYPE_SHA1_160:
			rhash_sha1_final(&ctx->data.sha1, result);
			return;
		case STD_HASHTYPE_SHA2_224:
		case STD_HASHTYPE_SHA2_256:
			rhash_sha256_final(&ctx->data.sha256, result);
			return;
		case STD_HASHTYPE_SHA2_384:
		case STD_HASHTYPE_SHA2_512:
			rhash_sha512_final(&ctx->data.sha512, result);
			return;
		case STD_HASHTYPE_SHA3_224:
		case STD_HASHTYPE_SHA3_256:
		case STD_HASHTYPE_SHA3_384:
		case STD_HASHTYPE_SHA3_512:
			rhash_sha3_final(&ctx->data.sha3, result);
			return;
		case STD_HASHTYPE_BLK2_224:
		case STD_HASHTYPE_BLK2_256:
		case STD_HASHTYPE_BLK2_384:
		case STD_HASHTYPE_BLK2_512:
			if(blake2b_final(&ctx->data.balke2, result, Blake2_Size(ctx->hashType)) != 0)
			{
				MessageBox(NULL, T("Blake2_Final internal error, going to abort!"), T("StdUtils::HashFunction_Final"), MB_ICONSTOP | MB_TOPMOST);
				abort();
			}
			return;
		default:
			MessageBox(NULL, T("Inconsistent state detected, going to abort!"), T("StdUtils::HashFunction_Final"), MB_ICONSTOP | MB_TOPMOST);
			abort();
	}
}