Add a x509_cache_extensions() helper
authortb <tb@openbsd.org>
Sat, 8 Jun 2024 13:28:35 +0000 (13:28 +0000)
committertb <tb@openbsd.org>
Sat, 8 Jun 2024 13:28:35 +0000 (13:28 +0000)
commite891962d45dc3df273cac7428d6c43204f2989d1
tree1e708c7c8954f70690d63e977c605d5b24b90d94
parent0079c47c20284f5ed9c283b51f68b8ddad5a617e
Add a x509_cache_extensions() helper

This is a simple wrapper around X509_check_policy(cert, -1, 0) that
doesn't need an explanatory comment in the caller.

The reason for having to do this is that various OpenSSL API calls rely
on having extension information cached. As an unsurprising consequence of
OpenSSL's characteristic API misdesign these calls can't report errors,
so they call the extension caching without error checking and the result
is that they may report nonsense.

To work around this, cache the extensions up front so a second call can't
fail and thus API calls such as X509_check_ca(), X509_get_key_usage() and
X509_cmp() work reliably.

ok job
usr.sbin/rpki-client/cert.c
usr.sbin/rpki-client/cms.c
usr.sbin/rpki-client/extern.h
usr.sbin/rpki-client/x509.c