Function esp_idf_sys::mbedtls_x509_crt_parse

source ·
pub unsafe extern "C" fn mbedtls_x509_crt_parse(
    chain: *mut mbedtls_x509_crt,
    buf: *const c_uchar,
    buflen: usize,
) -> c_int
Expand description

\brief Parse one DER-encoded or one or more concatenated PEM-encoded certificates and add them to the chained list.

            For CRTs in PEM encoding, the function parses permissively:
            if at least one certificate can be parsed, the function
            returns the number of certificates for which parsing failed
            (hence \c 0 if all certificates were parsed successfully).
            If no certificate could be parsed, the function returns
            the first (negative) error encountered during parsing.

            PEM encoded certificates may be interleaved by other data
            such as human readable descriptions of their content, as
            long as the certificates are enclosed in the PEM specific
            '-----{BEGIN/END} CERTIFICATE-----' delimiters.

\note If #MBEDTLS_USE_PSA_CRYPTO is enabled, the PSA crypto subsystem must have been initialized by calling psa_crypto_init() before calling this function.

\param chain The chain to which to add the parsed certificates. \param buf The buffer holding the certificate data in PEM or DER format. For certificates in PEM encoding, this may be a concatenation of multiple certificates; for DER encoding, the buffer must comprise exactly one certificate. \param buflen The size of \p buf, including the terminating \c NULL byte in case of PEM encoded data.

\return \c 0 if all certificates were parsed successfully. \return The (positive) number of certificates that couldn’t be parsed if parsing was partly successful (see above). \return A negative X509 or PEM error code otherwise.