Adding preliminary code for encryption using botan library

Ignore-this: bcebafff7c368e14eb74b0187832bf4d

darcs-hash:20130715222146-c21fe-0b0e7d32c5e9f980e1730349359386bf57e9bdd5
firestr now requires password

Ignore-this: 8d4296a1d95dbbe4053cb2f90caf15bd

Users now have private and public keys!

The private/public keys are created when you first launch firestr and create a user name
and password.

The password is used to encrypt and decrypt the user's private key.

Also now contact info has public key information and invite files store the public key.

This is the first step in putting encryption in place for com

darcs-hash:20130719045110-c21fe-6c21beb873210f403e6a775133eb866dc2d4896a
added encrypt and decrypt functions to the keys. preliminary code for first go at encryption

Ignore-this: 949afc7c5481c9945611b1673364fbc5

darcs-hash:20130721034015-c21fe-0652be20b3a70dc0916b4277b4b2f84864ccea7b
created new security library

Ignore-this: 2b1fe47c27f655ed701732a1b8aa6ce6

moved util/security to this new library. It will contain all the code dealing
with encryption/decryption and keep the communication secret.

darcs-hash:20130725040009-c21fe-24a29b7bd517b89493e160f3b50b2ed9a62fdd58
session now stores all the new_app messages so that it can send them all in order to a new user to a session

Ignore-this: af340b055c427fc0fb6c5fdaea4042f6

darcs-hash:20130725161953-c21fe-1ae139a42792e5191a35850a67a05a18d0dfa745
reverted changes that added sent apps in memory

Ignore-this: 460463898166977cbf4dab3d02c38168

darcs-hash:20130726141442-c21fe-4d096031008a0d82dd63ebb22b22d9dd4e425bd9
got initial encrypted communication working

Ignore-this: 150bcdb337097f3a24f3dc4975c22e3f

At first I am simply using public key encryption to send messages back and forth... I am breaking up
the messages into chunks which are encrypted individually... but right now the chunks are of a fixed
max size which could be bad.

I am preparing for using DH to establish a shared secret so that I can use AES for actuall communication...

darcs-hash:20130821064803-c21fe-86ff79cee3f5635a6e18201cbaa05f1bb7fbc8e1
started DH symmetric encryption code

Ignore-this: 7e5e90f98004879aed7fc01f7b2c72cc

darcs-hash:20130823224204-c21fe-566adbe415e58040be3843a34b755fda69060efb
now communication uses symmetric encryption

Ignore-this: 49716b66ce99dcfcbf9c1e8f193ce028

now all communication is encrypted including the greet messages and the pings.
the greet uses public/private key encryption and sends the public DH value to each
other, which is used to create a shared secret.

This shared secret establishes an encrypted session for the particular ip/port combo.
So all remaining communication is encrypted using AES with the session secret.

darcs-hash:20130827045158-c21fe-d99bec5b400470801d5fa2262f3a6adffec1716b
log error loading user

Ignore-this: 4b4e3e596c4d8f26991cdb2ea780611d

darcs-hash:20130827045653-c21fe-8c268688a6dad92199b4a191577e87382ab1375c
updated readme warning to include more details about security

Ignore-this: 466726e3358c7ce14fb5f02893cc3252

darcs-hash:20130827050508-c21fe-568331eb7e1b43b6a962a49c7231a5c5f27cc32e
Merge branch 'master' into moc_parse