SSL_set_retry_verify(3ssl)

SSL_set_retry_verify3ssl

Indicate that certificate verification should be retried

Usage

 #include <openssl/ssl.h>
 int SSL_set_retry_verify(SSL *ssl);

Overview

SSL_set_retry_verify() should be called from the certificate verification callback on a client when the application wants to indicate that the handshake should be suspended and the control should be returned to the application. SSL_want_retry_verify(3) will return 1 as a consequence until the handshake is resumed again by the application, retrying the verification step.

Please refer to SSL_CTX_set_cert_verify_callback(3) for further details.

Notes

The effect of calling SSL_set_retry_verify() outside of the certificate verification callback on the client side is undefined.

Return values

SSL_set_retry verify() returns 1 on success, 0 otherwise.

Examples

The following code snippet shows how to obtain the SSL object associated with the X509_STORE_CTX to call the SSL_set_retry_verify() function:

    int idx = SSL_get_ex_data_X509_STORE_CTX_idx();
    SSL *ssl;
    /* this should not happen but check anyway */
    if (idx < 0
        || (ssl = X509_STORE_CTX_get_ex_data(ctx, idx)) == NULL)
        return 0;
    if (/* we need to retry verification callback */)
        return SSL_set_retry_verify(ssl);
    /* do normal processing of the verification callback */

Releases

3 releases since Debian 12 (Bookworm); the text changed 2 times.

  1. 12
  2. 13
  3. Arch

History

SSL_set_retry_verify() was added in OpenSSL 3.0.2 to replace backwards incompatible handling of a negative return value from the verification callback.

From openssl 3.6.5-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.