Boost logo

Boost :

Subject: Re: [boost] [crypto] Finalisation
From: Kasra (kasra_n500_at_[hidden])
Date: 2009-01-05 11:24:58


Dear Kevin,

I didn't know you were working on your library I thought you have coded one and decided it was enough for your needs and had stopped developing.

So if we are both developing I personally think it is more than silly to code two separate libraries instead of focusing on one. If you are interested we could merge the current progress into 1 library.

In regards to your comment about the amount of code, I have the following algorithms fully functioning (some need little attention):

BlockCiphers: Blowfish, Cast-256, Khazad, Mars, Rijndael, RC2, RC5, RC6, Serpent, Twofish

All of the above implementations are generic, for example rc6 is defined as follows:
template
<
size_t R, // # of rounds
typename W // word size {uint8_t,uint16_t,uint32_t,uint64_t}
> class rc6_cipher;

// the recommended rc6, although completely generic
// but the following typedef could gain performance of
// 26 Clocks Per Byte (CPB) which is _almost_ as fast as it gets
typedef rc6_cipher<20,32> rc6;

StreamCiphers: RC4, HC-128/256, Rabbit, Salsa, Sosemanuk

Hash Functions: MD4, MD5, SHA-1, SHA-244, SHA-256, SHA-384, SHA-512, Whirlpool, (ifdef BOOST_CRYPTO_EXPERIMENTAL) { MD6, Sekin }

Padding: One-zero, ISO-10126, PKCS-7.

Mode Of operation: ECB, CBC, OFB, CFB, CTR-E, CTR-D, LRW, XTS

mode of operations is something like:
template
<
BlockCipher BlockCipherT,
PaddingAlgorithm PaddingAlgorithmT
>
class XTS;

Also endian class which is designed to read/write correct endian values from/to memory.

I haven't implemented Public key cryptography because of not having a clear answer to what library to use for large number operations, or for example implement internal library for it.

With Best Regards

Kasra

      


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk