forked from dedis/Dissent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
56 lines (46 loc) · 2.76 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Anonymity
- Design a dynamic group -- handles new connections, disconnections, and blame
- Need some structure to communicate group status / change
- Make sessions optionally multithreaded, we really don't want crypto computation in the main thread
- Need some means to initiate a group / session
- (Memory) Provide mechanisms to clear out intermediate state from Rounds
- (Memory) Move logic for individual states into separate classes
Connections
- ConnectionTable should be a value type
- ConnectionManager and maybe EL should turn reject requests for connections when closed
- Relay assumes that Rpc always completes successfully ... needs timeout
Crypto
- Add QCA or Botan CryptoLibraries, take a look at the src/Crypto/CryptoFactory and other related files to get a general feel
- Remove Null implementations of non-slow things (DH is a good candidate)
- Move XOR into Utils
- Create a randomize / hash (OAEP) module
- Use abstract types in API for more comprehensive type-checking (DhPublicKey instead of QByteArray)
Messaging
- All Rpcs should time out, request for status update and fail when there's really no response for a long period of time
Overall
- !!!Replace all pointers with qscoped / qshared pointers
- Consider removing qsharedata and replacing it with qsharedpointers
Overlay
- Implement Chord and use for overlay broadcasting and overall group dynamics
- Implement an actual gossip overlay with support for a gossip based broadcast medium
Transports
- Implement a UdpEL and create a reliability layer so we can use it for UdpEL and if we do other tasks that require reliable transmission (such as overlay routing).
- TcpEL (maybe Qt) cannot handle running out of file descriptors -- causing the application to infinite loop on poll.
Issues
- The current protocol doesn't work properly if a non-shuffler receives an invalid go / no go message ... since no one is waiting for its private keys, thus the process will conclude potentially without his follow up.
Web Server
- Better error handling
- Index page with list of all URLs
- HTTPS
- Packaging formats
Tunnel
- Better fairness/queuing strategy. Tunnels should only read as much data from sockets as it can send to the next session. This will allow TCP to throttle the connection and not overwhelm the RemoteTunnel's buffers. Tunnels should send data packets to the next session in random order from every connection -- that way one connection doesn't dominate the channel.
- Session ID in network messages
- Have RemoteTunnel sign messages it sends back to LocalTunnel
- Encryption on packets in both directions
- Have every server function as a well-known remote tunnel
- FinishPacket should have a "reason" field
- Options for SOCKS 4[a] protocols
Social Networks
- Add Apul's LRS signing
- Add Kritarth's social keys and message posting