Updated some old code to use new methods
ECDH implementation now uses BitWriter/BitReader to serialize/deserialize
Added error handling to NetClient for predictable cases of error
Fixed regular SHA1 implementation
Partially remade optimized SHA1 implementation as a hybrid implementation between minimum allocation and minimum processor overhead
Fixed how Databse manages serialization/deserialization of Users
Updated Output class to support any type
Output now supports overwritable lines
Added OutputFormatter to simplify creating-column output
Sessions keys are no longer invalidated when client-server connection is closed
Added command system to server for easier administration
* Moved encryption algorithms into a folder
* Sorted networking into separate files
Additions:
* Created Elliptic Curve encryption implementation
* Generalized the key exchange implementation
- Implemented Diffie-Hellman key exchange
- Implemented Elliptic Curve Diffie-Hellman key exchange
* Started implementing binary data compressor
Changes:
* Changed NetClient and NetServer to use IKeyExchange for initial AES key exchange instead of RSA (for optimization)
* Adapted TextView implementation to properly support optional borders
* Fed InputView issue caused due to border rendering change
* Fixed and simplified Rectangle computations
* Fixed errant naming in Session layout file
* Fixed errant i18n naming in Session layout file
* Fixed resize background rendering issue in ConsoleController
* Fully implemented ListView (needs testing)
* Updated BankInteractor and server to use ECDH-E with Curve25519
Removals:
* Removed identity verification from NetClient (identities checks should be performed as a layer on top of NetClient/NetServer, not as part of it)