You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
651 B
37 lines
651 B
/*
|
|
* 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
|