X-Git-Url: http://git.silcnet.org/gitweb/?p=crypto.git;a=blobdiff_plain;f=TODO;h=07b7b956455d43ce7eed64bffc4e8196a7607b43;hp=be1abf80d26edeaaadcbebc82a952e0306e188bf;hb=28af33fffb344c93dc9b2bd4c4d0ab30855f7c23;hpb=cc696d0d065cbe8f397fec1f479973b855ddb4bf diff --git a/TODO b/TODO index be1abf80..07b7b956 100644 --- 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,9 @@ 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 @@ -223,6 +243,9 @@ Runtime library, lib/silcutil/ 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 @@ -336,6 +359,8 @@ Crypto Library, lib/silccrypt/ 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 *. (***DONE) @@ -506,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