@@ -715,7 +715,7 @@ static int tsip_rsa_test(int prnt, int keySize)
715715{
716716 int ret = 0 ;
717717
718- RsaKey * key = ( RsaKey * ) XMALLOC ( sizeof * key , NULL , DYNAMIC_TYPE_TMP_BUFFER ) ;
718+ RsaKey * key = NULL ;
719719 WC_RNG rng ;
720720 const char inStr [] = TEST_STRING ;
721721 const char inStr2 [] = TEST_STRING2 ;
@@ -726,10 +726,15 @@ static int tsip_rsa_test(int prnt, int keySize)
726726 byte * in2 = NULL ;
727727 byte * out = NULL ;
728728 byte * out2 = NULL ;
729+ int initRsa = 0 ;
730+ int devId = 7890 ; /* fixed devid for TSIP/SCE */
729731
732+ XMEMSET (& rng , 0 , sizeof (rng ));
733+
734+ key = (RsaKey * )XMALLOC (sizeof * key , NULL , DYNAMIC_TYPE_TMP_BUFFER );
730735 in = (byte * )XMALLOC (inLen , NULL , DYNAMIC_TYPE_TMP_BUFFER );
731736 in2 = (byte * )XMALLOC (inLen , NULL , DYNAMIC_TYPE_TMP_BUFFER );
732- out = (byte * )XMALLOC (outSz , NULL , DYNAMIC_TYPE_TMP_BUFFER );
737+ out = (byte * )XMALLOC (outSz , NULL , DYNAMIC_TYPE_TMP_BUFFER );
733738 out2 = (byte * )XMALLOC (outSz , NULL , DYNAMIC_TYPE_TMP_BUFFER );
734739
735740 if (key == NULL || in == NULL || out == NULL ||
@@ -738,17 +743,17 @@ static int tsip_rsa_test(int prnt, int keySize)
738743 goto out ;
739744 }
740745
741- XMEMSET (& rng , 0 , sizeof (rng ));
742746 XMEMSET (key , 0 , sizeof * key );
743747 XMEMCPY (in , inStr , inLen );
744748 XMEMCPY (in2 , inStr2 , inLen );
745749 XMEMSET (out , 0 , outSz );
746750 XMEMSET (out2 , 0 , outSz );
747751
748- ret = wc_InitRsaKey_ex (key , NULL , 7890 /* fixed devid for TSIP/SCE*/ );
752+ ret = wc_InitRsaKey_ex (key , NULL , devId );
749753 if (ret != 0 ) {
750754 goto out ;
751755 }
756+ initRsa = 1 ;
752757
753758 if ((ret = wc_InitRng (& rng )) != 0 )
754759 goto out ;
@@ -779,8 +784,11 @@ static int tsip_rsa_test(int prnt, int keySize)
779784
780785 ret = 0 ;
781786out :
787+
788+ wc_FreeRng (& rng );
782789 if (key != NULL ) {
783- wc_FreeRsaKey (key );
790+ if (initRsa )
791+ wc_FreeRsaKey (key );
784792 XFREE (key , NULL , DYNAMIC_TYPE_TMP_BUFFER );
785793 }
786794 XFREE (in , NULL , DYNAMIC_TYPE_TMP_BUFFER );
@@ -797,37 +805,41 @@ static int tsip_rsa_SignVerify_test(int prnt, int keySize)
797805{
798806 int ret = 0 ;
799807
800- RsaKey * key = ( RsaKey * ) XMALLOC ( sizeof * key , NULL , DYNAMIC_TYPE_TMP_BUFFER ) ;
808+ RsaKey * key = NULL ;
801809 WC_RNG rng ;
802810 const char inStr [] = TEST_STRING ;
803811 const char inStr2 [] = TEST_STRING2 ;
804812 const word32 inLen = (word32 )TEST_STRING_SZ ;
805813 const word32 outSz = RSA_TEST_BYTES ;
806-
807814 byte * in = NULL ;
808815 byte * in2 = NULL ;
809816 byte * out = NULL ;
817+ int initRsa = 0 ;
818+ int devId = 7890 ; /* fixed devid for TSIP/SCE */
810819
820+ XMEMSET (& rng , 0 , sizeof (rng ));
821+
822+ key = (RsaKey * )XMALLOC (sizeof * key , NULL , DYNAMIC_TYPE_TMP_BUFFER );
811823 in = (byte * )XMALLOC (inLen , NULL , DYNAMIC_TYPE_TMP_BUFFER );
812824 in2 = (byte * )XMALLOC (inLen , NULL , DYNAMIC_TYPE_TMP_BUFFER );
813- out = (byte * )XMALLOC (outSz , NULL , DYNAMIC_TYPE_TMP_BUFFER );
825+ out = (byte * )XMALLOC (outSz , NULL , DYNAMIC_TYPE_TMP_BUFFER );
814826
815- (void ) prnt ;
827+ (void )prnt ;
816828
817829 if (key == NULL || in == NULL || out == NULL ) {
818830 ret = -1 ;
819831 goto out ;
820832 }
821833
822- XMEMSET (& rng , 0 , sizeof (rng ));
823834 XMEMSET (key , 0 , sizeof * key );
824835 XMEMCPY (in , inStr , inLen );
825836 XMEMCPY (in2 , inStr2 , inLen );
826837
827- ret = wc_InitRsaKey_ex (key , NULL , 7890 /* fixed devid for TSIP/SCE*/ );
838+ ret = wc_InitRsaKey_ex (key , NULL , devId );
828839 if (ret != 0 ) {
829840 goto out ;
830841 }
842+ initRsa = 1 ;
831843
832844 if ((ret = wc_InitRng (& rng )) != 0 )
833845 goto out ;
@@ -858,9 +870,13 @@ static int tsip_rsa_SignVerify_test(int prnt, int keySize)
858870 goto out ;
859871 }
860872 ret = 0 ;
873+
861874 out :
875+
876+ wc_FreeRng (& rng );
862877 if (key != NULL ) {
863- wc_FreeRsaKey (key );
878+ if (initRsa )
879+ wc_FreeRsaKey (key );
864880 XFREE (key , NULL , DYNAMIC_TYPE_TMP_BUFFER );
865881 }
866882 XFREE (in , NULL , DYNAMIC_TYPE_TMP_BUFFER );
0 commit comments