3edabd3ccb
OpenSSL 1.1.0 made SSL_CTX and SSL structs opaque and introduced a new API to set the minimum and maximum protocol version for SSL_CTX with TLS_method(). Add getters to introspect the configured versions: int SSL_CTX_get_min_proto_version(SSL_CTX *ctx); int SSL_CTX_get_max_proto_version(SSL_CTX *ctx); int SSL_get_min_proto_version(SSL *ssl); int SSL_get_max_proto_version(SSL *ssl); NOTE: The getters do not resolv the version in case when the minimum or maxium version are configured as '0' (meaning auto-select lowest and highst version number). Signed-off-by: Christian Heimes <christian@python.org> Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Ben Kaduk <kaduk@mit.edu> (Merged from https://github.com/openssl/openssl/pull/4364)
73 lines
2.3 KiB
Text
73 lines
2.3 KiB
Text
=pod
|
|
|
|
=head1 NAME
|
|
|
|
SSL_CTX_set_min_proto_version, SSL_CTX_set_max_proto_version,
|
|
SSL_CTX_get_min_proto_version, SSL_CTX_get_max_proto_version,
|
|
SSL_set_min_proto_version, SSL_set_max_proto_version,
|
|
SSL_get_min_proto_version, SSL_get_max_proto_version - Get and set minimum
|
|
and maximum supported protocol version
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
#include <openssl/ssl.h>
|
|
|
|
int SSL_CTX_set_min_proto_version(SSL_CTX *ctx, int version);
|
|
int SSL_CTX_set_max_proto_version(SSL_CTX *ctx, int version);
|
|
int SSL_CTX_get_min_proto_version(SSL_CTX *ctx);
|
|
int SSL_CTX_get_max_proto_version(SSL_CTX *ctx);
|
|
|
|
int SSL_set_min_proto_version(SSL *ssl, int version);
|
|
int SSL_set_max_proto_version(SSL *ssl, int version);
|
|
int SSL_get_min_proto_version(SSL *ssl);
|
|
int SSL_get_max_proto_version(SSL *ssl);
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
The functions get or set the minimum and maximum supported protocol versions
|
|
for the B<ctx> or B<ssl>.
|
|
This works in combination with the options set via
|
|
L<SSL_CTX_set_options(3)> that also make it possible to disable
|
|
specific protocol versions.
|
|
Use these functions instead of disabling specific protocol versions.
|
|
|
|
Setting the minimum or maximum version to 0, will enable protocol
|
|
versions down to the lowest version, or up to the highest version
|
|
supported by the library, respectively.
|
|
|
|
Getters return 0 in case B<ctx> or B<ssl> have been configured to
|
|
automatically use the lowest or highest version supported by the library.
|
|
|
|
Currently supported versions are B<SSL3_VERSION>, B<TLS1_VERSION>,
|
|
B<TLS1_1_VERSION>, B<TLS1_2_VERSION>, B<TLS1_3_VERSION> for TLS and
|
|
B<DTLS1_VERSION>, B<DTLS1_2_VERSION> for DTLS.
|
|
|
|
=head1 RETURN VALUES
|
|
|
|
These setter functions return 1 on success and 0 on failure. The getter
|
|
functions return the configured version or 0 for auto-configuration of
|
|
lowest or highest protocol, respectively.
|
|
|
|
=head1 NOTES
|
|
|
|
All these functions are implemented using macros.
|
|
|
|
=head1 HISTORY
|
|
|
|
The setter functions were added in OpenSSL 1.1.0. The getter functions
|
|
were added in OpenSSL 1.1.1.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
L<SSL_CTX_set_options(3)>, L<SSL_CONF_cmd(3)>
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
Copyright 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
|