コード例 #1
0
ファイル: HashUtils.cpp プロジェクト: EasyIME/PIME
static inline bool HashFunction_Init(const int hashType, hash_ctx *const ctx)
{
	memset(ctx, 0, sizeof(hash_ctx));
	switch(ctx->hashType = hashType)
	{
		case STD_HASHTYPE_CRC_32:   rhash_crc32_init(&ctx->data.crc32);   return true;
		case STD_HASHTYPE_MD5_128:  rhash_md5_init(&ctx->data.md5);       return true;
		case STD_HASHTYPE_SHA1_160: rhash_sha1_init(&ctx->data.sha1);     return true;
		case STD_HASHTYPE_SHA2_224: rhash_sha224_init(&ctx->data.sha256); return true;
		case STD_HASHTYPE_SHA2_256: rhash_sha256_init(&ctx->data.sha256); return true;
		case STD_HASHTYPE_SHA2_384: rhash_sha384_init(&ctx->data.sha512); return true;
		case STD_HASHTYPE_SHA2_512: rhash_sha512_init(&ctx->data.sha512); return true;
		case STD_HASHTYPE_SHA3_224: rhash_sha3_224_init(&ctx->data.sha3); return true;
		case STD_HASHTYPE_SHA3_256: rhash_sha3_256_init(&ctx->data.sha3); return true;
		case STD_HASHTYPE_SHA3_384: rhash_sha3_384_init(&ctx->data.sha3); return true;
		case STD_HASHTYPE_SHA3_512: rhash_sha3_512_init(&ctx->data.sha3); return true;
		case STD_HASHTYPE_BLK2_224:
		case STD_HASHTYPE_BLK2_256:
		case STD_HASHTYPE_BLK2_384:
		case STD_HASHTYPE_BLK2_512:
			if(blake2b_init(&ctx->data.balke2, Blake2_Size(ctx->hashType)) != 0)
			{
				MessageBox(NULL, T("Blake2_Init internal error, going to abort!"), T("StdUtils::HashFunction_Init"), MB_ICONSTOP | MB_TOPMOST);
				abort();
			}
			return true;
		default:
			ERROR_MSG(T("The specified hash type is unknown/unsupported!"));
			return false;
	}
}
コード例 #2
0
ファイル: bench-crypto.c プロジェクト: vstakhov/mum-hash
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);
}