SSL_GET_VERSION(3) | Library Functions Manual | SSL_GET_VERSION(3)

# NAME

`SSL_get_version`, `SSL_is_dtls`, `SSL_version` — get the protocol information of a connection

# SYNOPSIS

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

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

int
`SSL_is_dtls`(const SSL *ssl);

int
`SSL_version`(const SSL *ssl);

# DESCRIPTION

`SSL_get_version`() returns the name of the protocol used for the connection ssl.

`SSL_is_dtls`() returns 1 if the connection is using DTLS, 0 if not.

`SSL_version`() returns an integer constant representing that protocol.

These functions only return reliable results after the initial handshake has been completed.

# RETURN VALUES

The following strings or integers can be returned by `SSL_get_version`() and `SSL_version`():

"TLSv1" or `TLS1_VERSION`
  The connection uses the TLSv1.0 protocol.
"TLSv1.1" or `TLS1_1_VERSION`
  The connection uses the TLSv1.1 protocol.
"TLSv1.2" or `TLS1_2_VERSION`
  The connection uses the TLSv1.2 protocol.
"TLSv1.3" or `TLS1_3_VERSION`
  The connection uses the TLSv1.3 protocol.
"DTLSv1" or `DTLS1_VERSION`
  The connection uses the Datagram Transport Layer Security 1.0 protocol.
"DTLSv1.2" or `DTLS1_2_VERSION`
  The connection uses the Datagram Transport Layer Security 1.2 protocol.
"unknown"
  This indicates an unknown protocol version; it cannot currently happen with LibreSSL.

`SSL_is_dtls`() returns 1 if the connection uses DTLS, 0 if not.

# SEE ALSO

ssl(3)

# HISTORY

`SSL_get_version`() and `SSL_version`() first appeared in SSLeay 0.8.0 and have been available since OpenBSD 2.4.

`SSL_is_dtls`() first appeared in OpenSSL 1.1.0 and has been available since OpenBSD 6.9.

June 8, 2025 | Debian