Unverified Commit 6f1eec14 authored by Johannes Schindelin's avatar Johannes Schindelin Committed by Daniel Stenberg
Browse files

vtls: remove obsolete declarations of SSL backend functionality



These functions are all available via the Curl_ssl struct now, no need
to declare them separately anymore.

As the global declarations are removed, the corresponding function
definitions are marked as file-local. The only two exceptions here are
Curl_mbedtls_shutdown() and Curl_polarssl_shutdown(): only the
declarations were removed, there are no function definitions to mark
file-local.

Please note that Curl_nss_force_init() is *still* declared globally, as
the only SSL backend-specific function, because it was introduced
specifically for the use case where cURL was compiled with
`--without-ssl --with-nss`. For details, see f3b77e56 (http_ntlm: add
support for NSS, 2010-06-27).

Signed-off-by: default avatarJohannes Schindelin <johannes.schindelin@gmx.de>
parent 742ddc9d
Loading
Loading
Loading
Loading
+12 −18
Original line number Diff line number Diff line
@@ -49,7 +49,7 @@


/* Global axTLS init, called from Curl_ssl_init() */
int Curl_axtls_init(void)
static int Curl_axtls_init(void)
{
/* axTLS has no global init.  Everything is done through SSL and SSL_CTX
 * structs stored in connectdata structure.  Perhaps can move to axtls.h.
@@ -57,7 +57,7 @@ int Curl_axtls_init(void)
  return 1;
}

void Curl_axtls_cleanup(void)
static void Curl_axtls_cleanup(void)
{
  /* axTLS has no global cleanup.  Perhaps can move this to axtls.h. */
}
@@ -284,7 +284,7 @@ static CURLcode connect_prep(struct connectdata *conn, int sockindex)
  return CURLE_OK;
}

