SSL_GET_CURRENT_CIPHER(3) | Library Functions Manual | SSL_GET_CURRENT_CIPHER(3)

# NAME

`SSL_get_current_cipher`, `SSL_get_cipher`, `SSL_get_cipher_name`, `SSL_get_cipher_bits`, `SSL_get_cipher_version` — get SSL_CIPHER of a connection

# SYNOPSIS

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

const SSL_CIPHER *
`SSL_get_current_cipher`(const SSL *ssl);

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

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

int
`SSL_get_cipher_bits`(const SSL *ssl, int *np);

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

# DESCRIPTION

`SSL_get_current_cipher`() returns a pointer to an SSL_CIPHER object containing the description of the actually used cipher of a connection established with the ssl object. See SSL_CIPHER_get_name(3) for more details.

`SSL_get_cipher_name`() obtains the name of the currently used cipher. `SSL_get_cipher`() is identical to `SSL_get_cipher_name`().

`SSL_get_cipher_bits`() obtains the number of secret/algorithm bits used and `SSL_get_cipher_version`() returns the protocol name.

`SSL_get_cipher`(), `SSL_get_cipher_name`(), `SSL_get_cipher_bits`(), and `SSL_get_cipher_version`() are implemented as macros.

# RETURN VALUES

`SSL_get_current_cipher`() returns the cipher actually used, or `NULL` if no session has been established.

# SEE ALSO

ssl(3), SSL_CIPHER_get_name(3)

# HISTORY

`SSL_get_cipher`() appeared in SSLeay 0.4 or earlier. `SSL_get_cipher_bits`() first appeared in SSLeay 0.6.4. `SSL_get_cipher_name`() and `SSL_get_cipher_version`() first appeared in SSLeay 0.8.0. `SSL_get_current_cipher`() first appeared in SSLeay 0.8.1. These functions have been available since OpenBSD 2.4.

June 8, 2025 | Debian