Since yassl doesn't support TLS v1.2 protcol and lacks of certain cipher and modes, it should be replaced by GnuTLS and Windows native libraries (bcrypt, schannel).
Yassl is currently used for crypto (hash and encryption) and TLS communication, so we need to support the following components:
Replace existing hash functions (currently we have multiple function for different hash types) with generic wrapper functions:
Affects: server plugins, my_md5, my_sha1, my_sha2
Instead of yassl the nettle library (used by GnuTLS) or bcrypt on Windows will be used. GnuTLS itself doesn't support all block cipher modes (like ECB).
Affects: server plugins, mysys_ssl, des_encrypt, des_decrypt
Both GNUTLS and Schannel support TLS protocols v1.0, v1.1 and v1.2, session caching and handshake renegotiation. Most parts could be ported from Connector/C which already supports GnuTLS and SChannel in client mode.
Affects: vio, status variables