TODO for 1.1 And Beyond
=======================
-NOTE: Any item that doesn't have (***DONE) in it, isn't done yet.
+NOTE: Any item that doesn't have (***DONE) in it, isn't done yet. The
+(***TESTING NEEDED) means that the item has been done but not yet properly
+tested.
-lib/silccore/silcpacket.[ch] ****DONE****
+SILC Client ****PARTLY DONE****
+===========
+
+ o Porting to new Toolkit API and new Client Library API (***TESTING NEEDED)
+
+ o Improve help files, especially /cmode, /cumode and /key.
+
+
+lib/silcclient, The Client Library ***PARTLY DONE****
+==================================
+
+ 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
+ multi threads use. (***DONE)
+
+ o Rewrite silc_client_get_clients_by_channel.
+
+ o Rewrite client side WHOIS command (for whois -details).
+
+ o Finish all the missing SILC packet processings, rewrites. (***DONE)
+
+ o The client_notify.c rewrite. (***TESTING NEEDED)
+
+ o Resuming to client_register.c (remove client_resume.c)
+ (***TESTING NEEDED)
+
+ o Rekey rewrite. (***DONE)
+
+ o Remove protocol.[ch]. (***DONE)
+
+ o File transfer rewrite. (***DONE)
+
+ o File transfer API documentation.
+
+ o Connection auth request. (***DONE)
+
+ o Password auth test, public key auth test.
+
+ o Starting key exchange directly, rewrite. (***DONE)
+
+ 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.
+
+ o Key agreement rewrite. (***TESTING NEEDED)
+
+ o Connecting to remote client (***DONE)
+
+ o peer-to-peer private messages
+
+ o Private message waiting API (in threads)
+
+ o client_attrs.c, attributes rewrite. (***TESTING NEEDED)
+
+ o No SilcBuffer lists back to application in command_reply operations.
+ Convert them all to real lists and/or structures for easier use.
+ (***DONE)
+
+ o Nickname formatting rewrite. (***TESTING NEEDED)
+
+ 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".
+
+ o All packet waiting timeout tests and error condition tests.
+
+
+lib/silcsftp ****DONE****
+============
+
+ o Porting to use the new util library. (***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)
o IV Included flag support, UDP transport support (***TESTING NEEDED)
+ o SILC_PACKET_FLAG_ACK support.
+
lib/silccore/silcid.[ch] ****DONE****
========================
o All payload encoding routines should take SilcStack as argument.
+ o All payload test routines into lib/silccore/tests/.
+
lib/silcskr
===========
be.
-lib/silcske/silcske.[ch]
+lib/silcske/silcske.[ch] ****DONE****
========================
- o IV Included flag support in SKE (it currently doesn't accept it)
+ o IV Included flag support in SKE (***DONE)
- o assemble_security_properties to take cipher, hash, hmac, etc. as
- argument.
+ o UDP transport changes; retransmission support by using exponential
+ backoff algorithm. (***DONE)
- o SilcConnAuth header file documentation.
+ o SilcConnAuth header file documentation. (***DONE)
lib/silccrypt ****PARTLY DONE****
=============
+ 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 Add DSS support.
- o Cipher optimizations (asm, that this) at least for i386 would be nice.
+ o Assembler AES (***DONE)
o ECDSA and ECDH.
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.
+
o silc_stringprep to non-allocating version.
o Compression routines are missing. The protocol supports packet
o Silc FD Stream to WIN32 (lib/silcutil/silcfdstream.h)
-
lib/silcutil/silcbuffer.h ****DONE****
=========================
totally 8 bytes of memory per buffer. (***DONE)
-lib/silcutil/silcbuffmt.[ch] ****PARTLY DONE****
+lib/silcutil/silcbuffmt.[ch] ****DONE****
============================
o SilcStack aware silc_buffer_unformat (***DONE)
o Test QoS after the changes made to socket stream
-lib/silcutil/silcschedule*.[ch] ****DONE****
+lib/silcutil/silcschedule*.[ch] ****PARTLY DONE****
===============================
o Scheduler can be optimized for FD tasks by changing the fd_queue
o New network interfaces (***DONE)
-lib/silcsftp
-============
-
- o Porting to use the new util library.
-
-
-lib/silcutil/epoc/*
-===================
-
- o lib/silcutil/epoc routines missing or not completed.
-
- o The PKCS#1 also calls global RNG (even though it is not used
- currently in SILC, the interface allows its use).
-
- o Something needs to be thought to the logging globals as well,
- like silc_debug etc. They won't work on EPOC. Perhaps logging
- and debugging is to be disabled on EPOC.
-
-
lib/silcmath
============
o All utility functions should be made non-allocating ones.
+lib/silcutil/symbian/ ****PARTLY DONE****
+=====================
+
+ o lib/silcutil/symbian routines missing or not completed.
+ (****TESTING NEEDED)
+
+ o Something needs to be thought to the logging globals as well,
+ like silc_debug etc. They won't work on EPOC. Perhaps logging
+ and debugging is to be disabled on EPOC.
+
+
lib/silcasn1 ****PARTLY DONE****
============
key ends up being used.
o The CMODE cipher & hmac change problem (#101).
-
-
-lib/silcclient
-==============
-
- o Some form of rewrite to make it more efficient.
-
- o Clear up interfaces.
-
- o Remove silc_client_run and silc_client_run_one from calling SilcSchedule.
- Leave the scheduling entirely to application.