@@ -138,7 +138,6 @@ static int InitCRL_Entry(CRL_Entry* crle, DecodedCRL* dcrl, const byte* buff,
138138 crle -> tbsSz = dcrl -> sigIndex - dcrl -> certBegin ;
139139 crle -> signatureSz = dcrl -> sigLength ;
140140 crle -> signatureOID = dcrl -> signatureOID ;
141- crle -> sigParamsSz = dcrl -> sigParamsLength ;
142141 crle -> toBeSigned = (byte * )XMALLOC (crle -> tbsSz , heap ,
143142 DYNAMIC_TYPE_CRL_ENTRY );
144143 if (crle -> toBeSigned == NULL )
@@ -151,6 +150,8 @@ static int InitCRL_Entry(CRL_Entry* crle, DecodedCRL* dcrl, const byte* buff,
151150 return -1 ;
152151 }
153152
153+ #ifdef WC_RSA_PSS
154+ crle -> sigParamsSz = dcrl -> sigParamsLength ;
154155 if (dcrl -> sigParamsLength > 0 ) {
155156 crle -> sigParams = (byte * )XMALLOC (crle -> sigParamsSz , heap ,
156157 DYNAMIC_TYPE_CRL_ENTRY );
@@ -164,6 +165,7 @@ static int InitCRL_Entry(CRL_Entry* crle, DecodedCRL* dcrl, const byte* buff,
164165 XMEMCPY (crle -> sigParams , buff + dcrl -> sigParamsIndex ,
165166 crle -> sigParamsSz );
166167 }
168+ #endif
167169 XMEMCPY (crle -> toBeSigned , buff + dcrl -> certBegin , crle -> tbsSz );
168170 XMEMCPY (crle -> signature , dcrl -> signature , crle -> signatureSz );
169171 #ifndef NO_SKID
@@ -221,8 +223,10 @@ static void CRL_Entry_free(CRL_Entry* crle, void* heap)
221223 XFREE (crle -> signature , heap , DYNAMIC_TYPE_CRL_ENTRY );
222224 if (crle -> toBeSigned != NULL )
223225 XFREE (crle -> toBeSigned , heap , DYNAMIC_TYPE_CRL_ENTRY );
226+ #ifdef WC_RSA_PSS
224227 if (crle -> sigParams != NULL )
225228 XFREE (crle -> sigParams , heap , DYNAMIC_TYPE_CRL_ENTRY );
229+ #endif
226230#if defined(OPENSSL_EXTRA )
227231 if (crle -> issuer != NULL ) {
228232 FreeX509Name (crle -> issuer );
@@ -759,16 +763,24 @@ static CRL_Entry* DupCRL_Entry(const CRL_Entry* ent, void* heap)
759763 DYNAMIC_TYPE_CRL_ENTRY );
760764 dupl -> signature = (byte * )XMALLOC (dupl -> signatureSz , heap ,
761765 DYNAMIC_TYPE_CRL_ENTRY );
766+ #ifdef WC_RSA_PSS
762767 dupl -> sigParams = (byte * )XMALLOC (dupl -> sigParamsSz , heap ,
763768 DYNAMIC_TYPE_CRL_ENTRY );
764- if ( dupl -> toBeSigned == NULL || dupl -> signature == NULL ||
765- dupl -> sigParams == NULL ) {
769+ #endif
770+ if ( dupl -> toBeSigned == NULL || dupl -> signature == NULL ) {
766771 CRL_Entry_free (dupl , heap );
767772 return NULL ;
768773 }
769774 XMEMCPY (dupl -> toBeSigned , ent -> toBeSigned , dupl -> tbsSz );
770- XMEMCPY (dupl -> sigParams , ent -> sigParams , dupl -> sigParamsSz );
771775 XMEMCPY (dupl -> signature , ent -> signature , dupl -> signatureSz );
776+
777+ #ifdef WC_RSA_PSS
778+ if (dupl -> sigParams == NULL ) {
779+ CRL_Entry_free (dupl , heap );
780+ return NULL ;
781+ }
782+ XMEMCPY (dupl -> sigParams , ent -> sigParams , dupl -> sigParamsSz );
783+ #endif
772784 }
773785 else {
774786 dupl -> toBeSigned = NULL ;
0 commit comments