@@ -7526,15 +7526,28 @@ static int CSR_MakeAndSign(WOLFTPM2_DEV* dev, WOLFTPM2_CSR* csr, CSRKey* key,
75267526 /* Optionally convert to PEM */
75277527 if (rc >= 0 && outFormat == ENCODING_TYPE_PEM ) {
75287528 #ifdef WOLFSSL_DER_TO_PEM
7529+ #ifdef WOLFTPM_SMALL_STACK
7530+ byte * tmp = (byte * )XMALLOC (rc , NULL , DYNAMIC_TYPE_TMP_BUFFER );
7531+ if (tmp == NULL ) {
7532+ rc = MEMORY_E ;
7533+ }
7534+ else
7535+ #else
75297536 byte tmp [MAX_CONTEXT_SIZE ];
75307537 if (rc > (int )sizeof (tmp )) {
75317538 rc = BUFFER_E ;
75327539 }
7533- else {
7534- XMEMCPY (tmp , out , rc );
7540+ else
7541+ #endif
7542+ {
7543+ int derSz = rc ;
7544+ XMEMCPY (tmp , out , derSz );
75357545 XMEMSET (out , 0 , outSz );
7536- rc = wc_DerToPem (tmp , (word32 )rc , out , outSz ,
7546+ rc = wc_DerToPem (tmp , (word32 )derSz , out , outSz ,
75377547 selfSignCert ? CERT_TYPE : CERTREQ_TYPE );
7548+ #ifdef WOLFTPM_SMALL_STACK
7549+ XFREE (tmp , NULL , DYNAMIC_TYPE_TMP_BUFFER );
7550+ #endif
75387551 }
75397552 #else
75407553 #ifdef DEBUG_WOLFTPM
@@ -7666,15 +7679,28 @@ static int CSR_MakeAndSign_Cb(WOLFTPM2_DEV* dev, WOLFTPM2_CSR* csr,
76667679 /* Optionally convert to PEM */
76677680 if (rc >= 0 && outFormat == ENCODING_TYPE_PEM ) {
76687681#ifdef WOLFSSL_DER_TO_PEM
7682+ #ifdef WOLFTPM_SMALL_STACK
7683+ byte * tmp = (byte * )XMALLOC (rc , NULL , DYNAMIC_TYPE_TMP_BUFFER );
7684+ if (tmp == NULL ) {
7685+ rc = MEMORY_E ;
7686+ }
7687+ else
7688+ #else
76697689 byte tmp [MAX_CONTEXT_SIZE ];
76707690 if (rc > (int )sizeof (tmp )) {
76717691 rc = BUFFER_E ;
76727692 }
7673- else {
7674- XMEMCPY (tmp , out , rc );
7693+ else
7694+ #endif
7695+ {
7696+ int derSz = rc ;
7697+ XMEMCPY (tmp , out , derSz );
76757698 XMEMSET (out , 0 , outSz );
7676- rc = wc_DerToPem (tmp , (word32 )rc , out , outSz ,
7699+ rc = wc_DerToPem (tmp , (word32 )derSz , out , outSz ,
76777700 selfSignCert ? CERT_TYPE : CERTREQ_TYPE );
7701+ #ifdef WOLFTPM_SMALL_STACK
7702+ XFREE (tmp , NULL , DYNAMIC_TYPE_TMP_BUFFER );
7703+ #endif
76787704 }
76797705#else
76807706 #ifdef DEBUG_WOLFTPM
0 commit comments