25 #ifndef WOLFSSL_SHA3_H_ 26 #define WOLFSSL_SHA3_H_ 28 #include <wolfssl/wolfcrypt/settings.h> 32 #include "prefix_sha.h" 43 struct WOLFSSL_SHA3_CTX {
45 ALIGN16
void* holder[(424 + WC_ASYNC_DEV_SIZE) /
sizeof(
void*)];
48 #ifndef WOLFSSL_NOSHA3_224 49 typedef struct WOLFSSL_SHA3_CTX WOLFSSL_SHA3_224_CTX;
51 WOLFSSL_API
int wolfSSL_SHA3_224_Init(WOLFSSL_SHA3_224_CTX*);
52 WOLFSSL_API
int wolfSSL_SHA3_224_Update(WOLFSSL_SHA3_224_CTX*,
const void*,
54 WOLFSSL_API
int wolfSSL_SHA3_224_Final(
unsigned char*, WOLFSSL_SHA3_224_CTX*);
57 SHA3_224_DIGEST_LENGTH = 28
60 typedef WOLFSSL_SHA3_224_CTX SHA3_224_CTX;
62 #define SHA3_224_Init wolfSSL_SHA3_224_Init 63 #define SHA3_224_Update wolfSSL_SHA3_224_Update 64 #define SHA3_224_Final wolfSSL_SHA3_224_Final 65 #if defined(NO_OLD_WC_NAMES) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST) 66 #define SHA3_224 wolfSSL_SHA3_224 71 #ifndef WOLFSSL_NOSHA3_256 72 typedef struct WOLFSSL_SHA3_CTX WOLFSSL_SHA3_256_CTX;
75 WOLFSSL_API
int wolfSSL_SHA3_256_Init(WOLFSSL_SHA3_256_CTX*);
76 WOLFSSL_API
int wolfSSL_SHA3_256_Update(WOLFSSL_SHA3_256_CTX*,
const void*,
78 WOLFSSL_API
int wolfSSL_SHA3_256_Final(
unsigned char*, WOLFSSL_SHA3_256_CTX*);
81 SHA3_256_DIGEST_LENGTH = 32
85 typedef WOLFSSL_SHA3_256_CTX SHA3_256_CTX;
87 #define SHA3_256_Init wolfSSL_SHA3_256_Init 88 #define SHA3_256_Update wolfSSL_SHA3_256_Update 89 #define SHA3_256_Final wolfSSL_SHA3_256_Final 90 #if defined(NO_OLD_WC_NAMES) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST) 91 #define SHA3_256 wolfSSL_SHA3_256 96 typedef struct WOLFSSL_SHA3_CTX WOLFSSL_SHA3_384_CTX;
98 WOLFSSL_API
int wolfSSL_SHA3_384_Init(WOLFSSL_SHA3_384_CTX*);
99 WOLFSSL_API
int wolfSSL_SHA3_384_Update(WOLFSSL_SHA3_384_CTX*,
const void*,
101 WOLFSSL_API
int wolfSSL_SHA3_384_Final(
unsigned char*, WOLFSSL_SHA3_384_CTX*);
104 SHA3_384_DIGEST_LENGTH = 48
107 typedef WOLFSSL_SHA3_384_CTX SHA3_384_CTX;
109 #define SHA3_384_Init wolfSSL_SHA3_384_Init 110 #define SHA3_384_Update wolfSSL_SHA3_384_Update 111 #define SHA3_384_Final wolfSSL_SHA3_384_Final 112 #if defined(NO_OLD_WC_NAMES) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST) 113 #define SHA3_384 wolfSSL_SHA3_384 117 #ifndef WOLFSSL_NOSHA3_512 119 typedef struct WOLFSSL_SHA3_CTX WOLFSSL_SHA3_512_CTX;
121 WOLFSSL_API
int wolfSSL_SHA3_512_Init(WOLFSSL_SHA3_512_CTX*);
122 WOLFSSL_API
int wolfSSL_SHA3_512_Update(WOLFSSL_SHA3_512_CTX*,
const void*,
124 WOLFSSL_API
int wolfSSL_SHA3_512_Final(
unsigned char*, WOLFSSL_SHA3_512_CTX*);
127 SHA3_512_DIGEST_LENGTH = 64
131 typedef WOLFSSL_SHA3_512_CTX SHA3_512_CTX;
133 #define SHA3_512_Init wolfSSL_SHA3_512_Init 134 #define SHA3_512_Update wolfSSL_SHA3_512_Update 135 #define SHA3_512_Final wolfSSL_SHA3_512_Final 136 #if defined(NO_OLD_WC_NAMES) && !defined(HAVE_FIPS) && !defined(HAVE_SELFTEST) 137 #define SHA3_512 wolfSSL_SHA3_512