Added a testsuite.
Added encryption support (AES)

It currently uses a global cipher state, planning to add on a
diffie-hellman key exchange to establish a per-thread cipher state.