SILC Accelerator Library
========================
- o Add SilcCipher support to SilcAccelerator and software accelerator.
- Accelerate at least ciphers using CTR mode which can be done in
- parallel. Do it in producer/consumer fashion where threads generate
- key stream and other thread(s) encrypt using the key stream.
-
- o Add init options to SilcAcceleratorObject as a SilcAcceleratorOption
- structure. Each accelerator defines the options that they support and
- can be retrieved from the SilcAccelerator with silc_acc_get_options.
- The format must also be machine parseable. The structure can be of the
- following format:
-
- typedef struct SilcAcceleratorOptionStruct {
- const char *option; /* Option name */
- const char *display_name; /* Option displayable name */
- SilcParamType type; /* Option data format */
- void *default_value; /* Option's default value */
- SilcUInt32 default_value_len; /* Default value length */
- } *SilcAcceleratorOption;
-
- For software accelerator it could be for example:
-
- { "min_threads", "Minimum threads", SILC_PARAM_UINT32, (void *)2, 4 },
- { "max_threads", "Maximum threads", SILC_PARAM_UINT32, (void *)4, 4 },
-
o Diffie-Hellman acceleration
o SILC Accelerator API. Provides generic way to use different kind of
public key and private key operations are executed in threads.
(***DONE)
+ o Add SilcCipher support to SilcAccelerator and software accelerator.
+ Accelerate at least ciphers using CTR mode which can be done in
+ parallel. Do it in producer/consumer fashion where threads generate
+ key stream and other thread(s) encrypt using the key stream. (***DONE)
+
lib/silcmath
============
+ o Prime generation progress using callback instead of printing to
+ stdout.
+
+ o All utility functions should be made non-allocating ones.
+
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 probably want to change TFM. (***DONE)
- 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 Add AND, OR and XOR support to TFM. (***DONE)
o The SILC MP API function must start returning indication of success
- and failure of the operation.
+ and failure of the operation. (***DONE)
o Do SilcStack support for silc_mp_init, silc_mp_init_size and other
any other MP function (including utility ones) that may allocate
- memory.
-
- o Prime generation progress using callback instead of printing to
- stdout.
-
- o All utility functions should be made non-allocating ones.
+ memory. (***DONE)
lib/silcasn1