void Curl_axtls_close(struct connectdata *conn, int sockindex)
static void Curl_axtls_close(struct connectdata *conn, int sockindex)
{
  struct ssl_connect_data *connssl = &conn->ssl[sockindex];

@@ -424,10 +424,8 @@ static CURLcode connect_finish(struct connectdata *conn, int sockindex)
 * Use axTLS's non-blocking connection feature to open an SSL connection.
 * This is called after a TCP connection is already established.
 */
CURLcode Curl_axtls_connect_nonblocking(
    struct connectdata *conn,
    int sockindex,
    bool *done)
static CURLcode Curl_axtls_connect_nonblocking(struct connectdata *conn,
                                               int sockindex, bool *done)
{
  CURLcode conn_step;
  int ssl_fcn_return;
@@ -491,10 +489,7 @@ CURLcode Curl_axtls_connect_nonblocking(
 * This function is called after the TCP connect has completed. Setup the TLS
 * layer and do all necessary magic for a blocking connect.
 */
CURLcode
Curl_axtls_connect(struct connectdata *conn,
                  int sockindex)

static CURLcode Curl_axtls_connect(struct connectdata *conn, int sockindex)
{
  struct Curl_easy *data = conn->data;
  CURLcode conn_step = connect_prep(conn, sockindex);
@@ -563,7 +558,7 @@ static ssize_t axtls_send(struct connectdata *conn,
 * This function is called to shut down the SSL layer but keep the
 * socket open (CCC - Clear Command Channel)
 */
int Curl_axtls_shutdown(struct connectdata *conn, int sockindex)
static int Curl_axtls_shutdown(struct connectdata *conn, int sockindex)
{
  /* Outline taken from openssl.c since functions are in axTLS compat layer.
     axTLS's error set is much smaller, so a lot of error-handling was removed.
@@ -662,7 +657,7 @@ static ssize_t axtls_recv(struct connectdata *conn, /* connection data */
 *     0 means the connection has been closed
 *    -1 means the connection status is unknown
 */
int Curl_axtls_check_cxn(struct connectdata *conn)
static int Curl_axtls_check_cxn(struct connectdata *conn)
{
  /* openssl.c line: rc = SSL_peek(conn->ssl[FIRSTSOCKET].ssl, (void*)&buf, 1);
     axTLS compat layer always returns the last argument, so connection is
@@ -672,7 +667,7 @@ int Curl_axtls_check_cxn(struct connectdata *conn)
   return 1; /* connection still in place */
}

void Curl_axtls_session_free(void *ptr)
static void Curl_axtls_session_free(void *ptr)
{
  (void)ptr;
  /* free the ID */
@@ -680,14 +675,13 @@ void Curl_axtls_session_free(void *ptr)
     compatibility layer does nothing, so we do nothing too. */
}

size_t Curl_axtls_version(char *buffer, size_t size)
static size_t Curl_axtls_version(char *buffer, size_t size)
{
  return snprintf(buffer, size, "axTLS/%s", ssl_version());
}

CURLcode Curl_axtls_random(struct Curl_easy *data,
                           unsigned char *entropy,
                           size_t length)
static CURLcode Curl_axtls_random(struct Curl_easy *data,
                                  unsigned char *entropy, size_t length)
{
  static bool ssl_seeded = FALSE;
  (void)data;
+0 −19
Original line number Diff line number Diff line
@@ -27,25 +27,6 @@
#include "curl/curl.h"
#include "urldata.h"

int Curl_axtls_init(void);
void Curl_axtls_cleanup(void);
CURLcode Curl_axtls_connect(struct connectdata *conn, int sockindex);
CURLcode Curl_axtls_connect_nonblocking(
    struct connectdata *conn,
    int sockindex,
    bool *done);

 /* close a SSL connection */
void Curl_axtls_close(struct connectdata *conn, int sockindex);

void Curl_axtls_session_free(void *ptr);
size_t Curl_axtls_version(char *buffer, size_t size);
int Curl_axtls_shutdown(struct connectdata *conn, int sockindex);
int Curl_axtls_check_cxn(struct connectdata *conn);
CURLcode Curl_axtls_random(struct Curl_easy *data,
                           unsigned char *entropy,
                           size_t length);

extern const struct Curl_ssl Curl_ssl_axtls;

/* Set the API backend definition to axTLS */
+12 −16
Original line number Diff line number Diff line
@@ -696,7 +696,7 @@ static ssize_t cyassl_send(struct connectdata *conn,
  return rc;
}

void Curl_cyassl_close(struct connectdata *conn, int sockindex)
static void Curl_cyassl_close(struct connectdata *conn, int sockindex)
{
  struct ssl_connect_data *conssl = &conn->ssl[sockindex];

@@ -744,14 +744,14 @@ static ssize_t cyassl_recv(struct connectdata *conn,
}


void Curl_cyassl_session_free(void *ptr)
static void Curl_cyassl_session_free(void *ptr)
{
  (void)ptr;
  /* CyaSSL reuses sessions on own, no free */
}


size_t Curl_cyassl_version(char *buffer, size_t size)
static size_t Curl_cyassl_version(char *buffer, size_t size)
{
#if LIBCYASSL_VERSION_HEX >= 0x03006000
  return snprintf(buffer, size, "wolfSSL/%s", wolfSSL_lib_version());
@@ -765,13 +765,14 @@ size_t Curl_cyassl_version(char *buffer, size_t size)
}


int Curl_cyassl_init(void)
static int Curl_cyassl_init(void)
{
  return (CyaSSL_Init() == SSL_SUCCESS);
}


bool Curl_cyassl_data_pending(const struct connectdata* conn, int connindex)
static bool Curl_cyassl_data_pending(const struct connectdata* conn,
                                     int connindex)
{
  if(conn->ssl[connindex].handle)   /* SSL is in use */
    return (0 != SSL_pending(conn->ssl[connindex].handle)) ? TRUE : FALSE;
@@ -784,7 +785,7 @@ bool Curl_cyassl_data_pending(const struct connectdata* conn, int connindex)
 * This function is called to shut down the SSL layer but keep the
 * socket open (CCC - Clear Command Channel)
 */
int Curl_cyassl_shutdown(struct connectdata *conn, int sockindex)
static int Curl_cyassl_shutdown(struct connectdata *conn, int sockindex)
{
  int retval = 0;
  struct ssl_connect_data *connssl = &conn->ssl[sockindex];
@@ -911,18 +912,14 @@ cyassl_connect_common(struct connectdata *conn,
}


CURLcode
Curl_cyassl_connect_nonblocking(struct connectdata *conn,
                                int sockindex,
                                bool *done)
static CURLcode Curl_cyassl_connect_nonblocking(struct connectdata *conn,
                                                int sockindex, bool *done)
{
  return cyassl_connect_common(conn, sockindex, TRUE, done);
}


CURLcode
Curl_cyassl_connect(struct connectdata *conn,
                    int sockindex)
static CURLcode Curl_cyassl_connect(struct connectdata *conn, int sockindex)
{
  CURLcode result;
  bool done = FALSE;
@@ -936,9 +933,8 @@ Curl_cyassl_connect(struct connectdata *conn,
  return CURLE_OK;
}

CURLcode Curl_cyassl_random(struct Curl_easy *data,
                            unsigned char *entropy,
                            size_t length)
static CURLcode Curl_cyassl_random(struct Curl_easy *data,
                                   unsigned char *entropy, size_t length)
{
  RNG rng;
  (void)data;
+0 −18
Original line number Diff line number Diff line
@@ -25,24 +25,6 @@

#ifdef USE_CYASSL

CURLcode Curl_cyassl_connect(struct connectdata *conn, int sockindex);
bool Curl_cyassl_data_pending(const struct connectdata* conn, int connindex);
int Curl_cyassl_shutdown(struct connectdata* conn, int sockindex);

 /* close a SSL connection */
void Curl_cyassl_close(struct connectdata *conn, int sockindex);

void Curl_cyassl_session_free(void *ptr);
size_t Curl_cyassl_version(char *buffer, size_t size);
int Curl_cyassl_shutdown(struct connectdata *conn, int sockindex);
int Curl_cyassl_init(void);
CURLcode Curl_cyassl_connect_nonblocking(struct connectdata *conn,
                                         int sockindex,
                                         bool *done);
CURLcode Curl_cyassl_random(struct Curl_easy *data,
                            unsigned char *entropy,
                            size_t length);

extern const struct Curl_ssl Curl_ssl_cyassl;

/* Set the API backend definition to CyaSSL */
+13 −17
Original line number Diff line number Diff line
@@ -2568,17 +2568,13 @@ darwinssl_connect_common(struct connectdata *conn,
  return CURLE_OK;
}

CURLcode
Curl_darwinssl_connect_nonblocking(struct connectdata *conn,
                                   int sockindex,
                                   bool *done)
static CURLcode Curl_darwinssl_connect_nonblocking(struct connectdata *conn,
                                                   int sockindex, bool *done)
{
  return darwinssl_connect_common(conn, sockindex, TRUE, done);
}

CURLcode
Curl_darwinssl_connect(struct connectdata *conn,
                       int sockindex)
static CURLcode Curl_darwinssl_connect(struct connectdata *conn, int sockindex)
{
  CURLcode result;
  bool done = FALSE;
@@ -2593,7 +2589,7 @@ Curl_darwinssl_connect(struct connectdata *conn,
  return CURLE_OK;
}

void Curl_darwinssl_close(struct connectdata *conn, int sockindex)
static void Curl_darwinssl_close(struct connectdata *conn, int sockindex)
{
  struct ssl_connect_data *connssl = &conn->ssl[sockindex];

@@ -2614,7 +2610,7 @@ void Curl_darwinssl_close(struct connectdata *conn, int sockindex)
  connssl->ssl_sockfd = 0;
}

int Curl_darwinssl_shutdown(struct connectdata *conn, int sockindex)
static int Curl_darwinssl_shutdown(struct connectdata *conn, int sockindex)
{
  struct ssl_connect_data *connssl = &conn->ssl[sockindex];
  struct Curl_easy *data = conn->data;
@@ -2667,7 +2663,7 @@ int Curl_darwinssl_shutdown(struct connectdata *conn, int sockindex)
  return rc;
}

void Curl_darwinssl_session_free(void *ptr)
static void Curl_darwinssl_session_free(void *ptr)
{
  /* ST, as of iOS 5 and Mountain Lion, has no public method of deleting a
     cached session ID inside the Security framework. There is a private
@@ -2678,7 +2674,7 @@ void Curl_darwinssl_session_free(void *ptr)
  Curl_safefree(ptr);
}

size_t Curl_darwinssl_version(char *buffer, size_t size)
static size_t Curl_darwinssl_version(char *buffer, size_t size)
{
  return snprintf(buffer, size, "SecureTransport");
}
@@ -2691,7 +2687,7 @@ size_t Curl_darwinssl_version(char *buffer, size_t size)
 *     0 means the connection has been closed
 *    -1 means the connection status is unknown
 */
int Curl_darwinssl_check_cxn(struct connectdata *conn)
static int Curl_darwinssl_check_cxn(struct connectdata *conn)
{
  struct ssl_connect_data *connssl = &conn->ssl[FIRSTSOCKET];
  OSStatus err;
@@ -2706,7 +2702,7 @@ int Curl_darwinssl_check_cxn(struct connectdata *conn)
  return 0;
}

bool Curl_darwinssl_data_pending(const struct connectdata *conn,
static bool Curl_darwinssl_data_pending(const struct connectdata *conn,
                                        int connindex)
{
  const struct ssl_connect_data *connssl = &conn->ssl[connindex];
@@ -2723,7 +2719,7 @@ bool Curl_darwinssl_data_pending(const struct connectdata *conn,
    return false;
}

CURLcode Curl_darwinssl_random(struct Curl_easy *data UNUSED_PARAM,
static CURLcode Curl_darwinssl_random(struct Curl_easy *data UNUSED_PARAM,
                                      unsigned char *entropy, size_t length)
{
  /* arc4random_buf() isn't available on cats older than Lion, so let's
@@ -2760,7 +2756,7 @@ static void Curl_darwinssl_sha256sum(const unsigned char *tmp, /* input */
  (void)CC_SHA256(tmp, (CC_LONG)tmplen, sha256sum);
}

bool Curl_darwinssl_false_start(void)
static bool Curl_darwinssl_false_start(void)
{
#if CURL_BUILD_MAC_10_9 || CURL_BUILD_IOS_7
  if(SSLSetSessionOption != NULL)
Loading