Make use of X509_get_signature_info() in check_sig_level()
authortb <tb@openbsd.org>
Wed, 28 Aug 2024 07:37:50 +0000 (07:37 +0000)
committertb <tb@openbsd.org>
Wed, 28 Aug 2024 07:37:50 +0000 (07:37 +0000)
commitb8977036e87f6aa0b6a8f9a1fdabb015aad80a45
tree67c4507cfeb4ea39ed83d3dc75ad033d527036f6
parentbdbf14dd1cb4b4fdf9d3b71fa95accc1d1f5d543
Make use of X509_get_signature_info() in check_sig_level()

If an auth_level (i.e., security_level, but not quite, because Viktor) was
set on the X509_VERIFY_PARAM in the X509_STORE_CTX, the verifier would
reject RSA-PSS or EdDSA certificates for insufficient security bits due to
incorrect use of OBJ_find_sigid_algs() (this was also a bug in the initial
security level implementation in OpenSSL 1.1).

Using X509_get_signature_info() fixes this while preserving behavior for
all other algorithms.

Reported by Steffen Ullrich as one of multiple issues with RSA-PSS.

ok jsing
lib/libcrypto/x509/x509_vfy.c