NAME

Crypt::Blowfish::Mod - Another Blowfish Algorithm

VERSION

version 0.01

SYNOPSIS

use Crypt::Blowfish::Mod;

my $cipher = new Crypt::Blowfish::Mod $key; 
my $ciphertext = $cipher->encrypt($plaintext);
$plaintext = $cipher->decrypt($ciphertext);

DESCRIPTION

Crypt::Blowfish::Mod implements the Blowfish algorithm using functions adapted from examples from Bruce Schneier and other authors.

Crypt::Blowfish::Mod has an interface similar to Crypt::Blowfish, but produces different results. Also, this module accepts variable length keys upt to 256 bytes.

METHODS

new

Usage:

## the key should be base64
my $b = Crypt::Blowfish::Mod->new('YaKjsKjY0./');

## or use a raw key:
my $b = Crypt::Blowfish::Mod->new( key_raw=>'this_is_a_raw_key9kdjf29389238928938' );

my $enc = $b->encrypt( 'secret text' ); 
my $dec = $b->decrypt( $enc );

Or just call it raw:

my $enc = Crypt::Blowfish::Mod::b_encrypt( $key, $str );
my $dec = Crypt::Blowfish::Mod::b_decrypt( $key, $enc );

encrypt

Returns a base64 encrypted string.

decrypt

Decodes a base64 encoded blowfish encrypted string.

b_encrypt

Raw C decrypt function.

b_decrypt

Raw C decrypt function.

NOTES

The Blowfish algorithm is highly dependent on the endianness of your architecture. This module attempts to detect the correct endianness for your architecture, otherwise it will most likely default to little-endian.

You may override this behavior by setting the endianness on instantiation:

	# force little-endian
    my $b = Crypt::Blowfish::Mod->new( key=>'YaKjsKjY0./', endianness=>'little' );

Intel-based architectures are typically Little-Endian.

SEE ALSO

Crypt::Blowfish

This algorithm has been implemented in other languages:

http://www.schneier.com/blowfish-download.html

AUTHOR

Rodrigo de Oliveira, <rodrigo@cpan.org>