mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-31 11:17:29 +02:00
Merge pull request #6130 from gojimmypi/Espressif_OpenSSL_interim
fix WOLFSSL_SHA_CTX for OpenSSL w/Espressif HW hash
This commit is contained in:
@ -36,18 +36,23 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* adder for HW crypto */
|
||||||
|
#if defined(STM32_HASH)
|
||||||
|
#define CTX_SHA_HW_ADDER sizeof(STM32_HASH_Context)
|
||||||
|
#elif defined(WOLFSSL_IMXRT1170_CAAM)
|
||||||
|
#define CTX_SHA_HW_ADDER (sizeof(caam_hash_ctx_t) + sizeof(caam_handle_t))
|
||||||
|
#elif defined(WOLFSSL_ESPWROOM32) && \
|
||||||
|
!defined(NO_WOLFSSL_ESP32WROOM32_CRYPT_HASH)
|
||||||
|
#define CTX_SHA_HW_ADDER sizeof(WC_ESP32SHA)
|
||||||
|
#else
|
||||||
|
#define CTX_SHA_HW_ADDER 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef NO_SHA
|
#ifndef NO_SHA
|
||||||
typedef struct WOLFSSL_SHA_CTX {
|
typedef struct WOLFSSL_SHA_CTX {
|
||||||
/* big enough to hold wolfcrypt Sha, but check on init */
|
/* big enough to hold wolfcrypt Sha, but check on init */
|
||||||
#if defined(STM32_HASH)
|
void* holder[(112 + WC_ASYNC_DEV_SIZE + CTX_SHA_HW_ADDER) / sizeof(void*)];
|
||||||
void* holder[(112 + WC_ASYNC_DEV_SIZE + sizeof(STM32_HASH_Context)) /
|
|
||||||
sizeof(void*)];
|
|
||||||
#elif defined(WOLFSSL_IMXRT1170_CAAM)
|
|
||||||
void* holder[(112 + WC_ASYNC_DEV_SIZE + sizeof(caam_hash_ctx_t) +
|
|
||||||
sizeof(caam_handle_t)) / sizeof(void*)];
|
|
||||||
#else
|
|
||||||
void* holder[(112 + WC_ASYNC_DEV_SIZE) / sizeof(void*)];
|
|
||||||
#endif
|
|
||||||
#if defined(WOLFSSL_DEVCRYPTO_HASH) || defined(WOLFSSL_HASH_KEEP)
|
#if defined(WOLFSSL_DEVCRYPTO_HASH) || defined(WOLFSSL_HASH_KEEP)
|
||||||
void* keephash_holder[sizeof(void*) + (2 * sizeof(unsigned int))];
|
void* keephash_holder[sizeof(void*) + (2 * sizeof(unsigned int))];
|
||||||
#endif
|
#endif
|
||||||
@ -97,16 +102,6 @@ typedef WOLFSSL_SHA_CTX SHA_CTX;
|
|||||||
#endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */
|
#endif /* OPENSSL_EXTRA || OPENSSL_EXTRA_X509_SMALL */
|
||||||
#endif /* !NO_SHA */
|
#endif /* !NO_SHA */
|
||||||
|
|
||||||
/* adder for HW crypto */
|
|
||||||
#ifdef STM32_HASH
|
|
||||||
#define CTX_SHA2_HW_ADDER 34
|
|
||||||
#elif defined(WOLFSSL_IMXRT1170_CAAM)
|
|
||||||
#define CTX_SHA2_HW_ADDER sizeof(caam_hash_ctx_t) + sizeof(caam_handle_t)
|
|
||||||
#elif defined(WOLFSSL_ESPWROOM32)
|
|
||||||
#define CTX_SHA2_HW_ADDER sizeof(WC_ESP32SHA)
|
|
||||||
#else
|
|
||||||
#define CTX_SHA2_HW_ADDER 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef WOLFSSL_SHA224
|
#ifdef WOLFSSL_SHA224
|
||||||
|
|
||||||
@ -115,7 +110,7 @@ typedef WOLFSSL_SHA_CTX SHA_CTX;
|
|||||||
* to Sha224, is expected to also be 16 byte aligned addresses. */
|
* to Sha224, is expected to also be 16 byte aligned addresses. */
|
||||||
typedef struct WOLFSSL_SHA224_CTX {
|
typedef struct WOLFSSL_SHA224_CTX {
|
||||||
/* big enough to hold wolfcrypt Sha224, but check on init */
|
/* big enough to hold wolfcrypt Sha224, but check on init */
|
||||||
ALIGN16 void* holder[(274 + CTX_SHA2_HW_ADDER + WC_ASYNC_DEV_SIZE) /
|
ALIGN16 void* holder[(274 + CTX_SHA_HW_ADDER + WC_ASYNC_DEV_SIZE) /
|
||||||
sizeof(void*)];
|
sizeof(void*)];
|
||||||
#if defined(WOLFSSL_DEVCRYPTO_HASH) || defined(WOLFSSL_HASH_KEEP)
|
#if defined(WOLFSSL_DEVCRYPTO_HASH) || defined(WOLFSSL_HASH_KEEP)
|
||||||
ALIGN16 void* keephash_holder[sizeof(void*) + (2 * sizeof(unsigned int))];
|
ALIGN16 void* keephash_holder[sizeof(void*) + (2 * sizeof(unsigned int))];
|
||||||
@ -156,7 +151,7 @@ typedef WOLFSSL_SHA224_CTX SHA224_CTX;
|
|||||||
* to Sha256, is expected to also be 16 byte aligned addresses. */
|
* to Sha256, is expected to also be 16 byte aligned addresses. */
|
||||||
typedef struct WOLFSSL_SHA256_CTX {
|
typedef struct WOLFSSL_SHA256_CTX {
|
||||||
/* big enough to hold wolfcrypt Sha256, but check on init */
|
/* big enough to hold wolfcrypt Sha256, but check on init */
|
||||||
ALIGN16 void* holder[(274 + CTX_SHA2_HW_ADDER + WC_ASYNC_DEV_SIZE) /
|
ALIGN16 void* holder[(274 + CTX_SHA_HW_ADDER + WC_ASYNC_DEV_SIZE) /
|
||||||
sizeof(void*)];
|
sizeof(void*)];
|
||||||
#if defined(WOLFSSL_DEVCRYPTO_HASH) || defined(WOLFSSL_HASH_KEEP)
|
#if defined(WOLFSSL_DEVCRYPTO_HASH) || defined(WOLFSSL_HASH_KEEP)
|
||||||
ALIGN16 void* keephash_holder[sizeof(void*) + (2 * sizeof(unsigned int))];
|
ALIGN16 void* keephash_holder[sizeof(void*) + (2 * sizeof(unsigned int))];
|
||||||
@ -207,7 +202,7 @@ typedef WOLFSSL_SHA256_CTX SHA256_CTX;
|
|||||||
#ifdef WOLFSSL_SHA384
|
#ifdef WOLFSSL_SHA384
|
||||||
typedef struct WOLFSSL_SHA384_CTX {
|
typedef struct WOLFSSL_SHA384_CTX {
|
||||||
/* big enough to hold wolfCrypt Sha384, but check on init */
|
/* big enough to hold wolfCrypt Sha384, but check on init */
|
||||||
void* holder[(268 + CTX_SHA2_HW_ADDER + WC_ASYNC_DEV_SIZE) / sizeof(void*)];
|
void* holder[(268 + CTX_SHA_HW_ADDER + WC_ASYNC_DEV_SIZE) / sizeof(void*)];
|
||||||
#if defined(WOLFSSL_DEVCRYPTO_HASH) || defined(WOLFSSL_HASH_KEEP)
|
#if defined(WOLFSSL_DEVCRYPTO_HASH) || defined(WOLFSSL_HASH_KEEP)
|
||||||
void* keephash_holder[sizeof(void*) + (2 * sizeof(unsigned int))];
|
void* keephash_holder[sizeof(void*) + (2 * sizeof(unsigned int))];
|
||||||
#endif
|
#endif
|
||||||
@ -242,7 +237,7 @@ typedef WOLFSSL_SHA384_CTX SHA384_CTX;
|
|||||||
#ifdef WOLFSSL_SHA512
|
#ifdef WOLFSSL_SHA512
|
||||||
typedef struct WOLFSSL_SHA512_CTX {
|
typedef struct WOLFSSL_SHA512_CTX {
|
||||||
/* big enough to hold wolfCrypt Sha384, but check on init */
|
/* big enough to hold wolfCrypt Sha384, but check on init */
|
||||||
void* holder[(288 + CTX_SHA2_HW_ADDER + WC_ASYNC_DEV_SIZE) / sizeof(void*)];
|
void* holder[(288 + CTX_SHA_HW_ADDER + WC_ASYNC_DEV_SIZE) / sizeof(void*)];
|
||||||
#if defined(WOLFSSL_DEVCRYPTO_HASH) || defined(WOLFSSL_HASH_KEEP)
|
#if defined(WOLFSSL_DEVCRYPTO_HASH) || defined(WOLFSSL_HASH_KEEP)
|
||||||
void* keephash_holder[sizeof(void*) + (2 * sizeof(unsigned int))];
|
void* keephash_holder[sizeof(void*) + (2 * sizeof(unsigned int))];
|
||||||
#endif
|
#endif
|
||||||
@ -334,4 +329,3 @@ WOLFSSL_API int wolfSSL_SHA512_256_Transform(WOLFSSL_SHA512_CTX* sha512,
|
|||||||
|
|
||||||
|
|
||||||
#endif /* WOLFSSL_SHA_H_ */
|
#endif /* WOLFSSL_SHA_H_ */
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user