1Adding wolfSSL (formerly CyaSSL) support 2===== 3 4In order to support SSL *HTTPS* connections in Civetweb, 5you may wish to use the GPLv2 licensed CyaSSL library. By using this 6library, the resulting binary may have to have the GPL license unless 7you buy a commercial license from [wolfSSL](http://www.yassl.com/). 8 9*Note: The following instructions have not been checked for the most recent versions of CivetWeb and wolfSSL. Some information might be outdated. All current versions of CivetWeb are tested using [OpenSSL](OpenSSL.md). CivetWeb uses the OpenSSL API functions - wolfSSL 10provides an OpenSSL compatibility layer. However, when new TLS features are added to CivetWeb, it is not checked if corresponding functions work the same, or even if they exist at all within this compatibility layer.* 11 12 13Getting Started 14---- 15 16- Download Cayssl at https://www.wolfssl.com (formerly http://www.yassl.com/) 17- Extract the zip file 18 - To make this seemless, extract to a directory parallel to with Civetweb is 19 20### Example Project 21 22If you download cyaSSL to cyassl-2.7.0 in a directory parallel to Civetweb, you can open the *VS/civetweb_yassl* solution in Visual Studio. 23 24Build Configuration 25---- 26 27#### Required include paths for both civetweb and cyassl 28 - *cyassl_directory*\ 29 - *cyassl_directory*\cyassl\ 30 31#### Required civetweb preprocessor defines 32 - USE_YASSL 33 - NO_SSL_DL 34 35#### Required cySSL preprocessor defines 36 - OPENSSL_EXTRA 37 - HAVE_ERRNO_H 38 - HAVE_GETHOSTBYNAME 39 - HAVE_INET_NTOA 40 - HAVE_LIMITS_H 41 - HAVE_MEMSET 42 - HAVE_SOCKET 43 - HAVE_STDDEF_H 44 - HAVE_STDLIB_H 45 - HAVE_STRING_H 46 - HAVE_SYS_STAT_H 47 - HAVE_SYS_TYPES_H 48 49#### Required CyaSSL source files 50 51 - ctaocrypt/src/aes.c 52 - ctaocrypt/src/arc4.c 53 - ctaocrypt/src/asn.c 54 - ctaocrypt/src/coding.c 55 - ctaocrypt/src/des3.c 56 - ctaocrypt/src/dh.c 57 - ctaocrypt/src/dsa.c 58 - ctaocrypt/src/ecc.c 59 - ctaocrypt/src/error.c 60 - ctaocrypt/src/hc128.c 61 - ctaocrypt/src/hmac.c 62 - ctaocrypt/src/integer.c 63 - ctaocrypt/src/logging.c 64 - ctaocrypt/src/md2.c 65 - ctaocrypt/src/md4.c 66 - ctaocrypt/src/md5.c 67 - ctaocrypt/src/memory.c 68 - ctaocrypt/src/misc.c 69 - ctaocrypt/src/pwdbased.c 70 - ctaocrypt/src/rabbit.c 71 - ctaocrypt/src/random.c 72 - ctaocrypt/src/ripemd.c 73 - ctaocrypt/src/rsa.c 74 - ctaocrypt/src/sha.c 75 - ctaocrypt/src/sha256.c 76 - ctaocrypt/src/sha512.c 77 - ctaocrypt/src/tfm.c 78 - src/crl.c 79 - src/internal.c 80 - src/io.c 81 - src/keys.c 82 - src/ocsp.c 83 - src/sniffer.c 84 - src/ssl.c 85 - src/tls.c 86 87 88 89