28#include <wolfssl/wolfcrypt/settings.h>
32#include "prefix_sha.h"
40typedef struct WOLFSSL_SHA_CTX {
42#if defined(STM32_HASH)
45 void* holder[(112 + WC_ASYNC_DEV_SIZE) /
sizeof(
void*)];
48 void* cryptocb_holder[(
sizeof(int) +
sizeof(
void*) + 4) /
sizeof(
void*)];
52WOLFSSL_API
int wolfSSL_SHA_Init(WOLFSSL_SHA_CTX*);
53WOLFSSL_API
int wolfSSL_SHA_Update(WOLFSSL_SHA_CTX*,
const void*,
unsigned long);
54WOLFSSL_API
int wolfSSL_SHA_Final(
unsigned char*, WOLFSSL_SHA_CTX*);
57WOLFSSL_API
int wolfSSL_SHA1_Init(WOLFSSL_SHA_CTX*);
58WOLFSSL_API
int wolfSSL_SHA1_Update(WOLFSSL_SHA_CTX*,
const void*,
unsigned long);
59WOLFSSL_API
int wolfSSL_SHA1_Final(
unsigned char*, WOLFSSL_SHA_CTX*);
62 SHA_DIGEST_LENGTH = 20
66typedef WOLFSSL_SHA_CTX SHA_CTX;
68#define SHA_Init wolfSSL_SHA_Init
69#define SHA_Update wolfSSL_SHA_Update
70#define SHA_Final wolfSSL_SHA_Final
72#define SHA1_Init wolfSSL_SHA1_Init
73#define SHA1_Update wolfSSL_SHA1_Update
74#define SHA1_Final wolfSSL_SHA1_Final
84 ALIGN16
void* holder[(272 + WC_ASYNC_DEV_SIZE) /
sizeof(
void*)];
93 SHA224_DIGEST_LENGTH = 28
99#define SHA224_Init wolfSSL_SHA224_Init
100#define SHA224_Update wolfSSL_SHA224_Update
101#define SHA224_Final wolfSSL_SHA224_Final
111 ALIGN16
void* holder[(272 + WC_ASYNC_DEV_SIZE) /
sizeof(
void*)];
120 SHA256_DIGEST_LENGTH = 32
126#define SHA256_Init wolfSSL_SHA256_Init
127#define SHA256_Update wolfSSL_SHA256_Update
128#define SHA256_Final wolfSSL_SHA256_Final
129#if defined(NO_OLD_SHA_NAMES) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
132 #define SHA256 wolfSSL_SHA256
140 void* holder[(256 + WC_ASYNC_DEV_SIZE) /
sizeof(
void*)];
149 SHA384_DIGEST_LENGTH = 48
155#define SHA384_Init wolfSSL_SHA384_Init
156#define SHA384_Update wolfSSL_SHA384_Update
157#define SHA384_Final wolfSSL_SHA384_Final
158#if defined(NO_OLD_SHA_NAMES) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
161 #define SHA384 wolfSSL_SHA384
169 void* holder[(288 + WC_ASYNC_DEV_SIZE) /
sizeof(
void*)];
178 SHA512_DIGEST_LENGTH = 64
184#define SHA512_Init wolfSSL_SHA512_Init
185#define SHA512_Update wolfSSL_SHA512_Update
186#define SHA512_Final wolfSSL_SHA512_Final
187#if defined(NO_OLD_SHA_NAMES) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST)
190 #define SHA512 wolfSSL_SHA512