Skip to content

Commit

Permalink
X.509: if signature is unsupported skip validation
Browse files Browse the repository at this point in the history
commit ef5b52a upstream.

When the hash algorithm for the signature is not available the digest size
is 0 and the signature in the certificate is marked as unsupported.

When validating a self-signed certificate, this needs to be checked,
because otherwise trying to validate the signature will fail with an
warning:

Loading compiled-in X.509 certificates
WARNING: CPU: 0 PID: 1 at crypto/rsa-pkcs1pad.c:537 \
pkcs1pad_verify+0x46/0x12c
...
Problem loading in-kernel X.509 certificate (-22)

Signed-off-by: Thore Sommer <public@thson.de>
Cc: stable@vger.kernel.org # v4.7+
Fixes: 6c2dc5a ("X.509: Extract signature digest and make self-signed cert checks earlier")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Thore Sommer authored and gregkh committed Sep 13, 2023
1 parent 3d5fed8 commit 342d130
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions crypto/asymmetric_keys/x509_public_key.c
Expand Up @@ -117,6 +117,11 @@ int x509_check_for_self_signed(struct x509_certificate *cert)
goto out;
}

if (cert->unsupported_sig) {
ret = 0;
goto out;
}

ret = public_key_verify_signature(cert->pub, cert->sig);
if (ret < 0) {
if (ret == -ENOPKG) {
Expand Down

0 comments on commit 342d130

Please sign in to comment.