SSL_STATE_STRING(3) | Library Functions Manual | SSL_STATE_STRING(3)

# NAME

`SSL_state_string`, `SSL_state_string_long` — get textual description of state of an SSL object

# SYNOPSIS

library “libssl” libcrypto
`#include <openssl/ssl.h>`

const char *
`SSL_state_string`(const SSL *ssl);

const char *
`SSL_state_string_long`(const SSL *ssl);

# DESCRIPTION

`SSL_state_string`() returns a 6 letter string indicating the current state of the SSL object ssl.

`SSL_state_string_long`() returns a string indicating the current state of the SSL object ssl.

During its use, an SSL object passes several states. The state is internally maintained. Querying the state information is not very informative before or when a connection has been established. It however can be of significant interest during the handshake.

When using non-blocking sockets, the function call performing the handshake may return with `SSL_ERROR_WANT_READ` or `SSL_ERROR_WANT_WRITE` condition, so that `SSL_state_string[_long]`() may be called.

For both blocking or non-blocking sockets, the details state information can be used within the `info_callback`() function set with the SSL_set_info_callback(3) call.

# RETURN VALUES

Detailed description of possible states to be included later.

# SEE ALSO

ssl(3), SSL_CTX_set_info_callback(3)

# HISTORY

`SSL_state_string`() and `SSL_state_string_long`() first appeared in SSLeay 0.6.0 and have been available since OpenBSD 2.4.

June 8, 2025 | Debian