@@ -28034,50 +28034,54 @@ static int test_wc_PKCS7_VerifySignedData_RSA(void)
2803428034 signedBundle = XBADFILE;
2803528035 }
2803628036
28037- ExpectNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, testDevId));
28038- ExpectIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
28039- for (i = 0; i < signedBundleSz;) {
28040- int sz = (i + chunkSz > signedBundleSz)? signedBundleSz - i :
28041- chunkSz;
28042- rc = wc_PKCS7_VerifySignedData(pkcs7, buf + i, sz);
28043- if (rc < 0 ) {
28044- if (rc == WC_PKCS7_WANT_READ_E) {
28045- i += sz;
28046- continue;
28037+ if (buf != NULL) {
28038+ ExpectNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, testDevId));
28039+ ExpectIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
28040+ for (i = 0; i < signedBundleSz;) {
28041+ int sz = (i + chunkSz > signedBundleSz)? signedBundleSz - i :
28042+ chunkSz;
28043+ rc = wc_PKCS7_VerifySignedData(pkcs7, buf + i, sz);
28044+ if (rc < 0 ) {
28045+ if (rc == WC_PKCS7_WANT_READ_E) {
28046+ i += sz;
28047+ continue;
28048+ }
28049+ break;
28050+ }
28051+ else {
28052+ break;
2804728053 }
28048- break;
28049- }
28050- else {
28051- break;
2805228054 }
28055+ ExpectIntEQ(rc, PKCS7_SIGNEEDS_CHECK);
28056+ wc_PKCS7_Free(pkcs7);
28057+ pkcs7 = NULL;
2805328058 }
28054- ExpectIntEQ(rc, PKCS7_SIGNEEDS_CHECK);
28055- wc_PKCS7_Free(pkcs7);
28056- pkcs7 = NULL;
28057-
2805828059
2805928060 /* now try with malformed bundle */
28060- ExpectNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, testDevId));
28061- ExpectIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
28062- buf[signedBundleSz - 2] = buf[signedBundleSz - 2] + 1;
28063- for (i = 0; i < signedBundleSz;) {
28064- int sz = (i + chunkSz > signedBundleSz)? signedBundleSz - i :
28065- chunkSz;
28066- rc = wc_PKCS7_VerifySignedData(pkcs7, buf + i, sz);
28067- if (rc < 0 ) {
28068- if (rc == WC_PKCS7_WANT_READ_E) {
28069- i += sz;
28070- continue;
28061+ if (buf != NULL) {
28062+ ExpectNotNull(pkcs7 = wc_PKCS7_New(HEAP_HINT, testDevId));
28063+ ExpectIntEQ(wc_PKCS7_InitWithCert(pkcs7, NULL, 0), 0);
28064+ buf[signedBundleSz - 2] = buf[signedBundleSz - 2] + 1;
28065+ for (i = 0; i < signedBundleSz;) {
28066+ int sz = (i + chunkSz > signedBundleSz)? signedBundleSz - i :
28067+ chunkSz;
28068+ rc = wc_PKCS7_VerifySignedData(pkcs7, buf + i, sz);
28069+ if (rc < 0 ) {
28070+ if (rc == WC_PKCS7_WANT_READ_E) {
28071+ i += sz;
28072+ continue;
28073+ }
28074+ break;
28075+ }
28076+ else {
28077+ break;
2807128078 }
28072- break;
28073- }
28074- else {
28075- break;
2807628079 }
28080+ ExpectIntEQ(rc, ASN_PARSE_E);
28081+ wc_PKCS7_Free(pkcs7);
28082+ pkcs7 = NULL;
2807728083 }
28078- ExpectIntEQ(rc, ASN_PARSE_E);
28079- wc_PKCS7_Free(pkcs7);
28080- pkcs7 = NULL;
28084+
2808128085 if (buf != NULL)
2808228086 XFREE(buf, HEAP_HINT, DYNAMIC_TYPE_FILE);
2808328087 }
0 commit comments