Add cross-stripe intel sample verify job
[fio.git] / crc / sha3.h
CommitLineData
82e3f7c4
JA
1/*
2 * Common values for SHA-3 algorithms
3 */
4#ifndef __CRYPTO_SHA3_H__
5#define __CRYPTO_SHA3_H__
6
7#include <inttypes.h>
8
9#define SHA3_224_DIGEST_SIZE (224 / 8)
10#define SHA3_224_BLOCK_SIZE (200 - 2 * SHA3_224_DIGEST_SIZE)
11
12#define SHA3_256_DIGEST_SIZE (256 / 8)
13#define SHA3_256_BLOCK_SIZE (200 - 2 * SHA3_256_DIGEST_SIZE)
14
15#define SHA3_384_DIGEST_SIZE (384 / 8)
16#define SHA3_384_BLOCK_SIZE (200 - 2 * SHA3_384_DIGEST_SIZE)
17
18#define SHA3_512_DIGEST_SIZE (512 / 8)
19#define SHA3_512_BLOCK_SIZE (200 - 2 * SHA3_512_DIGEST_SIZE)
20
21struct fio_sha3_ctx {
22 uint64_t st[25];
23 unsigned int md_len;
24 unsigned int rsiz;
25 unsigned int rsizw;
26
27 unsigned int partial;
28 uint8_t buf[SHA3_224_BLOCK_SIZE];
29
30 uint8_t *sha;
31};
32
33void fio_sha3_224_init(struct fio_sha3_ctx *sctx);
34void fio_sha3_256_init(struct fio_sha3_ctx *sctx);
35void fio_sha3_384_init(struct fio_sha3_ctx *sctx);
36void fio_sha3_512_init(struct fio_sha3_ctx *sctx);
37
38int fio_sha3_update(struct fio_sha3_ctx *sctx, const uint8_t *data,
39 unsigned int len);
40void fio_sha3_final(struct fio_sha3_ctx *sctx);
41
42#endif