diff options
author | Kyle L. Huff <code@curetheitch.com> | 2015-03-27 07:22:32 -0400 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2015-03-27 23:32:14 +0100 |
commit | d2feb71752f193ced11c137bdf2026373ebc3dc5 (patch) | |
tree | 7b2846a33303f9a9174cc60a00e8e0deff8a4576 /lib/vtls/cyassl.c | |
parent | 211f1e3c6bf708e8809f10680d9d3a216d8a14b7 (diff) |
cyassl: add SSL context callback support for CyaSSL
Adds support for CURLOPT_SSL_CTX_FUNCTION when using CyaSSL, and better
handles CyaSSL instances using NO_FILESYSTEM.
Diffstat (limited to 'lib/vtls/cyassl.c')
-rw-r--r-- | lib/vtls/cyassl.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/vtls/cyassl.c b/lib/vtls/cyassl.c index 32a4477cb..7a10eba12 100644 --- a/lib/vtls/cyassl.c +++ b/lib/vtls/cyassl.c @@ -201,6 +201,24 @@ cyassl_connect_step1(struct connectdata *conn, data->set.ssl.verifypeer?SSL_VERIFY_PEER:SSL_VERIFY_NONE, NULL); + /* give application a chance to interfere with SSL set up. */ + if(data->set.ssl.fsslctx) { + CURLcode result = CURLE_OK; + result = (*data->set.ssl.fsslctx)(data, conssl->ctx, + data->set.ssl.fsslctxp); + if(result) { + failf(data, "error signaled by ssl ctx callback"); + return result; + } + } +#ifdef NO_FILESYSTEM + else if(data->set.ssl.verifypeer) { + failf(data, "CyaSSL: unable to verify certificate; no certificate", + " authorities registered"); + return CURLE_SSL_CONNECT_ERROR; + } +#endif + /* Let's make an SSL structure */ if(conssl->handle) SSL_free(conssl->handle); |