Ported SILC Net API (TCP & UDP), SILC Socket Stream API,
[silc.git] / TODO
diff --git a/TODO b/TODO
index 6a1de9c161ffc0f1bc158292a760377fd2fbc57b..afad8364fdb11df10409016363d66d520b5f2320 100644 (file)
--- a/TODO
+++ b/TODO
@@ -6,6 +6,35 @@ 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 Fix/test GETKEY.
+
+ o Fix/test MOTD.
+
+ o Remove protocol.[ch].  ***DONE
+
+ o Rewrite connecting accepting. (***TESTING NEEDED)
+
+ o Rewrite async connecting. (***TESTING NEEDED)
+
+ o Connecting from SILC router to SILC server.
+
+ o Rewrite rehash, HUP.
+
+ o Heartbeat-keepalive.
+
+ 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****
 ===========
 
@@ -17,6 +46,11 @@ 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.
@@ -94,21 +128,15 @@ lib/silcsftp                       ****DONE****
 lib/silccore/silcpacket.[ch]   ****PARTLY DONE****
 ============================
 
- o Implement silc_packet_engine_stop and silc_packet_stream_destroy.
-
- o Implement ACK packet and packet payload.
-
  o SilcPacketEngine. (***DONE)
 
  o New SILC Packet API. (***DONE)
 
-
-lib/silccore/silcpacket.[ch]   ****PARTLY DONE****
-============================
+ o Implement silc_packet_engine_stop and silc_packet_stream_destroy. (***DONE)
 
  o IV Included flag support, UDP transport support (***TESTING NEEDED)
 
- o SILC_PACKET_FLAG_ACK support.
+ o SILC_PACKET_FLAG_ACK support.  Implement ACK packet and packet payload.
 
 
 lib/silccore/silcid.[ch]       ****DONE****
@@ -121,26 +149,20 @@ 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
+lib/silcskr    ****PARTLY DONE****
 ===========
 
  o Removing key from the repository is not possible currently.  It should
-   be.
+   be. (***DONE)
 
- o Add fingerprint as search constraint.
+ o Add fingerprint as search constraint. (1.2)
 
 
-lib/silcske/silcske.[ch]       ****DONE****
+lib/silcske/silcske.[ch]       ***PARTLY DONE****
 ========================
 
+ o Responder rekey (***TESTING NEEDED)
+
  o IV Included flag support in SKE (***DONE)
 
  o UDP transport changes; retransmission support by using exponential
@@ -148,26 +170,19 @@ lib/silcske/silcske.[ch]  ****DONE****
 
  o SilcConnAuth header file documentation. (***DONE)
 
+ o Ratelimit to UDP/IP transport for incoming packets. (1.2)
+
 
 lib/silccrypt                  ****PARTLY DONE****
 =============
 
+ o Implement PKCS #1 sign/verify with hash OID. (***TESTING NEEDED)
+
  o Implement SILC Public Key Version 2 handling in sign/verify.  Implement
    Version (V) identifier (***DONE)
 
  o Add fingerprint to SilcSILCPublicKey and retrieval to silcpk.h.
 
- 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 OpenPGP certificate support, allowing the use of PGP public keys
-   in SILC.
-
  o SILC PKCS (silcpkcs.h) reorganizing when other PK supports added.
    Move the SILC Public Key routines away from the crypto library into
    the core library (silccore).  silc_pkcs_public/private_key_* routines
@@ -177,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****
@@ -189,23 +210,22 @@ lib/silcutil                      ****PARTLY DONE****
 
  o The regex code from lib/contrib might compile fine on all platforms.
    No need to make it silcutil/unix/ specific.  Add them to generic
-   silcutil.c.
-
- o Fix universal time decoding (doesn't accept all forms) in silctime.c.
+   silcutil.c. (***TESTNG NEEDED)
 
  o silc_stringprep to non-allocating version.
 
- o Compression routines are missing.  The protocol supports packet
-   compression thus it must be implemented.  SILC Zip API must be
-   defined.
+ 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.
+   in separately. (1.2)
 
- o bool -> SilcBool (***DONE)
+ o Compression routines are missing.  The protocol supports packet
+   compression thus it must be implemented.  SILC Zip API must be
+   defined. (1.2)
 
- o Silc FD Stream to WIN32 (lib/silcutil/silcfdstream.h)
 
 lib/silcutil/silcbuffer.h      ****DONE****
 =========================
@@ -248,9 +268,7 @@ lib/silcutil/silcsocketstream.[ch]  ****PARTY DONE****
 
  o Add SilcSocketStream (***DONE)
 
- o Add SilcSocketStream for WIN32
-
- o Handle EOS sending to upper layer properly
+ o Add SilcSocketStream for WIN32 (***TESTING NEEDED)
 
  o Test QoS after the changes made to socket stream
 
@@ -283,7 +301,7 @@ lib/silcutil/silcschedule*.[ch]             ****PARTLY DONE****
  o Change SILC_TASK_CALLBACK to non-static, and remove the macro
    SILC_TASK_CALLBACK_GLOBAL. (***DONE)
 
- o SILC Schedule API changes to WIN32.
+ o SILC Schedule API changes to WIN32. (***TESTING NEEDED)
 
 
 lib/silcutil/silcasync.[ch]    ****DONE****
@@ -294,13 +312,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****
 =========================
@@ -313,7 +333,7 @@ lib/silcutil/silcnet*, lib/silcutil/*/silc*net*             ****PARTLY DONE****
 
  o Add UDP interface (***DONE)
 
- o Add UDP interface for WIN32
+ o Add UDP interface for WIN32 (***TESTING NEEDED)
 
  o New network interfaces (***DONE)
 
@@ -365,13 +385,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.