Commit bd01f649 authored by TJ Saunders's avatar TJ Saunders Committed by Rich Salz
Browse files

Add an SSL_SESSION accessor for obtaining the protocol version number, with


accompanying documentation.

Reviewed-by: default avatarMatt Caswell <matt@openssl.org>
Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1135)
parent 6d1e7709
Loading
Loading
Loading
Loading
+54 −0
Original line number Diff line number Diff line
=pod

=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);

=head1 DESCRIPTION

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.

=head1 RETURN VALUES

SSL_SESSION_get_protocol_version() returns a number indicating the protocol
version used for the session; this number matches the constants I<e.g.>
B<TLS1_VERSION> or B<TLS1_2_VERSION>.

If the function is passed the NULL pointer for the session B<s>, 0 is returned.

=head1 SEE ALSO

L<ssl(3)>,
L<SSL_CTX_set_timeout(3)>,
L<SSL_get_default_timeout(3)>

=head1 COPYRIGHT

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
L<https://www.openssl.org/source/license.html>.

=cut
+1 −0
Original line number Diff line number Diff line
@@ -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);
+7 −0
Original line number Diff line number Diff line
@@ -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;