X509_verify_cert.3ssl - Man Page

discover and verify X509 certificate chain


 #include <openssl/x509.h>

 int X509_verify_cert(X509_STORE_CTX *ctx);


The X509_verify_cert() function attempts to discover and validate a certificate chain based on parameters in ctx. A complete description of the process is contained in the verify(1) manual page.

Return Values

If a complete chain can be built and validated this function returns 1, otherwise it return zero, in exceptional circumstances it can also return a negative code.

If the function fails additional error information can be obtained by examining ctx using, for example X509_STORE_CTX_get_error().


Applications rarely call this function directly but it is used by OpenSSL internally for certificate validation, in both the S/MIME and SSL/TLS code.

A negative return value from X509_verify_cert() can occur if it is invoked incorrectly, such as with no certificate set in ctx, or when it is called twice in succession without reinitialising ctx for the second call. A negative return value can also happen due to internal resource problems or if a retry operation is requested during internal lookups (which never happens with standard lookup methods). Applications must check for <= 0 return value on error.


This function uses the header x509.h as opposed to most chain verification functions which use x509_vfy.h.

See Also


Referenced By

i2d_re_X509_tbs.3ssl(3), SSL_CTX_dane_enable.3ssl(3), X509_check_ca.3ssl(3), X509_check_issued.3ssl(3), X509_CRL_get0_by_serial.3ssl(3), X509_get0_notBefore.3ssl(3), X509_get0_signature.3ssl(3), X509_get0_uids.3ssl(3), X509_get_pubkey.3ssl(3), X509_get_serialNumber.3ssl(3), X509_get_subject_name.3ssl(3), X509_get_version.3ssl(3), X509_new.3ssl(3), X509_sign.3ssl(3), X509_STORE_CTX_get_error.3ssl(3), X509_STORE_CTX_new.3ssl(3), X509V3_get_d2i.3ssl(3), X509_VERIFY_PARAM_set_flags.3ssl(3).

2021-09-20 1.1.1l OpenSSL