Compilation warning fixes.
[crypto.git] / TODO
diff --git a/TODO b/TODO
index 89dce499927001c17009c9853022554e73e0bf02..07b7b956455d43ce7eed64bffc4e8196a7607b43 100644 (file)
--- a/TODO
+++ b/TODO
@@ -68,6 +68,15 @@ lib/silcclient, The Client Library
    never joined the channel if this happens.  What to do if message is
    received from user that hasn't been resolved/joined?
 
+ o Add the SilcStream (socket stream) from the SilcPacketStream and
+   SilcSocket from the socket stream to SilcClientConnection for easier
+   access to them for programmers.  Currently these have to be digged up
+   from the packet stream.
+
+ o Connection option that attemps to connect to remot host with various 
+   different mechanisms: UDP 706, TCP 706, TCP 80, TCP 443, UDP 7706 and
+   TCP 7706.  This is the so called hole punching mechanism.
+
  o Message ACKing support.
 
  o in /cmode and /cumode with +r, maybe the public key and private key
@@ -94,6 +103,14 @@ Runtime library, lib/silcutil/
 
  o silc_getopt routines
 
+ o Add silc_stream_get_root and add get_root stream operation.  It 
+   returns the root of the stream or NULL if stream doesn't have root.
+
+ o Change some stream routines (like socket stream API) to accept ANY
+   stream and use silc_stream_get_root to get the socket stream from the
+   given stream.  This will make various stream APIs more easier to use
+   when user doesn't have to dig up the correct stream.
+
  o The SILC Event signals.  Asynchronous events that can be created,
    connected to and signalled.  Either own event routines or glued into
    SilcSchedule:
@@ -198,6 +215,11 @@ Runtime library, lib/silcutil/
    _ua unaligned memory allocation routines.  Remove unaligned memory
    allocation possibility. (***DONE)
 
+ o silc_stack_alloc shouldn't require multiple by 8 size argument, it 
+   should figure it out itself.
+
+ o silc_malloc et. al. to respect --with-alignment.
+
  o Add '%@' format to silc_snprintf functions.  It marks for external
    rendering function of following type:
 
@@ -218,6 +240,12 @@ Runtime library, lib/silcutil/
 
    silc_snprintf(buf, sizeof(buf), "Client ID %@", id_renderer, client_id);
 
+ o Change silc_gettimeofday on Unix to use clock_gettime with REALTIME
+   clock if it is available, otherwise use gettimeofday(). (***DONE)
+
+ (o SilcIpAddr abstraction.  Ipv4 and Ipv6 support to the abstaction.) 
+  maybe
+
  (o Generic SilcStatus or SilcResult that includes all possible status and
     error conditions, including those of SILC protocol.  Though, the SILC
     protocol related status (currently in silcstatus.h) cannot be in
@@ -318,6 +346,8 @@ Crypto Library, lib/silccrypt/
    check the alg->hash, supported hash functions.  Maybe deliver it also
    to all other functions in SilcPKCSAlgorithm to be consistent. (***DONE)
 
+ o Add DSA support to SILC public key.
+
  o Add DSS support. (***DONE)
 
  o Implement the defined SilcDH API.  The definition is in
@@ -325,10 +355,14 @@ Crypto Library, lib/silccrypt/
    be accelerated.  Also take into account that it could use elliptic
    curves.
 
- o ECDSA and ECDH
+ o Add ECDSA support.
+
+ o Add ECDH support.
+
+ o AES CBC is missing proper alignment code (see silc_1_1_branch).
 
  o All cipher, hash, hmac etc. allocation routines should take their name
-   in as const char * not const unsigned char *.
+   in as const char * not const unsigned char *. (***DONE)
 
 
 SILC Accelerator Library
@@ -416,15 +450,14 @@ lib/silcasn1
 lib/silcpgp
 ===========
 
- o OpenPGP certificate support, allowing the use of PGP public keys
-   in SILC.
+ o OpenPGP certificate support, allowing the use of PGP public keys.
 
 
 lib/silcssh
 ===========
 
- o SSH2 public key/private key support, allowing the use of SSH2 keys
-   in SILC.  RFC 4716.  (***DONE)
+ o SSH2 public key/private key support, allowing the use of SSH2 keys.
+   RFC 4716.  (***DONE)
 
 
 lib/silcpkix
@@ -498,10 +531,24 @@ lib/silcserver
  o Do inccoming packet processing in an own FSM thread in the
    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
+   by default (at least try to bind).  Connections must work normally
+   even if they were established to some other port other than 706.
+
+   Connection option that attemps to connect to remot server with various 
+   different mechanisms: UDP 706, TCP 706, TCP 80, TCP 443, UDP 7706 and
+   TCP 7706.  This is the so called hole punching mechanism.
+
  o Reference count all Silc*Entry structures.
 
  Some issues that must be kept in mind from 1.0 and 1.1 silcd's:
 
+ o The server and router software MUST work out of the box.  After 
+   installation the server must not require any configuration to run the
+   most basic working configuration.  No defining IP addresses, etc.
+   The server must work just by running it.
+
  o The SERVER_SIGNOFF notify handing is not optimal, because it'll
    cause sending of multiple SIGNOFF notify's instead of the one
    SERVER_SIGNOFF notify that the server received.  This should be