@@ -7482,15 +7482,28 @@ static int CSR_MakeAndSign(WOLFTPM2_DEV* dev, WOLFTPM2_CSR* csr, CSRKey* key,
74827482 /* Optionally convert to PEM */
74837483 if (rc >= 0 && outFormat == ENCODING_TYPE_PEM ) {
74847484 #ifdef WOLFSSL_DER_TO_PEM
7485+ #ifdef WOLFTPM_SMALL_STACK
7486+ byte * tmp = (byte * )XMALLOC (rc , NULL , DYNAMIC_TYPE_TMP_BUFFER );
7487+ if (tmp == NULL ) {
7488+ rc = MEMORY_E ;
7489+ }
7490+ else
7491+ #else
74857492 byte tmp [MAX_CONTEXT_SIZE ];
74867493 if (rc > (int )sizeof (tmp )) {
74877494 rc = BUFFER_E ;
74887495 }
7489- else {
7490- XMEMCPY (tmp , out , rc );
7496+ else
7497+ #endif
7498+ {
7499+ int derSz = rc ;
7500+ XMEMCPY (tmp , out , derSz );
74917501 XMEMSET (out , 0 , outSz );
7492- rc = wc_DerToPem (tmp , (word32 )rc , out , outSz ,
7502+ rc = wc_DerToPem (tmp , (word32 )derSz , out , outSz ,
74937503 selfSignCert ? CERT_TYPE : CERTREQ_TYPE );
7504+ #ifdef WOLFTPM_SMALL_STACK
7505+ XFREE (tmp , NULL , DYNAMIC_TYPE_TMP_BUFFER );
7506+ #endif
74947507 }
74957508 #else
74967509 #ifdef DEBUG_WOLFTPM
@@ -7622,15 +7635,28 @@ static int CSR_MakeAndSign_Cb(WOLFTPM2_DEV* dev, WOLFTPM2_CSR* csr,
76227635 /* Optionally convert to PEM */
76237636 if (rc >= 0 && outFormat == ENCODING_TYPE_PEM ) {
76247637#ifdef WOLFSSL_DER_TO_PEM
7638+ #ifdef WOLFTPM_SMALL_STACK
7639+ byte * tmp = (byte * )XMALLOC (rc , NULL , DYNAMIC_TYPE_TMP_BUFFER );
7640+ if (tmp == NULL ) {
7641+ rc = MEMORY_E ;
7642+ }
7643+ else
7644+ #else
76257645 byte tmp [MAX_CONTEXT_SIZE ];
76267646 if (rc > (int )sizeof (tmp )) {
76277647 rc = BUFFER_E ;
76287648 }
7629- else {
7630- XMEMCPY (tmp , out , rc );
7649+ else
7650+ #endif
7651+ {
7652+ int derSz = rc ;
7653+ XMEMCPY (tmp , out , derSz );
76317654 XMEMSET (out , 0 , outSz );
7632- rc = wc_DerToPem (tmp , (word32 )rc , out , outSz ,
7655+ rc = wc_DerToPem (tmp , (word32 )derSz , out , outSz ,
76337656 selfSignCert ? CERT_TYPE : CERTREQ_TYPE );
7657+ #ifdef WOLFTPM_SMALL_STACK
7658+ XFREE (tmp , NULL , DYNAMIC_TYPE_TMP_BUFFER );
7659+ #endif
76347660 }
76357661#else
76367662 #ifdef DEBUG_WOLFTPM
0 commit comments