diff --git a/scripts/tls13.test b/scripts/tls13.test index e7a2b3618..70f007265 100755 --- a/scripts/tls13.test +++ b/scripts/tls13.test @@ -280,11 +280,11 @@ if [ "$early_data" = "yes" -a "$psk" = "yes" ]; then RESULT=$? remove_ready_file early_data_cnt=`grep 'Early Data' $server_out_file | wc -l` - if [ $early_data_cnt -ne 2 -a $early_data_cnt -ne 4 ]; then + if [ $early_data_cnt -ne 3 -a $early_data_cnt -ne 4 ]; then RESULT=1 fi if [ $RESULT -ne 0 ]; then - echo -e "\n\nIssue with TLS v1.3 Early Data - session ticket" + echo -e "\n\nIssue with TLS v1.3 Early Data - PSK" do_cleanup exit 1 fi diff --git a/src/internal.c b/src/internal.c index eeebe5302..20df4f998 100644 --- a/src/internal.c +++ b/src/internal.c @@ -1804,7 +1804,7 @@ int InitSSL_Ctx(WOLFSSL_CTX* ctx, WOLFSSL_METHOD* method, void* heap) /* WOLFSSL_X509_VERIFY_PARAM */ if ((ctx->param = (WOLFSSL_X509_VERIFY_PARAM*)XMALLOC( sizeof(WOLFSSL_X509_VERIFY_PARAM), - ctx->heap, DYNAMIC_TYPE_OPENSSL)) == NULL) { + heap, DYNAMIC_TYPE_OPENSSL)) == NULL) { WOLFSSL_MSG("ctx->param memory error"); return MEMORY_E; } diff --git a/src/ssl.c b/src/ssl.c index 0b99b5fa4..14f112311 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -17188,12 +17188,7 @@ size_t wolfSSL_get_client_random(const WOLFSSL* ssl, unsigned char* out, int ret = WOLFSSL_SUCCESS; WOLFSSL_ENTER("SHA512_Transform"); - #if defined(LITTLE_ENDIAN_ORDER) - { - ByteReverseWords64((word64*)data, (word64*)data, - WC_SHA512_BLOCK_SIZE); - } - #endif + ret = wc_Sha512Transform((wc_Sha512*)sha512, data); /* return 1 on success, 0 otherwise */ diff --git a/tests/api.c b/tests/api.c index 5ec6f003f..07b6f0879 100644 --- a/tests/api.c +++ b/tests/api.c @@ -33228,7 +33228,7 @@ static void test_wolfSSL_SHA256(void) static void test_wolfSSL_SHA512_Transform(void) { -#if defined(OPENSSL_EXTRA) && !defined(NO_SHA512) +#if defined(OPENSSL_EXTRA) && defined(WOLFSSL_SHA512) byte input1[] = ""; byte input2[] = "abc"; byte local[WC_SHA512_BLOCK_SIZE]; diff --git a/wolfcrypt/src/sha512.c b/wolfcrypt/src/sha512.c index 45a70e03a..0353cfc64 100644 --- a/wolfcrypt/src/sha512.c +++ b/wolfcrypt/src/sha512.c @@ -923,16 +923,31 @@ int wc_Sha512Transform(wc_Sha512* sha, const unsigned char* data) /* back up buffer */ #if defined(WOLFSSL_SMALL_STACK) word64* buffer; - buffer = (word64*) XMALLOC(sizeof(word64) * 16, NULL, DYNAMIC_TYPE_TMP_BUFFER); + buffer = (word64*) XMALLOC(sizeof(word64) * 16, NULL, + DYNAMIC_TYPE_TMP_BUFFER); if (buffer == NULL) return MEMORY_E; #else word64 buffer[WC_SHA512_BLOCK_SIZE / sizeof(word64)]; #endif - + +#if defined(HAVE_INTEL_AVX1) || defined(HAVE_INTEL_AVX2) + Sha512_SetTransform(); +#endif + +#if defined(LITTLE_ENDIAN_ORDER) +#if defined(HAVE_INTEL_AVX1) || defined(HAVE_INTEL_AVX2) + if (!IS_INTEL_AVX1(intel_flags) && !IS_INTEL_AVX2(intel_flags)) +#endif + { + ByteReverseWords64((word64*)data, (word64*)data, + WC_SHA512_BLOCK_SIZE); + } +#endif + XMEMCPY(buffer, sha->buffer, WC_SHA512_BLOCK_SIZE); XMEMCPY(sha->buffer, data, WC_SHA512_BLOCK_SIZE); - + ret = Transform_Sha512(sha); XMEMCPY(sha->buffer, buffer, WC_SHA512_BLOCK_SIZE);