X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=TODO;h=0132fb66835dddea66c67b58b17aa30bdcb77f84;hb=be52e8850f90e718c6df066c588af839cc287ef5;hp=15ddae4f963ce24ac419180a0420db6d277a47a3;hpb=89c9e521baa2c03c1a354dacc01eaa2bf0aa40e0;p=silc.git diff --git a/TODO b/TODO index 15ddae4f..0132fb66 100644 --- a/TODO +++ b/TODO @@ -54,6 +54,8 @@ lib/silccore lib/silcclient, The Client Library ================================== + o UDP SILC connection support to SILC server + o Giving WHOIS for nick that doesn't exist should remove any same named entries from the client cache. @@ -161,9 +163,9 @@ Runtime library, lib/silcutil/ o Structured log messages to Log API. Allows machine readable log messages. Would allow sending of any kind of data in a log message. - o Base64 to an own API + o Base64 to an own API (***DONE) - o Timer API + o Timer API (***DONE) 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 @@ -216,6 +218,9 @@ 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(). + (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 @@ -316,17 +321,21 @@ 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 DSS support. Take implementation from Tom or make it yourself. + o Add DSA support to SILC public key. + + o Add DSS support. (***DONE) o Implement the defined SilcDH API. The definition is in lib/silccrypt/silcdh.h. Make sure it is asynchronous so that it can 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 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 @@ -337,8 +346,6 @@ SILC Accelerator Library and SilcPrivateKey can be used but they call the accelerators. (***DONE) - o Add complete wrapper for PKCS API in silcacc_pkcs.c. - o Implement software accelerator. It is a thread pool system where the public key and private key operations are executed in threads. (***DONE) @@ -353,13 +360,22 @@ SILC Accelerator Library lib/silcmath ============ - o Import TFM. Talk to Tom to add the missing functions. Use TFM in - client and client library, but TMA in server, due to the significantly - increased memory consumption with TFM, and the rare need for public - key operations in server. + o Import TFM. We want TFM's speed but its memory requirements are + just too much. By default it uses large pre-allocated tables which + will eat memory when there are thousands of public keys in system. + We probably want to change TFM's fp_int dynamic so that a specific + size can be allocated for the int. We could have two new functions: + + SilcBool silc_mp_init_size(SilcMPInt *mp, SilcUInt32 bit_size); + SilcBool silc_mp_sinit_size(SilcStack stack, SilcMPInt *mp, + SilcUInt32 bit_size); - We want TFM's speed but not TFM's memory requirements. Talk to Tom - about making the TFM mp dynamic just as it is in LTM. + Which by default allocates `bit_size' bits instead of some default + value. silc_mp_init would allocate the default FP_SIZE with TFM + and do normal init with TMA and GMP. _init_size with TMA and GMP + would be same as _init. + + o Add AND, OR and XOR support to TFM or ask Tom to do it. o The SILC MP API function must start returning indication of success and failure of the operation. @@ -407,15 +423,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. + o SSH2 public key/private key support, allowing the use of SSH2 keys. + RFC 4716. (***DONE) lib/silcpkix @@ -473,6 +488,9 @@ lib/silcserver o Library must have support for SERVICE command. + o Both UDP and TCP support for incoming connecetions. Maintaining long + term UDP sessions. + o The server must be able to run behind NAT device. This means that Server ID must be based on public IP instead of private IP.