|
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