x86_64 compilation fixes.
[crypto.git] / TODO
diff --git a/TODO b/TODO
index 07b7b956455d43ce7eed64bffc4e8196a7607b43..be0f0e5f20d3bc11d5b37a07bc46ef4f7171af94 100644 (file)
--- a/TODO
+++ b/TODO
@@ -87,6 +87,8 @@ lib/silcclient, The Client Library
    should provide events so that application developer has a choice of
    developing the SILC app with callbacks or with events.
 
+ o Ability to recover from rekey errors, at least try to.
+
 
 Runtime library, lib/silcutil/
 ==============================
@@ -166,7 +168,7 @@ Runtime library, lib/silcutil/
    This relationship would be associative only.  The schedulers are still
    independent and run independently from each other.   All schedulers
    would be linked and could be accessed from any of the schedulers.
-   It should be possible to retrieve the parent and enumate all children
+   It should be possible to retrieve the parent and enumerate all children
    from any of the schedulers.
 
    SilcSchedule silc_schedule_init(int max_tasks, void *app_context,
@@ -239,6 +241,7 @@ Runtime library, lib/silcutil/
    }
 
    silc_snprintf(buf, sizeof(buf), "Client ID %@", id_renderer, client_id);
+   (***DONE)
 
  o Change silc_gettimeofday on Unix to use clock_gettime with REALTIME
    clock if it is available, otherwise use gettimeofday(). (***DONE)
@@ -377,6 +380,27 @@ SILC Accelerator Library
    public key and private key operations are executed in threads. 
    (***DONE)
 
+ o Add init options to SilcAcceleratorObject as a SilcAcceleratorOption
+   structure.  Each accelerator defines the options that they support and
+   can be retrieved from the SilcAccelerator with silc_acc_get_options.
+   The format must also be machine parseable.  The structure can be of the
+   following format:
+
+       typedef struct SilcAcceleratorOptionStruct {
+         const char *option;                   /* Option name */
+         const char *display_name;             /* Option displayable name */
+         SilcParamType type;                   /* Option data format */
+       } *SilcAcceleratorOption;
+
+   For software accelerator it could be for example:
+
+   { "min_threads", "Minimum threads", SILC_PARAM_UINT32 },
+   { "max_threads", "Maximum threads", SILC_PARAM_UINT32 },
+
+   The accelerator itself doesn't have to use the option structure to
+   parse the options if not wanted.  It is defined for the caller so
+   they can learn the supported options in a well defined way.
+
  o Diffie-Hellman acceleration
 
  (o Symmetric key cryptosystem acceleration?  They are always sycnhronouos
@@ -411,6 +435,9 @@ lib/silcmath
    any other MP function (including utility ones) that may allocate
    memory.
 
+ o Prime generation progress using callback instead of printing to 
+   stdout.
+
  o All utility functions should be made non-allocating ones.
 
 
@@ -519,7 +546,8 @@ lib/silcserver
    term UDP sessions.
 
  o The server must be able to run behind NAT device.  This means that
-   Server ID must be based on public IP instead of private IP.
+   Server ID must be based on public IP instead of private IP (See 
+   also NAT detection protocol in SILC protocol specification).
 
  o The following data must be in per-connection context: client id cache,
    server id cache, channel id cache, all statistics must be
@@ -532,7 +560,7 @@ lib/silcserver
    server-threads FSM.  Same as in client library.
 
  o Binding to other ports than 706 too.  To allow easier traversing
-   through NATs and firewalls server should bind to 80, 443 and 7706
+   through NATs and firewalls server should also bind to 80, 443 and 7706
    by default (at least try to bind).  Connections must work normally
    even if they were established to some other port other than 706.
 
@@ -540,6 +568,8 @@ lib/silcserver
    different mechanisms: UDP 706, TCP 706, TCP 80, TCP 443, UDP 7706 and
    TCP 7706.  This is the so called hole punching mechanism.
 
+ o Ability to recover from rekey errors, at least try to.
+
  o Reference count all Silc*Entry structures.
 
  Some issues that must be kept in mind from 1.0 and 1.1 silcd's: