Using cURL with wolfSSL and TLS 1.3

cURL is an open-source project that provides the command line tool, curl, for transferring data between client and server with URLs, powered by cURL’s library, libcurl. curl and libcurl both provide support for building SSL/TLS libraries, including wolfSSL! Additionally, there is also the tinycurl library which is currently in its beta version. tinycurl also has the capability to utilize TLS 1.3 with wolfSSL. More information about tinycurl can be found in an article written by Daniel Stenberg, located here: https://www.wolfssl.com/tiny-curl/. The latest version of cURL and tinycurl can be downloaded from the wolfSSL download page, located here: https://www.wolfssl.com/download/.

To build curl with wolfSSL, simply configure and install curl with:

$ ./configure --with-wolfssl
$ make && make install

Starting with version 7.52.0, curl provides TLS 1.3 support when built with a TLS library. TLS 1.3 protocol support is also currently available in the wolfSSL library. Since both curl and wolfSSL support TLS 1.3, curl can be compiled with the addition of wolfSSL to select the TLS 1.3 protocol.

Configuring wolfSSL and curl to implement TLS 1.3 is simple. To build curl and libcurl with wolfSSL, wolfSSL must first be configured with TLS 1.3 support.

TLS 1.3 support is enabled by default in wolfSSL.  You can enable various features to best support curl with the "--enable-curl" option:

$ ./configure --enable-curl
$ make all
$ sudo make install

Then, build curl with TLS 1.3-enabled wolfSSL:

$ ./configure --with-wolfssl --without-ssl
$ make && make install

To test a TLS 1.3 connection with curl + wolfSSL, invoke curl with the --tlsv1.3 option on a server that supports TLS 1.3. For example:

$ curl https://enabled.tls13.com/

A successful connection will return the HTML page downloaded from https://enabled.tls13.com/:

<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <h1>Test</h1>
        <p>Testing</p>
    </body>
</html>

For more information on wolfSSL and curl, please visit our curl page here: https://www.wolfssl.com/products/curl/.

If you would like more information about wolfSSL’s support for TLS 1.3 or help on using it in your application, contact us at facts@wolfssl.com or or call us at +1 425 245 8247.