blob: 52129a61f744094848d8976a19f8a55e09095a14 [file] [log] [blame]
/*
* Copyright (c) 2019, Remi Pommarel <repk@triplefau.lt>
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef SHA_DMA_H
#define SHA_DMA_H
#define SHA256_HASHSZ 32
#define SHA256_BLOCKSZ 0x40
enum ASD_MODE {
ASM_INVAL,
ASM_SHA256,
ASM_SHA224,
};
struct asd_ctx {
uint8_t digest[SHA256_HASHSZ];
uint8_t block[SHA256_BLOCKSZ];
size_t blocksz;
enum ASD_MODE mode;
uint8_t started;
};
static inline void asd_sha_init(struct asd_ctx *ctx, enum ASD_MODE mode)
{
ctx->started = 0;
ctx->mode = mode;
ctx->blocksz = 0;
}
void asd_sha_update(struct asd_ctx *ctx, void *data, size_t len);
void asd_sha_finalize(struct asd_ctx *ctx);
#endif