added more error checking in udp packet parsing

Ignore-this: e1aeb65f0a5f0aa8678c817b2ada1280

darcs-hash:20130827131638-c21fe-8f3b57c3c01fb93c131f4632fad9e54cd4681bc4
made note on max chunks

Ignore-this: af6104817d18a896a1b18c0bf8175698

darcs-hash:20130827132254-c21fe-171169316f1f537ef9e29261d0dce213c3607a35
added new req/rep for getting a greeter's public key

Ignore-this: dba4982a30a7b58691d040b158145603

darcs-hash:20130828222855-c21fe-9f17c5df2e3b8082d1f52730bc15129cd5b7a828
now firegreet has it's own public/private key pair for encryption between firegreet and firestr

Ignore-this: 58d59d8c8f74654eddb12e5670c9a959

darcs-hash:20130828222945-c21fe-7bbab1953f291214c81453206b08a9f641d88cdd
added encryption to firegreet

Ignore-this: 68705259b4ae112e4745df013fe57b3

darcs-hash:20130828224944-c21fe-faf49928d5be89c14cdd17f41aa3eb892e7e812a
changed security session creation ui to fix timing bugs

Ignore-this: 65f05f85faa42ad1eeef9d24d2a4ef39

darcs-hash:20130829001152-c21fe-031d69426c54726547ec4b8cdb071038dfccf919
now all communication between firestr and firegreet are encrypted

Ignore-this: ed24b3e46e982ed5d0d22e9dd349f7ce

The first time you add a greeter, firestr sends a plaintext message to ask the greeter for it's public key. This public key is then stored with the greeter on the file system.

All register and find requests sent to the greeter from firestr are encrypted using public keys.

This way user id's and who knows who should not be known by anyone but the greeter. Of course
if the greeter is comprimised, then this information will also be.

currently the greeter logs everything, but this will change once any bugs are worked out.

darcs-hash:20130829144101-c21fe-5fd55a1e8a69f48dacfa0b56a27866e64e496168
removed adding contact using local ip as it was a security risk

Ignore-this: bc4f299be856c3fb0154e22c3c1c9249

By having only one way to add a contact, it simplifies the code and reduces the security risk that the plaintext add/reject/accept method used.

the contact list dialog has also been simplified

darcs-hash:20130829203137-c21fe-abeefb383427600cf356ce6d181b593503ef39b4
added state per user

Ignore-this: 7ab6079b5618a14d06b339660477488b

darcs-hash:20130829203432-c21fe-9c1158fdd8ef9964d68a129c26585ee69c53adab
fixed some threading and timing bugs in the security and user service

Ignore-this: 18a6b74911da5d2c9f2dfd35253719f

1. when you removed a contact, the security session still exists, so messages from that contact would arrive succesfully to the apps
2. different threads using botan caused some errors.

darcs-hash:20130830023532-c21fe-149dfb6812a2635eeed6bab5d77ce37457c93a38
always log script errors

Ignore-this: 1f73001e038b64107071fb35a2c8373f

darcs-hash:20130831033220-c21fe-d63f2faef71f25af470735d7dd09aa1d69487d21
fixed bugs in session send functions

Ignore-this: b881393bafe6e21923f6bcb982f391a3

darcs-hash:20130902033303-c21fe-e1ca5bbea4533e53a0157628e849ee875e54d223
set list alignment to top

Ignore-this: 3382461a72d959c1db8401ba59c825c6

darcs-hash:20130903223011-c21fe-566e7018f82644f5dc3d705022e3d3a16739ed07
changed contact list in a session to be per app in session

Ignore-this: 18bb7017d2c7023afa54bc792a572847

The model is that each event in a session is over time. So when you add an app to a session,
only those people part of the session at the moment will be added to the app. if a person
is added to a session after the app is added, they are not added to all current apps.

Meaning each app has a static list of contacts who are connected. Contacts may disconnect,
but no new ones are added to the app.

The reason behind this is to simplify writing apps with this assumption. You don't have to worry about people joining an app after it starts.

This model may change in the future but it is that at the moment. So to better reflect this
model i made a contact list display per app in a session instead of one per session.

darcs-hash:20130905034521-c21fe-eb29a677c72074785b58a0e68eccdaa39f795985
fixed bugs in the display of user availability in contact list for an app

Ignore-this: d6313139d621d607ee6d51845b8e12b5

now a user is shown as red when he is no longer available for an app, even if they
are available later in the session.

darcs-hash:20130905050816-c21fe-969f7ab6e45e50b0eee484599a6928a95be91309
added getting contact id using lua api

Ignore-this: 59b8a7776e77b653d69568be9555447

darcs-hash:20130906030522-c21fe-5ed9a27c1228cfb0e27aa8550d26b7f1ce111468
added ability to draw circles

Ignore-this: 9aacbe884eb3b59f3d2b72ca03b4eaa8

darcs-hash:20130906030549-c21fe-abc6280cdcc7ec06a7cef18956472445e11ff299
optimized performance of network communication

Ignore-this: 6cc771c96c0030c06ce1b2a1f29a7d3e

I reduced the header size for the udp packets and increased the udp packet size to 1024.
However now I limited the max size of an individual message to 66.5MB

I might partition to format into two types, the small packet a jumbo one if we
need larger that 66MB messages...

darcs-hash:20130907054251-c21fe-8364e108e6296c51d604e7b9220f74c06da23924
more optimizations using moves to reduce copies in the network stack

Ignore-this: 65ee07ae383f95207885ba2741dbe17a

darcs-hash:20130907061353-c21fe-99fb1a8b47333619b1c8c60ec0a2c5bb1e59dd7b
updated readme with fixes

Ignore-this: da561c2140ea5fc9c6315c8dd15589a5

darcs-hash:20130908035300-c21fe-1d51d3e9928c68225181185cf2e891ac9f06fa72