Add an SSL_SESSION accessor for obtaining the protocol version number, with
authorTJ Saunders <>
Thu, 26 May 2016 22:40:13 +0000 (15:40 -0700)
committerRich Salz <>
Tue, 31 May 2016 21:16:29 +0000 (17:16 -0400)
accompanying documentation.

Reviewed-by: Matt Caswell <>
Reviewed-by: Rich Salz <>
(Merged from

doc/ssl/SSL_SESSION_get_protocol_version.pod [new file with mode: 0644]

diff --git a/doc/ssl/SSL_SESSION_get_protocol_version.pod b/doc/ssl/SSL_SESSION_get_protocol_version.pod
new file mode 100644 (file)
index 0000000..e9e4f6d
--- /dev/null
@@ -0,0 +1,54 @@
+=head1 NAME
+SSL_SESSION_get_protocol_version - retrieve session protocol version
+=head1 SYNOPSIS
+ #include <openssl/ssl.h>
+ int SSL_SESSION_get_protocol_version(const SSL_SESSION *s);
+SSL_SESSION_get_protocol_version() returns the time at which the session B<s> was
+established. The time is given in seconds since the Epoch and therefore
+compatible to the time delivered by the time() call.
+SSL_SESSION_set_time() replaces the creation time of the session B<s> with
+the chosen value B<tm>.
+SSL_SESSION_get_timeout() returns the timeout value set for session B<s>
+in seconds.
+SSL_SESSION_set_timeout() sets the timeout value for session B<s> in seconds
+to B<tm>.
+The SSL_get_time(), SSL_set_time(), SSL_get_timeout(), and SSL_set_timeout()
+functions are synonyms for the SSL_SESSION_*() counterparts.
+SSL_SESSION_get_protocol_version() returns a number indicating the protocol
+version used for the session; this number matches the constants I<e.g.>
+If the function is passed the NULL pointer for the session B<s>, 0 is returned.
+=head1 SEE ALSO
+Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
+Licensed under the OpenSSL license (the "License").  You may not use
+this file except in compliance with the License.  You can obtain a copy
+in the file LICENSE in the source distribution or at
index f019f64..c6c3576 100644 (file)
@@ -1376,6 +1376,7 @@ __owur long SSL_SESSION_get_time(const SSL_SESSION *s);
 __owur long SSL_SESSION_set_time(SSL_SESSION *s, long t);
 __owur long SSL_SESSION_get_timeout(const SSL_SESSION *s);
 __owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t);
+__owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s);
 __owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s);
 __owur int SSL_SESSION_has_ticket(const SSL_SESSION *s);
 __owur unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s);
index f168900..128d2d7 100644 (file)
@@ -828,6 +828,13 @@ long SSL_SESSION_set_time(SSL_SESSION *s, long t)
     return (t);
+int SSL_SESSION_get_protocol_version(const SSL_SESSION *s)
+    if (s == NULL)
+        return (0);
+    return s->ssl_version;
 const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s)
     return s->tlsext_hostname;