CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected]    2026/06/15 11:30:04

Modified files:
        usr.sbin/rpki-client: cert.c 

Log message:
rpki-client: reject certs with duplicate extension OIDs

We check this for extensions we know about in cert_parse_extensions().
We keep doing it there since we need to keep track of the extensions we
encountered anyway.

While cert_parse_extensions() rejects certs with critical extensions we
don't know about, we allow duplicate non-critical ones mainly because
that's annoying to keep track of. LibreSSL's libcrypto checks for this
and rejects the cert when caching the extensions, OpenSSL 4 adds a new
EXFLAG_DUPLICATE flag and accepts the cert, and OpenSSL 3 simply ignores
duplicates. In short: we get to do it ourselves.

This check is basically lifted from libcrypto's x509_purp.c with a few
extra contortions due to const sprinkling and making things opaque. The
warnx is the same as the one already present in cert_parse_extensions().

We do not NULL check X509_EXTENSION_get_object() because the extension
parsed, so an OID is present.

ok job

Reply via email to