view patches/0001-Implement-CURLOPT_SSLVERSION-for-polarssl.patch @ 1070:f110a3f6e387

(issue114) Fine tune ACL propagation using mkdir_p the ACL of the parent directories would propagate to all subdirectories and objects in the directory. Now we only use ACL propagation in the last directory to make sure that files we might create in that directory inherit the correct (resitricted) ACL
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 10 Sep 2014 16:41:36 +0200
parents 0570b1e562c2
children
line wrap: on
line source
From bebf7d617091042828fc5838170b35c42ab60396 Mon Sep 17 00:00:00 2001
From: Andre Heinecke <aheinecke@intevation.de>
Date: Mon, 1 Sep 2014 16:06:03 +0200
Subject: [PATCH 1/3] Implement CURLOPT_SSLVERSION for polarssl

    Forwards the setting as minimum ssl version to polarssl.
    If the server does not support the requested version the
    SSL Handshake will fail.
---
 lib/vtls/polarssl.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/lib/vtls/polarssl.c b/lib/vtls/polarssl.c
index f948486..e18cadf 100644
--- a/lib/vtls/polarssl.c
+++ b/lib/vtls/polarssl.c
@@ -270,6 +270,27 @@ polarssl_connect_step1(struct connectdata *conn,
     return CURLE_SSL_CONNECT_ERROR;
   }
 
+  if(data->set.ssl.version == 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");
+  }
+  else if(data->set.ssl.version == 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");
+  }
+  else if(data->set.ssl.version == 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");
+  }
+  else if(data->set.ssl.version == 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");
+  }
+
   ssl_set_endpoint(&connssl->ssl, SSL_IS_CLIENT);
   ssl_set_authmode(&connssl->ssl, SSL_VERIFY_OPTIONAL);
 
-- 
1.9.1

http://wald.intevation.org/projects/trustbridge/