SSL_get_version,
SSL_is_dtls, SSL_version
— get the protocol information of a
connection
#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);
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.
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.
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.