diff --git a/ctaocrypt/src/pkcs7.c b/ctaocrypt/src/pkcs7.c index b442dce30..d7fe5eee9 100644 --- a/ctaocrypt/src/pkcs7.c +++ b/ctaocrypt/src/pkcs7.c @@ -969,23 +969,16 @@ CYASSL_API int PKCS7_DecodeEnvelopedData(PKCS7* pkcs7, byte* pkiMsg, * indicate there is another, if not, move on */ while(recipFound == 0) { - /* remove RecipientInfo */ + /* remove RecipientInfo, if we don't have a SEQUENCE, back up idx to + * last good saved one */ if (GetSequence(pkiMsg, &idx, &length, pkiMsgSz) < 0) { - if (recipFound == 0) { - return ASN_PARSE_E; - } else { - idx = savedIdx; - break; - } + idx = savedIdx; + break; } if (GetMyVersion(pkiMsg, &idx, &version) < 0) { - if (recipFound == 0) { - return ASN_PARSE_E; - } else { - idx = savedIdx; - break; - } + idx = savedIdx; + break; } if (version != 0)