Skip to content

Commit 114d11a

Browse files
adding RSA-PSS macro guard around CRL use
1 parent b38e20a commit 114d11a

1 file changed

Lines changed: 16 additions & 4 deletions

File tree

src/crl.c

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)