diff options
| -rw-r--r-- | docs/libcurl/symbols-in-versions | 1 | ||||
| -rw-r--r-- | include/curl/curl.h | 3 | ||||
| -rw-r--r-- | lib/getinfo.c | 20 | ||||
| -rw-r--r-- | lib/vtls/axtls.h | 2 | ||||
| -rw-r--r-- | lib/vtls/curl_darwinssl.h | 1 | ||||
| -rw-r--r-- | lib/vtls/curl_schannel.h | 3 | ||||
| -rw-r--r-- | lib/vtls/cyassl.h | 1 | ||||
| -rw-r--r-- | lib/vtls/gskit.h | 3 | ||||
| -rw-r--r-- | lib/vtls/gtls.h | 1 | ||||
| -rw-r--r-- | lib/vtls/nssg.h | 1 | ||||
| -rw-r--r-- | lib/vtls/openssl.h | 1 | ||||
| -rw-r--r-- | lib/vtls/polarssl.h | 1 | ||||
| -rw-r--r-- | lib/vtls/qssl.h | 3 | ||||
| -rw-r--r-- | lib/vtls/vtls.c | 5 | ||||
| -rw-r--r-- | lib/vtls/vtls.h | 2 | 
15 files changed, 33 insertions, 15 deletions
| diff --git a/docs/libcurl/symbols-in-versions b/docs/libcurl/symbols-in-versions index 620da6426..5cbeff091 100644 --- a/docs/libcurl/symbols-in-versions +++ b/docs/libcurl/symbols-in-versions @@ -604,6 +604,7 @@ CURLSSH_AUTH_KEYBOARD           7.16.1  CURLSSH_AUTH_NONE               7.16.1  CURLSSH_AUTH_PASSWORD           7.16.1  CURLSSH_AUTH_PUBLICKEY          7.16.1 +CURLSSLBACKEND_AXTLS            7.38.0  CURLSSLBACKEND_CYASSL           7.34.0  CURLSSLBACKEND_DARWINSSL        7.34.0  CURLSSLBACKEND_GNUTLS           7.34.0 diff --git a/include/curl/curl.h b/include/curl/curl.h index ebcd07a00..d40b2dbbf 100644 --- a/include/curl/curl.h +++ b/include/curl/curl.h @@ -2033,7 +2033,8 @@ typedef enum {    CURLSSLBACKEND_POLARSSL = 6,    CURLSSLBACKEND_CYASSL = 7,    CURLSSLBACKEND_SCHANNEL = 8, -  CURLSSLBACKEND_DARWINSSL = 9 +  CURLSSLBACKEND_DARWINSSL = 9, +  CURLSSLBACKEND_AXTLS = 10  } curl_sslbackend;  /* Information about the SSL library used and the respective internal SSL diff --git a/lib/getinfo.c b/lib/getinfo.c index bbda35dd0..8905d3613 100644 --- a/lib/getinfo.c +++ b/lib/getinfo.c @@ -285,6 +285,7 @@ static CURLcode getinfo_slist(struct SessionHandle *data, CURLINFO info,        struct curl_tlssessioninfo *tsi = &data->tsi;        struct connectdata *conn = data->easy_conn;        unsigned int sockindex = 0; +      void *internals = NULL;        *tsip = tsi;        tsi->backend = CURLSSLBACKEND_NONE; @@ -303,25 +304,24 @@ static CURLcode getinfo_slist(struct SessionHandle *data, CURLINFO info,        /* Return the TLS session information from the relevant backend */  #ifdef USE_SSLEAY -      tsi->backend = CURLSSLBACKEND_OPENSSL; -      tsi->internals = conn->ssl[sockindex].ctx; +      internals = conn->ssl[sockindex].ctx;  #endif  #ifdef USE_GNUTLS -      tsi->backend = CURLSSLBACKEND_GNUTLS; -      tsi->internals = conn->ssl[sockindex].session; +      internals = conn->ssl[sockindex].session;  #endif  #ifdef USE_NSS -      tsi->backend = CURLSSLBACKEND_NSS; -      tsi->internals = conn->ssl[sockindex].handle; +      internals = conn->ssl[sockindex].handle;  #endif  #ifdef USE_QSOSSL -      tsi->backend = CURLSSLBACKEND_QSOSSL; -      tsi->internals = conn->ssl[sockindex].handle; +      internals = conn->ssl[sockindex].handle;  #endif  #ifdef USE_GSKIT -      tsi->backend = CURLSSLBACKEND_GSKIT; -      tsi->internals = conn->ssl[sockindex].handle; +      internals = conn->ssl[sockindex].handle;  #endif +      if(internals) { +        tsi->backend = Curl_ssl_backend(); +        tsi->internals = internals; +      }        /* NOTE: For other SSL backends, it is not immediately clear what data           to return from 'struct ssl_connect_data'; thus, for now we keep the           backend as CURLSSLBACKEND_NONE in those cases, which should be diff --git a/lib/vtls/axtls.h b/lib/vtls/axtls.h index 55247b8ec..0459cf228 100644 --- a/lib/vtls/axtls.h +++ b/lib/vtls/axtls.h @@ -66,7 +66,7 @@ int Curl_axtls_random(struct SessionHandle *data,  #define curlssl_check_cxn(x) Curl_axtls_check_cxn(x)  #define curlssl_data_pending(x,y) (x=x, y=y, 0)  #define curlssl_random(x,y,z) Curl_axtls_random(x,y,z) - +#define CURL_SSL_BACKEND CURLSSLBACKEND_AXTLS  #endif /* USE_AXTLS */  #endif /* HEADER_CURL_AXTLS_H */ diff --git a/lib/vtls/curl_darwinssl.h b/lib/vtls/curl_darwinssl.h index 25ad3d419..f5c03d838 100644 --- a/lib/vtls/curl_darwinssl.h +++ b/lib/vtls/curl_darwinssl.h @@ -71,6 +71,7 @@ void Curl_darwinssl_md5sum(unsigned char *tmp, /* input */  #define curlssl_data_pending(x,y) Curl_darwinssl_data_pending(x, y)  #define curlssl_random(x,y,z) Curl_darwinssl_random(y,z)  #define curlssl_md5sum(a,b,c,d) Curl_darwinssl_md5sum(a,b,c,d) +#define CURL_SSL_BACKEND CURLSSLBACKEND_DARWINSSL  #endif /* USE_DARWINSSL */  #endif /* HEADER_CURL_DARWINSSL_H */ diff --git a/lib/vtls/curl_schannel.h b/lib/vtls/curl_schannel.h index b82c734a0..e9333179e 100644 --- a/lib/vtls/curl_schannel.h +++ b/lib/vtls/curl_schannel.h @@ -8,7 +8,7 @@   *                             \___|\___/|_| \_\_____|   *   * Copyright (C) 2012, Marc Hoersken, <info@marc-hoersken.de>, et al. - * Copyright (C) 2012, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 2012 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.   *   * This software is licensed as described in the file COPYING, which   * you should have received as part of this distribution. The terms @@ -128,5 +128,6 @@ size_t Curl_schannel_version(char *buffer, size_t size);  #define curlssl_version Curl_schannel_version  #define curlssl_check_cxn(x) (x=x, -1)  #define curlssl_data_pending Curl_schannel_data_pending +#define CURL_SSL_BACKEND CURLSSLBACKEND_SCHANNEL  #endif /* USE_SCHANNEL */  #endif /* HEADER_CURL_SCHANNEL_H */ diff --git a/lib/vtls/cyassl.h b/lib/vtls/cyassl.h index 78cba2ff8..b10b607d7 100644 --- a/lib/vtls/cyassl.h +++ b/lib/vtls/cyassl.h @@ -63,6 +63,7 @@ int Curl_cyassl_random(struct SessionHandle *data,  #define curlssl_check_cxn(x) (x=x, -1)  #define curlssl_data_pending(x,y) Curl_cyassl_data_pending(x,y)  #define curlssl_random(x,y,z) Curl_cyassl_random(x,y,z) +#define CURL_SSL_BACKEND CURLSSLBACKEND_CYASSL  #endif /* USE_CYASSL */  #endif /* HEADER_CURL_CYASSL_H */ diff --git a/lib/vtls/gskit.h b/lib/vtls/gskit.h index 7c50452ad..a4caa6f23 100644 --- a/lib/vtls/gskit.h +++ b/lib/vtls/gskit.h @@ -7,7 +7,7 @@   *                            | (__| |_| |  _ <| |___   *                             \___|\___/|_| \_\_____|   * - * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.   *   * This software is licensed as described in the file COPYING, which   * you should have received as part of this distribution. The terms @@ -59,6 +59,7 @@ int Curl_gskit_check_cxn(struct connectdata * cxn);  #define curlssl_version Curl_gskit_version  #define curlssl_check_cxn(x) Curl_gskit_check_cxn(x)  #define curlssl_data_pending(x,y) 0 +#define CURL_SSL_BACKEND CURLSSLBACKEND_GSKIT  #endif /* USE_GSKIT */  #endif /* HEADER_CURL_GSKIT_H */ diff --git a/lib/vtls/gtls.h b/lib/vtls/gtls.h index 9f99042cf..cd6152ca1 100644 --- a/lib/vtls/gtls.h +++ b/lib/vtls/gtls.h @@ -73,6 +73,7 @@ void Curl_gtls_md5sum(unsigned char *tmp, /* input */  #define curlssl_data_pending(x,y) (x=x, y=y, 0)  #define curlssl_random(x,y,z) Curl_gtls_random(x,y,z)  #define curlssl_md5sum(a,b,c,d) Curl_gtls_md5sum(a,b,c,d) +#define CURL_SSL_BACKEND CURLSSLBACKEND_GNUTLS  #endif /* USE_GNUTLS */  #endif /* HEADER_CURL_GTLS_H */ diff --git a/lib/vtls/nssg.h b/lib/vtls/nssg.h index d441de9d9..311f873d7 100644 --- a/lib/vtls/nssg.h +++ b/lib/vtls/nssg.h @@ -83,6 +83,7 @@ void Curl_nss_md5sum(unsigned char *tmp, /* input */  #define curlssl_data_pending(x,y) (x=x, y=y, 0)  #define curlssl_random(x,y,z) Curl_nss_random(x,y,z)  #define curlssl_md5sum(a,b,c,d) Curl_nss_md5sum(a,b,c,d) +#define CURL_SSL_BACKEND CURLSSLBACKEND_NSS  #endif /* USE_NSS */  #endif /* HEADER_CURL_NSSG_H */ diff --git a/lib/vtls/openssl.h b/lib/vtls/openssl.h index fecad7f54..1a55ffc2f 100644 --- a/lib/vtls/openssl.h +++ b/lib/vtls/openssl.h @@ -93,6 +93,7 @@ void Curl_ossl_md5sum(unsigned char *tmp, /* input */  #define curlssl_data_pending(x,y) Curl_ossl_data_pending(x,y)  #define curlssl_random(x,y,z) Curl_ossl_random(x,y,z)  #define curlssl_md5sum(a,b,c,d) Curl_ossl_md5sum(a,b,c,d) +#define CURL_SSL_BACKEND CURLSSLBACKEND_OPENSSL  #define DEFAULT_CIPHER_SELECTION "ALL!EXPORT!EXPORT40!EXPORT56!aNULL!LOW!RC4" diff --git a/lib/vtls/polarssl.h b/lib/vtls/polarssl.h index 6c5b872c8..9ab7e47e5 100644 --- a/lib/vtls/polarssl.h +++ b/lib/vtls/polarssl.h @@ -62,6 +62,7 @@ int Curl_polarssl_shutdown(struct connectdata *conn, int sockindex);  #define curlssl_version Curl_polarssl_version  #define curlssl_check_cxn(x) (x=x, -1)  #define curlssl_data_pending(x,y) (x=x, y=y, 0) +#define CURL_SSL_BACKEND CURLSSLBACKEND_POLARSSL  /* This might cause libcurl to use a weeker random!     TODO: implement proper use of Polarssl's CTR-DRBG or HMAC-DRBG and use that diff --git a/lib/vtls/qssl.h b/lib/vtls/qssl.h index c0ce15508..9764eecbe 100644 --- a/lib/vtls/qssl.h +++ b/lib/vtls/qssl.h @@ -7,7 +7,7 @@   *                            | (__| |_| |  _ <| |___   *                             \___|\___/|_| \_\_____|   * - * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.   *   * This software is licensed as described in the file COPYING, which   * you should have received as part of this distribution. The terms @@ -56,6 +56,7 @@ int Curl_qsossl_check_cxn(struct connectdata * cxn);  #define curlssl_version Curl_qsossl_version  #define curlssl_check_cxn(x) Curl_qsossl_check_cxn(x)  #define curlssl_data_pending(x,y) 0 +#define CURL_SSL_BACKEND CURLSSLBACKEND_QSOSSL  #endif /* USE_QSOSSL */  #endif /* HEADER_CURL_QSSL_H */ diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c index 3c7bc9865..e418955bd 100644 --- a/lib/vtls/vtls.c +++ b/lib/vtls/vtls.c @@ -697,4 +697,9 @@ void Curl_ssl_md5sum(unsigned char *tmp, /* input */  }  #endif +int Curl_ssl_backend(void) +{ +  return (int)CURL_SSL_BACKEND; +} +  #endif /* USE_SSL */ diff --git a/lib/vtls/vtls.h b/lib/vtls/vtls.h index 72c512d50..e3fa20b7a 100644 --- a/lib/vtls/vtls.h +++ b/lib/vtls/vtls.h @@ -96,6 +96,7 @@ void Curl_ssl_md5sum(unsigned char *tmp, /* input */                       size_t tmplen,                       unsigned char *md5sum, /* output */                       size_t md5len); +int Curl_ssl_backend(void);  #define SSL_SHUTDOWN_TIMEOUT 10000 /* ms */ @@ -124,6 +125,7 @@ void Curl_ssl_md5sum(unsigned char *tmp, /* input */  #define Curl_ssl_connect_nonblocking(x,y,z) CURLE_NOT_BUILT_IN  #define Curl_ssl_kill_session(x) Curl_nop_stmt  #define Curl_ssl_random(x,y,z) CURLE_NOT_BUILT_IN +#define CURL_SSL_BACKEND CURLSSLBACKEND_NONE  #endif  #endif /* HEADER_CURL_VTLS_H */ | 
