forked from wolfSSL/wolfssl
adding RSA-PSS macro guard around CRL use
This commit is contained in:
20
src/crl.c
20
src/crl.c
@@ -138,7 +138,6 @@ static int InitCRL_Entry(CRL_Entry* crle, DecodedCRL* dcrl, const byte* buff,
|
||||
crle->tbsSz = dcrl->sigIndex - dcrl->certBegin;
|
||||
crle->signatureSz = dcrl->sigLength;
|
||||
crle->signatureOID = dcrl->signatureOID;
|
||||
crle->sigParamsSz = dcrl->sigParamsLength;
|
||||
crle->toBeSigned = (byte*)XMALLOC(crle->tbsSz, heap,
|
||||
DYNAMIC_TYPE_CRL_ENTRY);
|
||||
if (crle->toBeSigned == NULL)
|
||||
@@ -151,6 +150,8 @@ static int InitCRL_Entry(CRL_Entry* crle, DecodedCRL* dcrl, const byte* buff,
|
||||
return -1;
|
||||
}
|
||||
|
||||
#ifdef WC_RSA_PSS
|
||||
crle->sigParamsSz = dcrl->sigParamsLength;
|
||||
if (dcrl->sigParamsLength > 0) {
|
||||
crle->sigParams = (byte*)XMALLOC(crle->sigParamsSz, heap,
|
||||
DYNAMIC_TYPE_CRL_ENTRY);
|
||||
@@ -164,6 +165,7 @@ static int InitCRL_Entry(CRL_Entry* crle, DecodedCRL* dcrl, const byte* buff,
|
||||
XMEMCPY(crle->sigParams, buff + dcrl->sigParamsIndex,
|
||||
crle->sigParamsSz);
|
||||
}
|
||||
#endif
|
||||
XMEMCPY(crle->toBeSigned, buff + dcrl->certBegin, crle->tbsSz);
|
||||
XMEMCPY(crle->signature, dcrl->signature, crle->signatureSz);
|
||||
#ifndef NO_SKID
|
||||
@@ -221,8 +223,10 @@ static void CRL_Entry_free(CRL_Entry* crle, void* heap)
|
||||
XFREE(crle->signature, heap, DYNAMIC_TYPE_CRL_ENTRY);
|
||||
if (crle->toBeSigned != NULL)
|
||||
XFREE(crle->toBeSigned, heap, DYNAMIC_TYPE_CRL_ENTRY);
|
||||
#ifdef WC_RSA_PSS
|
||||
if (crle->sigParams != NULL)
|
||||
XFREE(crle->sigParams, heap, DYNAMIC_TYPE_CRL_ENTRY);
|
||||
#endif
|
||||
#if defined(OPENSSL_EXTRA)
|
||||
if (crle->issuer != NULL) {
|
||||
FreeX509Name(crle->issuer);
|
||||
@@ -759,16 +763,24 @@ static CRL_Entry* DupCRL_Entry(const CRL_Entry* ent, void* heap)
|
||||
DYNAMIC_TYPE_CRL_ENTRY);
|
||||
dupl->signature = (byte*)XMALLOC(dupl->signatureSz, heap,
|
||||
DYNAMIC_TYPE_CRL_ENTRY);
|
||||
#ifdef WC_RSA_PSS
|
||||
dupl->sigParams = (byte*)XMALLOC(dupl->sigParamsSz, heap,
|
||||
DYNAMIC_TYPE_CRL_ENTRY);
|
||||
if (dupl->toBeSigned == NULL || dupl->signature == NULL ||
|
||||
dupl->sigParams == NULL) {
|
||||
#endif
|
||||
if (dupl->toBeSigned == NULL || dupl->signature == NULL) {
|
||||
CRL_Entry_free(dupl, heap);
|
||||
return NULL;
|
||||
}
|
||||
XMEMCPY(dupl->toBeSigned, ent->toBeSigned, dupl->tbsSz);
|
||||
XMEMCPY(dupl->sigParams, ent->sigParams, dupl->sigParamsSz);
|
||||
XMEMCPY(dupl->signature, ent->signature, dupl->signatureSz);
|
||||
|
||||
#ifdef WC_RSA_PSS
|
||||
if (dupl->sigParams == NULL) {
|
||||
CRL_Entry_free(dupl, heap);
|
||||
return NULL;
|
||||
}
|
||||
XMEMCPY(dupl->sigParams, ent->sigParams, dupl->sigParamsSz);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
dupl->toBeSigned = NULL;
|
||||
|
Reference in New Issue
Block a user