PKCS#7: fix certificate blacklisting
authorEric Biggers <ebiggers@google.com>
Thu, 22 Feb 2018 14:38:33 +0000 (14:38 +0000)
committerDavid Howells <dhowells@redhat.com>
Thu, 22 Feb 2018 14:38:33 +0000 (14:38 +0000)
commit29f4a67c17e19314b7d74b8569be935e6c7edf50
treedebe9c0a045f56b09856b062baba842b65b80a25
parent971b42c038dc83e3327872d294fe7131bab152fc
PKCS#7: fix certificate blacklisting

If there is a blacklisted certificate in a SignerInfo's certificate
chain, then pkcs7_verify_sig_chain() sets sinfo->blacklisted and returns
0.  But, pkcs7_verify() fails to handle this case appropriately, as it
actually continues on to the line 'actual_ret = 0;', indicating that the
SignerInfo has passed verification.  Consequently, PKCS#7 signature
verification ignores the certificate blacklist.

Fix this by not considering blacklisted SignerInfos to have passed
verification.

Also fix the function comment with regards to when 0 is returned.

Fixes: 03bb79315ddc ("PKCS#7: Handle blacklisted certificates")
Cc: <stable@vger.kernel.org> # v4.12+
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: David Howells <dhowells@redhat.com>
crypto/asymmetric_keys/pkcs7_verify.c