updates.
[silc.git] / TODO
diff --git a/TODO b/TODO
index 1d77eafbfbfee7028905701b1eeed73c7ab74b2a..627b4b0d7fd46a09261c8d91bca621d09ba5ab0b 100644 (file)
--- a/TODO
+++ b/TODO
@@ -6,10 +6,33 @@ NOTE: Any item that doesn't have (***DONE) in it, isn't done yet.  The
 tested.
 
 
+apps/silcd, The SILC Server    ****PARTLY DONE****
+===========================
+
+ o Port all code to use SILC Toolkit 1.1 APIs.
+
+ o Remove protocol.[ch].  ***DONE
+
+ o Rewrite connecting accepting.
+
+ o Rewrite async connecting.
+
+ o Connecting from SILC router to SILC server.
+
+ o Rewrite rehash, HUP.
+
+ o Test backup router resuming protocol.
+
+ o Check all packet receive routines that they call silc_packet_free.
+
+ o Add Web statistics module using lib/silchttp.  Give out server
+   statistics.
+
+
 SILC Client    ****PARTLY DONE****
 ===========
 
- o Porting to new Toolkit API and new Client Library API
+ o Porting to new Toolkit API and new Client Library API (***TESTING NEEDED)
 
  o Improve help files, especially /cmode, /cumode and /key.
 
@@ -17,26 +40,36 @@ SILC Client ****PARTLY DONE****
 lib/silcclient, The Client Library     ***PARTLY DONE****
 ==================================
 
+ o in JOIN notify handle resolving that timedout.  Currently the user is
+   never joined the channel if this happens.  What to do if message is
+   received from user that hasn't been resolved/joined?  (maybe 1.1, latest
+   1.2)
+
  o silcclient.h clean up and API rewrites.
 
  o silcclient_entry.h finishing, all entry relates APIs to this header.
 
- o SilcChannelEntry, SilcServerEntry, SilcChannelUser, allocating, 
-   freeing, finding, etc. rewrite.  Also making them reference counted for 
+ o SilcChannelEntry, SilcServerEntry, SilcChannelUser, allocating,
+   freeing, finding, etc. rewrite.  Also making them reference counted for
    multi threads use. (***DONE)
 
- o Finish all the missing SILC packet processings, rewrites.
+ o Rewrite silc_client_get_clients_by_channel.
+
+ o Rewrite client side WHOIS command (for whois -details). (***DONE)
 
- o The client_notify.c rewrite. (***TESTING NEEDED)
+ o Finish all the missing SILC packet processings, rewrites. (***DONE)
 
- o Resuming to client_register.c (remove client_resume.c)
-   (***TESTING NEEDED)
+ o The client_notify.c rewrite. (***DONE)
+
+ o Resuming to client_register.c (remove client_resume.c) (***DONE)
 
  o Rekey rewrite. (***DONE)
 
  o Remove protocol.[ch]. (***DONE)
 
- o File transfer rewrite.
+ o File transfer rewrite. (***DONE)
+
+ o File transfer API documentation.
 
  o Connection auth request. (***DONE)
 
@@ -44,12 +77,12 @@ lib/silcclient, The Client Library  ***PARTLY DONE****
 
  o Starting key exchange directly, rewrite. (***DONE)
 
- o Channel messages, channel private keys, channel entires, channel 
-   search, etc. rewrite.
+ o Channel messages, channel private keys, channel entires, channel
+   search, etc. rewrite. (***TESTING NEEDED)
 
  o For many APIs leave the hash context allocations to the caller instead
    of using client->sha1hash and client->md5hash, or some kind of thread
-   safe (no locking) concept.
+   safe (no locking) concept. (***DONE)
 
  o Key agreement rewrite. (***TESTING NEEDED)
 
@@ -57,7 +90,7 @@ lib/silcclient, The Client Library    ***PARTLY DONE****
 
  o peer-to-peer private messages
 
- o Private message waiting API (in threads)
+ o Private message waiting API (in threads) (***TESING NEEDED)
 
  o client_attrs.c, attributes rewrite. (***TESTING NEEDED)
 
@@ -69,6 +102,8 @@ lib/silcclient, The Client Library   ***PARTLY DONE****
 
  o UDP connections. (***TESTING NEEDED)
 
+ o Message ACKing.
+
  o in /cmode and /cumode with +r, maybe the public key and private key
    could be just some "string", which would then match to "string.pub" and
    "string.prv".
@@ -81,6 +116,8 @@ lib/silcsftp                 ****DONE****
 
  o Porting to use the new util library. (***DONE)
 
+ o Read-ahead (1.2)
+
 
 lib/silccore/silcpacket.[ch]   ****PARTLY DONE****
 ============================
