diff options
author | Andre Heinecke <aheinecke@intevation.de> | 2014-09-01 16:06:03 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2014-09-01 22:42:58 +0200 |
commit | e608324f9f9ca1a40865902a52619f60ca86aa17 (patch) | |
tree | 2a4372485af0473849b3fcca63e6b20a18673f5f | |
parent | 0c14b31df4c64ebf58e8231893b96cf91adc56d9 (diff) |
polarssl: implement CURLOPT_SSLVERSION
Forwards the setting as minimum ssl version (if set) to polarssl. If
the server does not support the requested version the SSL Handshake will
fail.
Bug: http://curl.haxx.se/bug/view.cgi?id=1419
-rw-r--r-- | lib/vtls/polarssl.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/vtls/polarssl.c b/lib/vtls/polarssl.c index f9484866a..2d1b7ee08 100644 --- a/lib/vtls/polarssl.c +++ b/lib/vtls/polarssl.c @@ -270,6 +270,29 @@ polarssl_connect_step1(struct connectdata *conn, return CURLE_SSL_CONNECT_ERROR; } + switch(data->set.ssl.version) { + case CURL_SSLVERSION_SSLv3: + ssl_set_min_version(&connssl->ssl, SSL_MAJOR_VERSION_3, + SSL_MINOR_VERSION_0); + infof(data, "PolarSSL: Forced min. SSL Version to be SSLv3\n"); + break; + case CURL_SSLVERSION_TLSv1_0: + ssl_set_min_version(&connssl->ssl, SSL_MAJOR_VERSION_3, + SSL_MINOR_VERSION_1); + infof(data, "PolarSSL: Forced min. SSL Version to be TLS 1.0\n"); + break; + case CURL_SSLVERSION_TLSv1_1: + ssl_set_min_version(&connssl->ssl, SSL_MAJOR_VERSION_3, + SSL_MINOR_VERSION_2); + infof(data, "PolarSSL: Forced min. SSL Version to be TLS 1.1\n"); + break; + case CURL_SSLVERSION_TLSv1_2: + ssl_set_min_version(&connssl->ssl, SSL_MAJOR_VERSION_3, + SSL_MINOR_VERSION_3); + infof(data, "PolarSSL: Forced min. SSL Version to be TLS 1.2\n"); + break; + } + ssl_set_endpoint(&connssl->ssl, SSL_IS_CLIENT); ssl_set_authmode(&connssl->ssl, SSL_VERIFY_OPTIONAL); |