Merge pull request #5404 from JacobBarthelmeh/PKCS7

fix for not having default pkcs7 signed attributes
This commit is contained in:
David Garske
2022-08-23 11:04:17 -07:00
committed by GitHub

View File

@ -1919,7 +1919,8 @@ static int wc_PKCS7_BuildSignedAttributes(PKCS7* pkcs7, ESD* esd,
int timeSz; int timeSz;
PKCS7Attrib cannedAttribs[3]; PKCS7Attrib cannedAttribs[3];
#endif #endif
word32 idx = 0; word32 idx = 0;
word32 atrIdx = 0;
word32 cannedAttribsCount; word32 cannedAttribsCount;
if (pkcs7 == NULL || esd == NULL || contentType == NULL || if (pkcs7 == NULL || esd == NULL || contentType == NULL ||
@ -1961,10 +1962,12 @@ static int wc_PKCS7_BuildSignedAttributes(PKCS7* pkcs7, ESD* esd,
cannedAttribs[idx].oidSz = messageDigestOidSz; cannedAttribs[idx].oidSz = messageDigestOidSz;
cannedAttribs[idx].value = esd->contentDigest; cannedAttribs[idx].value = esd->contentDigest;
cannedAttribs[idx].valueSz = hashSz + 2; /* ASN.1 heading */ cannedAttribs[idx].valueSz = hashSz + 2; /* ASN.1 heading */
idx++;
esd->signedAttribsCount += cannedAttribsCount; esd->signedAttribsCount += cannedAttribsCount;
esd->signedAttribsSz += EncodeAttributes(&esd->signedAttribs[0], 3, esd->signedAttribsSz += EncodeAttributes(&esd->signedAttribs[atrIdx],
cannedAttribs, cannedAttribsCount); idx, cannedAttribs, cannedAttribsCount);
atrIdx += idx;
} else { } else {
esd->signedAttribsCount = 0; esd->signedAttribsCount = 0;
esd->signedAttribsSz = 0; esd->signedAttribsSz = 0;
@ -1974,10 +1977,12 @@ static int wc_PKCS7_BuildSignedAttributes(PKCS7* pkcs7, ESD* esd,
if (pkcs7->signedAttribsSz > 0 && pkcs7->signedAttribs != NULL) { if (pkcs7->signedAttribsSz > 0 && pkcs7->signedAttribs != NULL) {
esd->signedAttribsCount += pkcs7->signedAttribsSz; esd->signedAttribsCount += pkcs7->signedAttribsSz;
#ifdef NO_ASN_TIME #ifdef NO_ASN_TIME
esd->signedAttribsSz += EncodeAttributes(&esd->signedAttribs[2], 4, esd->signedAttribsSz += EncodeAttributes(&esd->signedAttribs[atrIdx],
esd->signedAttribsCount,
pkcs7->signedAttribs, pkcs7->signedAttribsSz); pkcs7->signedAttribs, pkcs7->signedAttribsSz);
#else #else
esd->signedAttribsSz += EncodeAttributes(&esd->signedAttribs[3], 4, esd->signedAttribsSz += EncodeAttributes(&esd->signedAttribs[atrIdx],
esd->signedAttribsCount,
pkcs7->signedAttribs, pkcs7->signedAttribsSz); pkcs7->signedAttribs, pkcs7->signedAttribsSz);
#endif #endif
} }