@@ -589,16 +589,17 @@ int wolfCLU_sign_data_dilithium (byte* data, char* out, word32 dataSz, char* pri
589589 if (wc_dilithium_init (key ) != 0 ) {
590590 wolfCLU_LogError ("Failed to initialize Dilithium Key.\nRET: %d" , ret );
591591 #ifdef WOLFSSL_SMALL_STACK
592- wc_dilithium_free (key );
592+ XFREE (key , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
593593 #endif
594594 return WOLFCLU_FAILURE ;
595595 }
596596 XMEMSET (key , 0 , sizeof (dilithium_key ));
597597
598598 if (wc_InitRng (& rng ) != 0 ) {
599599 wolfCLU_LogError ("Failed to initialize rng.\nRET: %d" , ret );
600- #ifdef WOLFSSL_SMALL_STACK
601600 wc_dilithium_free (key );
601+ #ifdef WOLFSSL_SMALL_STACK
602+ XFREE (key , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
602603 #endif
603604 return WOLFCLU_FAILURE ;
604605 }
@@ -608,8 +609,9 @@ int wolfCLU_sign_data_dilithium (byte* data, char* out, word32 dataSz, char* pri
608609 if (privKeyFile == NULL ) {
609610 wolfCLU_LogError ("Faild to open Private key FILE." );
610611 wc_FreeRng (& rng );
611- #ifdef WOLFSSL_SMALL_STACK
612612 wc_dilithium_free (key );
613+ #ifdef WOLFSSL_SMALL_STACK
614+ XFREE (key , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
613615 #endif
614616 return ret ;
615617 }
@@ -620,8 +622,9 @@ int wolfCLU_sign_data_dilithium (byte* data, char* out, word32 dataSz, char* pri
620622 if (privBuf == NULL ) {
621623 XFCLOSE (privKeyFile );
622624 wc_FreeRng (& rng );
623- #ifdef WOLFSSL_SMALL_STACK
624625 wc_dilithium_free (key );
626+ #ifdef WOLFSSL_SMALL_STACK
627+ XFREE (key , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
625628 #endif
626629 return MEMORY_E ;
627630 }
@@ -633,8 +636,9 @@ int wolfCLU_sign_data_dilithium (byte* data, char* out, word32 dataSz, char* pri
633636 wolfCLU_Log (WOLFCLU_L0 , "incorecct size: %d" , privFileSz );
634637 XFREE (privBuf , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
635638 wc_FreeRng (& rng );
636- #ifdef WOLFSSL_SMALL_STACK
637639 wc_dilithium_free (key );
640+ #ifdef WOLFSSL_SMALL_STACK
641+ XFREE (key , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
638642 #endif
639643 return ret ;
640644 }
@@ -647,8 +651,9 @@ int wolfCLU_sign_data_dilithium (byte* data, char* out, word32 dataSz, char* pri
647651 wolfCLU_LogError ("Failed to convert PEM to DER.\nRET: %d" , ret );
648652 XFREE (privBuf , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
649653 wc_FreeRng (& rng );
650- #ifdef WOLFSSL_SMALL_STACK
651654 wc_dilithium_free (key );
655+ #ifdef WOLFSSL_SMALL_STACK
656+ XFREE (key , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
652657 #endif
653658 return ret ;
654659 }
@@ -659,12 +664,13 @@ int wolfCLU_sign_data_dilithium (byte* data, char* out, word32 dataSz, char* pri
659664
660665 /* retrieving private key and staoring in the Dilithium key */
661666 ret = wc_Dilithium_PrivateKeyDecode (privBuf , & index , key , privBufSz );
667+ XFREE (privBuf , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
662668 if (ret != 0 ) {
663669 wolfCLU_LogError ("Failed to decode private key.\nRET: %d" , ret );
664- XFREE (privBuf , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
665670 wc_FreeRng (& rng );
666- #ifdef WOLFSSL_SMALL_STACK
667671 wc_dilithium_free (key );
672+ #ifdef WOLFSSL_SMALL_STACK
673+ XFREE (key , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
668674 #endif
669675 return ret ;
670676 }
@@ -675,20 +681,22 @@ int wolfCLU_sign_data_dilithium (byte* data, char* out, word32 dataSz, char* pri
675681 if (outBuf == NULL ) {
676682 XFREE (privBuf , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
677683 wc_FreeRng (& rng );
678- #ifdef WOLFSSL_SMALL_STACK
679684 wc_dilithium_free (key );
685+ #ifdef WOLFSSL_SMALL_STACK
686+ XFREE (key , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
680687 #endif
681688 return MEMORY_E ;
682689 }
683-
690+
684691 /* sign the message usign Dilithium private key */
685692 ret = wc_dilithium_sign_msg (data , dataSz , outBuf , & outBufSz , key , & rng );
686693 if (ret != 0 ) {
687694 wolfCLU_LogError ("Failed to sign data with Dilithium private key.\nRET: %d" , ret );
688695 XFREE (outBuf , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
689696 wc_FreeRng (& rng );
690- #ifdef WOLFSSL_SMALL_STACK
691697 wc_dilithium_free (key );
698+ #ifdef WOLFSSL_SMALL_STACK
699+ XFREE (key , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
692700 #endif
693701 return ret ;
694702 }
@@ -701,9 +709,10 @@ int wolfCLU_sign_data_dilithium (byte* data, char* out, word32 dataSz, char* pri
701709
702710 XFREE (outBuf , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
703711 wc_FreeRng (& rng );
712+ wc_dilithium_free (key );
704713
705714#ifdef WOLFSSL_SMALL_STACK
706- wc_dilithium_free (key );
715+ XFREE (key , HEAP_HINT , DYNAMIC_TYPE_TMP_BUFFER );
707716#endif
708717
709718 return WOLFCLU_SUCCESS ;
0 commit comments