Completed Items

1.     Inform the kernel of the key.
2.     Add colors to the kernel widgets. On Windows platforms,
       the kernel path must represent a readable program. On other platforms,
       the path must represent an executable program.
3.     If the passphrase is not set, disable all other tabs. Also
       disable the kernel and listeners group boxes.
4.     Sticky needs a tooltip describing the feature.
5.     Add a check box to hide all disconnected neighbors. This was
       completed, however, it was removed on 06/03/2013. The option
       may cause confusion when a new neighbor is defined if a uniqueness
       error arises. Similar confusion may arise for listeners.
6.     Improve the IP input masks. Removed the underscores so that the
       space bar may be used. Attached returnPressed() signals to
       listener and neighbor IP widgets.
7.     When the RSA key generation is finished, a confirmation should
       be displayed.
8.     The context menu to share the public key should be a button.
9.     Add an icon to a connected neighbor.
10.    libspoton.dll needs to be installed in the executable's path.
11.    Add presence information to the Participants table.
12.    Provide a means of sending a message to friends only.
13.    Add UUIDs to neighbors. 
14.    Display additional information pertaining to network information in
       the Neighbors table.
15.    Re-encode various databases whenever the passphrase is changed.
16.    Offline e-mail.
17.    Qt 4.6.3 support. Please ignore. Qt 4.6.x and older are not
       supported.
18.    Use QSslSockets.
19.    Inspect toInt() results.
20.    Encrypt the uuid field in the neighbors.db database.
21.    Encrypt-then-MAC.
       (http://cseweb.ucsd.edu/~mihir/papers/oem.html)
22.    Some messages are echoed. The transfer method (get, post) of the
       original message should be respected.
23.    Inspect spoton_crypt's hash failures.
24.    Secure connections between the interfaces and the kernel.
25.    Dedicated lines. Such lines, if enabled by both parties, do
       not allow echoed data.
26.    The re-encoding phase may produce errors. Delete corrupt entries.
27.    All database names should be unique.
28.    Depict listeners that support SSL.
29.    Echo mode for listeners.
30.    Reset keep-alive timers if valid data has been processed.
31.    The kernel should behave as a pass-through device if
       participants are not defined. However, it should emit
       scrambled messages if necessary.
32.    Improve kernel congestion cache.
33.    Complete max. Neighbors fields.
34.    Do not destroy the children of an inactive listener. Provide a context
       menu action instead.
35.    Do not store SSL keys in listeners.db and neighbors.db.
36.    The number of connections in the Listeners table may be incorrect.
37.    Full/half-echo listeners context menu option. Children neighbors
       remain as configured.
38.    TTLs may be used to describe Spot-On graphs. Alternative?
39.    A Spot-On node may create a non-specific message having a high TTL
       with the scope of exploring graphs. The insight would be broken
       by nodes having congestion controls. TTLs need to be reviewed.
40.    Review SQL update statements.
41.    Function to separate children from listeners.
42.    Limit sending of information to the kernel. See
       spoton::slotKernelSocketState().
43.    Simplify messages. Hide header information.
44.    Local and long distance calling feature to limit PKI.
45.    Add optional signatures for inbound and outbound traffic.
46.    Bulk key copies, per the friendly Mr. Smith.
47.    Provide IP blocking capabilities.
48.    Include external IP addresses in listener certificates.
49.    Review process signals for the kernel.
50.    E-mail retrieval may fail if a node is disconnected because of
       a lifetime expiration. Other communications may fail too.
51.    Permanent certificates.
52.    Statistics.

Ignored Items

1.     The kernel should fetch a node's external IP address. Not ideal for
       listeners that are connected on interfaces having different external
       addresses.
2.     Remove UTF-8 conversions in spoton_crypt::saltedPassphraseHash().
3.     Use super-secure memory? Used here and there.
4.     Favorite channels.
5.     CGI for listeners.
6.     Customize expiration timers.
7.     Include licenses of other software where applicable.
       Satisfy the license soldiers.

Remaining Items

1.     Inspect UTF-8 uses.
2.     Introduce DSA and ElGamal?
3.     Echo proxy?
4.     Prioritize keep-alive messages.
5.     Allow for other ciphers besides AES for e-mail.
6.     Double encryption. Verify that the user's key is independent of
       the random key. Separate cipher algorithms?
7.     Country flags and names for host names.
8.     Monitor kernel health from the UI.
       See spoton::slotGeneralTimerTimeout().
9.     Auto-clear textedit widgets that contain too much data.
10.    Hard kernel termination. Control session separation.
11.    Colorful HTTP headers.
12.    Custom protocol messages for rapid redeployment.
13.    Provide a total silent mode. Cumbersome.
14.    Artificial trust. All participants must play nicely. Zero-knowledge?
15.    What to do about corrupt database values?
16.    Entering geminis is difficult.
17.    Allow bonds across connections.
18.    Allow pass-through flow of non-Spot-On data.
19.    Inbound data should be time-tagged. Nodes must purge
       containers of old data.
20.    Introduce load balancing of echoes. We're not interested in real-time
       responses. Congestion control is helpful, however, short graphs
       tend to be skewed.
21.    Optional OTR.
22.    QFSFileEngine::open: No file name specified: created from
       e-mail.
23.    Support ECC.
24.    Perform calling over geminis.
25.    Encrypted participants public keys. Keyed hashes? Slow retrieval.
26.    Remote kernel termination.
27.    Zero-knowledge passphrase authentication.
