Use unsigned char rather than char for arbitrary data
Fix header guard conflict
Add unpadded rsa encryption
Stop codec_gets returning the string length in len
Implement the login protocol

It's a little messy at the moment, but it will probably be fine.