Crypt::Rijndael3pm
Crypt::cbc compliant rijndael encryption module
Usage
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);
Version
Version 1.16
Overview
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 actually 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 = Crypt::Rijndael->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$modeargument 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 don't 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
$datamust 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
- MODE_PCBC - ignore this one for now :)
Source
This code is in Github:
git://github.com/leont/crypt-rijndael.git
Releases
11 releases since Debian 3.1 (Sarge); the text changed 10 times.