SSL_RSTATE_STRING(3) | Library Functions Manual | SSL_RSTATE_STRING(3)

# NAME

`SSL_rstate_string`, `SSL_rstate_string_long` — get textual description of state of an SSL object during read operation

# SYNOPSIS

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

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

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

# DESCRIPTION

`SSL_rstate_string`() returns a 2-letter string indicating the current read state of the SSL object ssl.

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

When performing a read operation, the SSL/TLS engine must parse the record, consisting of header and body. When working in a blocking environment, `SSL_rstate_string[_long]`() should always return "RD"/"read done".

This function should only seldom be needed in applications.

# RETURN VALUES

`SSL_rstate_string`() and `SSL_rstate_string_long`() can return the following values:

"RH"/"read header"
  The header of the record is being evaluated.
"RB"/"read body"
  The body of the record is being evaluated.
"RD"/"read done"
  The record has been completely processed.
"unknown"/"unknown"
  The read state is unknown. This should never happen.

# SEE ALSO

ssl(3)

# HISTORY

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

June 8, 2025 | Debian