|
|
Crypt::Blowfish_PP - Blowfish encryption algorithm implemented purely in Perl
use Crypt::Blowfish_PP
;
$blowfish=new Crypt::Blowfish_PP($key);
$ciphertextBlock=$blowfish->encrypt($plaintextBlock);
$plaintextBlock=$blowfish->decrypt($ciphertextBlock);
The Crypt::Blowfish_PP module provides for users to use the Blowfish encryption algorithm in perl. The implementation is entirely Object Oriented, as there is quite a lot of context inherent in making blowfish as fast as it is. The key is anywhere between 64 and 448 bits (8 and 56 bytes), and should be passed as a packed string. The transformation itself is a 16-round Feistel Network, and operates on a 64 bit block.
Object methods for the Crypt::Blowfish_PP module:
The new() method initialises a blowfish object with the key that is passed. This is the slow part of doing a blowfish encryption or decryption, as it initialises the 18 p-boxes and the 1024 s-boxes that are used for the algorithm. It will return undef if the key is not of a valid length.
The encrypt() method uses the initialised blowfish object to encrypt 8 bytes of data of the string passed to it. It returns the encrypted block.
The decrypt() method uses the initialised blowfish object to decrypt 8 bytes of data of the string passed to it. It returns the decrypted block.
This is probably crap software, but hey, its for general use. I'm happy to patch it with other people's code... :)
If you want speed, then see the Crypt::Blowfish module.
Matthew Byng-Maddick <mbm@colondot.net
>