Adding wolfSSL (formerly CyaSSL) support
=====

In order to support SSL *HTTPS* connections in Civetweb,
you may wish to use the GPLv2 licensed CyaSSL library.  By using this
library, the resulting binary may have to have the GPL license unless
you buy a commercial license from [wolfSSL](http://www.yassl.com/).

*Note: The following instructions have not been checked for the most recent versions of CivetWeb and wolfSSL. Some information might be outdated.*


Getting Started
----

- Download Cayssl at https://www.wolfssl.com (formerly http://www.yassl.com/)
- Extract the zip file
    - To make this seemless, extract to a directory parallel to with Civetweb is

### Example Project

If 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.

Build Configuration
----

#### Required include paths for both civetweb and cyassl
 - *cyassl_directory*\
 - *cyassl_directory*\cyassl\

#### Required civetweb preprocessor defines
 - USE_YASSL
 - NO_SSL_DL

#### Required cySSL preprocessor defines
 - OPENSSL_EXTRA
 - HAVE_ERRNO_H
 - HAVE_GETHOSTBYNAME
 - HAVE_INET_NTOA
 - HAVE_LIMITS_H
 - HAVE_MEMSET
 - HAVE_SOCKET
 - HAVE_STDDEF_H
 - HAVE_STDLIB_H
 - HAVE_STRING_H
 - HAVE_SYS_STAT_H
 - HAVE_SYS_TYPES_H

#### Required CyaSSL source files

 - ctaocrypt/src/aes.c
 - ctaocrypt/src/arc4.c
 - ctaocrypt/src/asn.c
 - ctaocrypt/src/coding.c
 - ctaocrypt/src/des3.c
 - ctaocrypt/src/dh.c
 - ctaocrypt/src/dsa.c
 - ctaocrypt/src/ecc.c
 - ctaocrypt/src/error.c
 - ctaocrypt/src/hc128.c
 - ctaocrypt/src/hmac.c
 - ctaocrypt/src/integer.c
 - ctaocrypt/src/logging.c
 - ctaocrypt/src/md2.c
 - ctaocrypt/src/md4.c
 - ctaocrypt/src/md5.c
 - ctaocrypt/src/memory.c
 - ctaocrypt/src/misc.c
 - ctaocrypt/src/pwdbased.c
 - ctaocrypt/src/rabbit.c
 - ctaocrypt/src/random.c
 - ctaocrypt/src/ripemd.c
 - ctaocrypt/src/rsa.c
 - ctaocrypt/src/sha.c
 - ctaocrypt/src/sha256.c
 - ctaocrypt/src/sha512.c
 - ctaocrypt/src/tfm.c
 - src/crl.c
 - src/internal.c
 - src/io.c
 - src/keys.c
 - src/ocsp.c
 - src/sniffer.c
 - src/ssl.c
 - src/tls.c



