wolfSSL's main source tree has a stale Python wrapper. This ports
everything over from it before it goes away. In this case it is just a
README change.
* Bumps to wolfSSL 5.1.1
* Fixup `make clean`
* Move `wolfssl` src to root
* Switch test from DigiCert to GlobalSign (`python.org` ditched DigiCert
years ago)
* Make SSLContext call `wolfSSL_Init()` which fixes a few issues
* Make `setup.py` compile CFFI and wolfSSL C code
* Fully enable SSLv3 support
* Add TLSv1.3 support
* Fix bug in `wolfSSL_Free()` usage
* Update `tox.ini` to a currently supported platform
Prior to this commit, some compatibility layer functions were available in
wolfssl-py's FFI bindings but only via the wolfSSL names. For example,
`wolfSSLv23_server_method` was available, but not `SSLv23_server_method`. This
commit adds support for the OpenSSL names. So, a Python module that uses the
OpenSSL names can now be more easily ported to using wolfssl-py. For example,
the module pyOpenSSL is a Python wrapper around OpenSSL using FFI, very similar
to what we're doing with wolfssl-py. These new bindings in wolfssl-py allow us
to plug in our wolfSSL FFI to pyOpenSSL, which in turn allows projects using
pyOpenSSL to use wolfSSL under the hood. As a proof of concept, I used
wolfssl-py with pyOpenSSL to convert the Python module ndg_httpsclient from
OpenSSL to wolfSSL.