Crypt::Twofish - Perl extension for Twofish. Twofish is a 128-bit block cipher.


  use Crypt::Twofish; 

  $ciphertext = Encipher($key,$keylength,$plaintext); 
  $decryptedtext = Decipher($key,$keylength,$ciphertext,$cipherlength);
  $lasterror = LastError();  



   This module is a perl extension for the Twofish encryption algorithm. The 
following are the four functions that this module supports:
   1. Encipher
   2. Decipher
   3. LastError
   4. CheckTwofish

Encipher takes the key, the key length and the message to be encrypted as 
parameters and returns the ciphertext. This is a variation from the actual 
Twofish algorithm which only accepts keys of length 128(16 bytes),194(24 bytes)
or 256(32 bytes). What this algorithm does is, if the key length is not equal
to 128, 194 or 256 bits, and less than 256, it appends the key to itself until
the key length becomes equal to 256(32 bytes). If the key length is more than
32 bytes then only the first 32 bytes are considered as the key. Basically, you 
can use any key you want and the module would do the rest for you.
You would typically call encipher as:

  $ciphertext = Encipher($key,$keylength,$plaintext);

Note: Remember to pass the key length parameter in bytes.

  Decipher takes the key, keylength, ciphertext and the length of ciphertext 
as parameters and returns the plain text. Even Decipher does the same kind 
of key repitition as Encipher. Here it is important to remember that
you have to use the same key with which you have encrypted, otherwise you get 
garbled output. Decipher can typically be called as:

  $decryptedtext = Decipher($key,$keylength,$ciphertext,$cipherlength);

  $cipherlength is the length of the ciphertext, which is a multiple of 16 
  (the block size). It can be useful for decrypting substrings. Once again
  pass the key length in bytes.
  LastError is a very useful function when something goes wrong with Encipher 
or decipher. It returns the last error that was encountered. It does not take 
any arguments and can be simply called as:

  $lasterror = LastError();

  CheckTwofish is  equivalent to the underlying code's sanity check. It is 
  called as:


If it returns anything but undef, something is wrong with the installation of Crypt::Twofish, $error contains what went wrong.


 The following commands can be used to install this module:

 perl Makefile.PL
 make test
 make install



 Nishant Kakani,

 I would like to thank Xenoscience Inc. and Counterpane Systems, without whose help 
I wouldn't have written this module.



 More about the Twofish algorithm can be found at the following site: