From: Gerhard Wesp (gwesp_at_[hidden])
Date: 2001-04-28 07:58:35


Good afternoon,

I have an implementation of Rijndael, the new AES
(http://csrc.nist.gov/encryption/aes/) and would gladly contribute it to
boost if there is interest (and the necessary changes aren't too much
work :-).

Currently, the interface basically looks like:

 
struct rijndael {

  // 8 bit and 32 bit unsigned types; modify the definition if
  // necessary!

  typedef unsigned char byte ;
  typedef unsigned int word ;

  // block_length is in bits and must be 128, 192, or 256
  //
  // key.size() must be 16, 24, or 32, corresponding to 128, 192, or 256
  // key bits. The number of key bits is independent of the block
  // length!
  //
  // Note that in the AES draft standard as of March 2001, only 128 bit
  // data blocks are allowed.

  rijndael( unsigned block_length , std::vector< byte > const& key ) ;

  // the destructor clears sensitive data before releasing the memory

  ~rijndael() ;

  // encryption and decryption works with in-place buffers

  void encrypt( std::vector< byte >& buffer ) const ;
  void decrypt( std::vector< byte >& buffer ) const ;

  // ...

} ;

The implementation can be downloaded from my homepage,

  http://www.cosy.sbg.ac.at/~gwesp/

I'm looking forward to your comments!

best regards,
-g

-- 
Afgrnd der Ensparngsmassnhmen bei den Onlne-Kostn ist ab sfort in jedm Wrt
von mhr als dri Buchstabn mindestns ein Vkal wegzlassn.