Beispiel #1
0
/*ARGSUSED*/
void
abd_checksum_edonr_native(abd_t *abd, uint64_t size,
    const void *ctx_template, zio_cksum_t *zcp)
{
	uint8_t		digest[EDONR_MODE / 8];
	EdonRState	ctx;

	ASSERT(ctx_template != NULL);
	bcopy(ctx_template, &ctx, sizeof (ctx));
	(void) abd_iterate_func(abd, 0, size, edonr_incremental, &ctx);
	EdonRFinal(&ctx, digest);
	bcopy(digest, zcp->zc_word, sizeof (zcp->zc_word));
}
Beispiel #2
0
/*ARGSUSED*/
static void
zio_checksum_edonr_native(const void *buf, uint64_t size,
    const void *ctx_template, zio_cksum_t *zcp)
{
	uint8_t		digest[EDONR_MODE / 8];
	EdonRState	ctx;

	ASSERT(ctx_template != NULL);
	bcopy(ctx_template, &ctx, sizeof (ctx));
	EdonRUpdate(&ctx, buf, size * 8);
	EdonRFinal(&ctx, digest);
	bcopy(digest, zcp->zc_word, sizeof (zcp->zc_word));
}