mbedtls: remove incorrect attribute type checker
authorRaymond Mao <raymond.mao@linaro.org>
Fri, 4 Apr 2025 14:05:25 +0000 (07:05 -0700)
committerTom Rini <trini@konsulko.com>
Sun, 6 Apr 2025 16:02:57 +0000 (10:02 -0600)
S/MIME Capabilities (OID: 1.2.840.113549.1.9.15) attributes are
expected to be algorithms but neither data nor MS Inderect Data,
thus the checker for data type is incorrect.

This patch fixes a capsule authentication failure with PKCS#7
message that contains S/MIME capabilities, which formed by the EDK2
GenerateCapsule tool.

S/MIME Capabilities are not common attributes in an EFI capsule,
thus this failure cannot be reproduced with the capsules generated
via mkeficapsule.

Fixes: 7de0d155cce7 ("mbedtls: add PKCS7 parser porting layer")
Reported-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
lib/mbedtls/pkcs7_parser.c

index ecfcc46..bf8ee17 100644 (file)
@@ -189,10 +189,6 @@ static int authattrs_parse(struct pkcs7_message *msg, void *aa, size_t aa_len,
                                                len)) {
                        if (__test_and_set_bit(sinfo_has_smime_caps, &sinfo->aa_set))
                                return -EINVAL;
-
-                       if (msg->data_type != OID_msIndirectData &&
-                           msg->data_type != OID_data)
-                               return -EINVAL;
                } else if (!MBEDTLS_OID_CMP_RAW(MBEDTLS_OID_MICROSOFT_SPOPUSINFO, inner_p,
                                                len)) {
                        if (__test_and_set_bit(sinfo_has_ms_opus_info, &sinfo->aa_set))