Fizz is a C++14 implementation of the TLS 1.3 standard that supports drafts 28, 26, and 23. It supports major handshake modes, including PSK resumption, early data, client authentication, and HelloRetryRequest. The library largely depends on three libraries: Folly, OpenSSL, and libsodium. The core protocol implementations are in ClientProtocol and ServerProtocol, while FizzClient and FizzServer provide applications with an interface to interact with the state machine. AsyncFizzClient and AsyncFizzServer provide implementations of the folly AsyncTransportWrapper interface and perform the TLS handshake and encrypt/decrypt application data. Fizz has features like scatter/gather IO, asynchronous APIs, support for exported keying material, and a custom state machine. A sample application called Fizz showcases basic client/server functionality.
don't have tea/gui yet? download here
Copy the tea one-liner above into your terminal to install facebookincubator/fizz. tea will interpret the documentation and take care of any dependencies.