@@ -99,6 +136,8 @@ lib/silccore/silcpacket.[ch] ****PARTLY DONE****
 
  o IV Included flag support, UDP transport support (***TESTING NEEDED)
 
+ o SILC_PACKET_FLAG_ACK support.
+
 
 lib/silccore/silcid.[ch]       ****DONE****
 ========================
@@ -110,24 +149,22 @@ lib/silccore/silcid.[ch]  ****DONE****
  o silc_id_str2id, silc_id2str to non-allocating routines. (***DONE)
 
 
-lib/silccore
-============
-
- o All payload encoding routines should take SilcStack as argument.
-
- o All payload test routines into lib/silccore/tests/.
-
-
 lib/silcskr
 ===========
 
  o Removing key from the repository is not possible currently.  It should
    be.
 
+ o Add fingerprint as search constraint.
 
-lib/silcske/silcske.[ch]       ****DONE****
+
+lib/silcske/silcske.[ch]       ***PARTLY DONE****
 ========================
 
+ o Responder rekey
+
+ o Ratelimit to UDP/IP transport for incoming packets.
+
  o IV Included flag support in SKE (***DONE)
 
  o UDP transport changes; retransmission support by using exponential
@@ -142,16 +179,9 @@ lib/silccrypt                      ****PARTLY DONE****
  o Implement SILC Public Key Version 2 handling in sign/verify.  Implement
    Version (V) identifier (***DONE)
 
- o Implement PKCS #1 sign/verify with hash OID. (***TESTING NEEDED)
-
- o Implement the defined SilcDH API.  The definition is in
-   lib/silccrypt/silcdh.h.
-
- o SSH2 public keys support, allowing the use of SSH2 public keys in
-   SILC.
+ o Add fingerprint to SilcSILCPublicKey and retrieval to silcpk.h.
 
- o OpenPGP certificate support, allowing the use of PGP public keys
-   in SILC.
+ o Implement PKCS #1 sign/verify with hash OID. (***TESTING NEEDED)
 
  o SILC PKCS (silcpkcs.h) reorganizing when other PK supports added.
    Move the SILC Public Key routines away from the crypto library into
@@ -162,11 +192,17 @@ lib/silccrypt                     ****PARTLY DONE****
    also include the Public Key Payload encoding and decoding routines.
    (***DONE)
 
- o Add DSS support.
-
  o Assembler AES (***DONE)
 
- o ECDSA and ECDH.
+ o Implement the defined SilcDH API.  The definition is in
+   lib/silccrypt/silcdh.h. (1.2)
+
+ o SSH2 public keys support, allowing the use of SSH2 public keys in
+   SILC. (1.2)
+
+ o Add DSS support (1.2)
+
+ o ECDSA and ECDH (1.2)
 
 
 lib/silcutil                   ****PARTLY DONE****
@@ -182,14 +218,15 @@ lib/silcutil                      ****PARTLY DONE****
    compression thus it must be implemented.  SILC Zip API must be
    defined.
 
- o Add builtin SOCKS and HTTP Proxy support, well the SOCKS at least.
-   SILC currently supports SOCKS4 and SOCKS5 but it needs to be compiled
-   in separately.
-
  o bool -> SilcBool (***DONE)
 
  o Silc FD Stream to WIN32 (lib/silcutil/silcfdstream.h)
 
+ o Add builtin SOCKS and HTTP Proxy support, well the SOCKS at least.
+   SILC currently supports SOCKS4 and SOCKS5 but it needs to be compiled
+   in separately. (1.2)
+
+
 lib/silcutil/silcbuffer.h      ****DONE****
 =========================
 
@@ -277,13 +314,15 @@ lib/silcutil/silcasync.[ch]       ****DONE****
    (***DONE)
 
 
-lib/silcutil/silctime.[ch]     ****DONE****
+lib/silcutil/silctime.[ch]     ****PARTLY DONE****
 ===========================
 
  o SilcTime. (***DONE)
 
  o system time, universal, generalized. (***DONE)
 
+ o Fix universal time decoding (doesn't accept all forms) in silctime.c.
+
 
 lib/silcutil/silcfsm.[ch]      ****DONE****
 =========================
@@ -348,13 +387,28 @@ lib/silcasn1                      ****PARTLY DONE****
  o Negative integer encoding
 
 
-lib/silcpkix
+lib/silccore
+============
+
+ o All payload encoding routines should take SilcStack as argument. (1.2)
+
+ o All payload test routines into lib/silccore/tests/.
+
+
+lib/silcpkix (1.2)
 ============
 
  o PKIX implementation
 
 
-lib/silcserver
+lib/silcpgp (1.2)
+===========
+
+ o OpenPGP certificate support, allowing the use of PGP public keys
+   in SILC.
+
+
+lib/silcserver (1.2)
 ==============
 
  o (Re)write commands/command replys.