Rijndael(3) User Contributed Perl Documentation Rijndael(3)NAMECrypt::Rijndael - Crypt::CBC compliant Rijndael encryption module
SYNOPSIS
use Crypt::Rijndael;
# keysize() is 32, but 24 and 16 are also possible
# blocksize() is 16
$cipher = Crypt::Rijndael->new( "a" x 32, Crypt::Rijndael::MODE_CBC );
$cipher->set_iv($iv);
$crypted = $cipher->encrypt($plaintext);
# - OR -
$plaintext = $cipher->decrypt($crypted);
DESCRIPTION
This module implements the Rijndael cipher, which has just been
selected as the Advanced Encryption Standard.
keysize
Returns the keysize, which is 32 (bytes). The Rijndael cipher actu-
ally supports keylengths of 16, 24 or 32 bytes, but there is no way
to communicate this to "Crypt::CBC".
blocksize
The blocksize for Rijndael is 16 bytes (128 bits), although the
algorithm actually supports any blocksize that is any multiple of
our bytes. 128 bits, is however, the AES-specified block size, so
this is all we support.
$cipher = new $key [, $mode]
Create a new "Crypt::Rijndael" cipher object with the given key
(which must be 128, 192 or 256 bits long). The additional $mode
argument is the encryption mode, either "MODE_ECB" (electronic
codebook mode, the default), "MODE_CBC" (cipher block chaining, the
same that "Crypt::CBC" does), "MODE_CFB" (128-bit cipher feedback),
"MODE_OFB" (128-bit output feedback), or "MODE_CTR" (counter mode).
ECB mode is very insecure (read a book on cryptography if you dont
know why!), so you should probably use CBC mode.
$cipher->set_iv($iv)
This allows you to change the initial value vector used by the
chaining modes. It is not relevant for ECB mode.
$cipher->encrypt($data)
Encrypt data. The size of $data must be a multiple of "blocksize"
(16 bytes), otherwise this function will croak. Apart from that, it
can be of (almost) any length.
$cipher->decrypt($data)
Decrypts $data.
Encryption modes
Use these constants to select the cipher type:
MODE_CBC - Cipher Block Chaining
MODE_CFB - Cipher feedback
MODE_CTR - Counter mode
MODE_ECB - Electronic cookbook mode
MODE_OFB - Output feedback
SEE ALSO
Crypt::CBC, http://www.csrc.nist.gov/encryption/aes/
BUGS
Should EXPORT or EXPORT_OK the MODE constants.
AUTHOR
Currently maintained by brian d foy, "<bdfoy@cpan.org>".
Original code by Rafael R. Sevilla.
The Rijndael Algorithm was developed by Vincent Rijmen and Joan Daemen,
and has been selected as the US Government's Advanced Encryption Stan-
dard.
LICENSE
This software is licensed under the GNU Public License. See the
included COPYING file for details.
perl v5.8.8 2007-02-23 Rijndael(3)