Secure File Transfer With Prior Key Agreement

An implementation of a toy version of the TLS handshake, assuming that the Client and Server have negotiated SRP-SHA3-256-RSA-AES-256-CBC-SHA3-256 as the TLS cipher suite. The protocol has two parties (a Client and a Server), as well as a Trusted Third Party. The program allows for the Client and Server to register and authenticate each other's identities using certificates, and then allows for the derivation of a shared key so that the Client can send encrypted files to the Server.
Check it out!