$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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