19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_SHA1
24#include "crypt_types.h"
26#ifdef HITLS_CRYPTO_PROVIDER
27#include "bsl_params.h"
35#define CRYPT_SHA1_DIGESTSIZE 20
38#define CRYPT_SHA1_BLOCKSIZE 64
41typedef struct CryptSha1Ctx {
42 uint8_t m[CRYPT_SHA1_BLOCKSIZE];
43 uint32_t h[CRYPT_SHA1_DIGESTSIZE /
sizeof(uint32_t)];
49#define CRYPT_SHA1_Squeeze NULL
58CRYPT_SHA1_Ctx *CRYPT_SHA1_NewCtx(
void);
70CRYPT_SHA1_Ctx *CRYPT_SHA1_NewCtxEx(
void *libCtx, int32_t algId);
78void CRYPT_SHA1_FreeCtx(CRYPT_SHA1_Ctx *ctx);
89int32_t CRYPT_SHA1_Init(CRYPT_SHA1_Ctx *ctx);
101int32_t CRYPT_SHA1_InitEx(CRYPT_SHA1_Ctx *ctx,
void *param);
115int32_t CRYPT_SHA1_Update(CRYPT_SHA1_Ctx *ctx,
const uint8_t *in, uint32_t len);
130int32_t CRYPT_SHA1_Final(CRYPT_SHA1_Ctx *ctx, uint8_t *out, uint32_t *len);
140int32_t CRYPT_SHA1_Deinit(CRYPT_SHA1_Ctx *ctx);
151int32_t CRYPT_SHA1_CopyCtx(CRYPT_SHA1_Ctx *dst,
const CRYPT_SHA1_Ctx *src);
161CRYPT_SHA1_Ctx *CRYPT_SHA1_DupCtx(
const CRYPT_SHA1_Ctx *src);
163#ifdef HITLS_CRYPTO_PROVIDER
174int32_t CRYPT_SHA1_GetParam(CRYPT_SHA1_Ctx *ctx, BSL_Param *param);
176#define CRYPT_SHA1_GetParam NULL