GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Mcrypt(3) User Contributed Perl Documentation Mcrypt(3)

Mcrypt - Perl extension for the Mcrypt cryptography library

  use Mcrypt;

  # Procedural routines

  $td = Mcrypt::mcrypt_load($algorithm, $algorithm_dir,
                            $mode, $mode_dir);

  Mcrypt::mcrypt_get_key_size($td);   # in bytes
  Mcrypt::mcrypt_get_iv_size($td);    # in bytes
  Mcrypt::mcrypt_get_block_size($td); # in bytes

  Mcrypt::mcrypt_init($td, $key, $iv);

  $encryptedstr = Mcrypt::mcrypt_encrypt($td, $decryptedstr);
  $decryptedstr = Mcrypt::mcrypt_decrypt($td, $encryptedstr);

  Mcrypt::mcrypt_end($td);

  # Object-oriented methods

  $td = Mcrypt->new( algorithm => $algorithm,
                     mode => $mode );

  $keysize = $td->{KEY_SIZE};
  $ivsize  = $td->{IV_SIZE};
  $blksize = $td->{BLOCK_SIZE};

  $td->init($key, $iv);

  $encryptedstr = $td->encrypt($decryptedstr);
  $decryptedstr = $td->decrypt($encryptedstr);

  # If the $td goes out of context,
  # the destructor will do this for you
  $td->end();

This module wraps the libmcrypt encryption library for easy and convenient use from within perl. Encryption and decryption using a variety of algorithms is as easy as a few simple lines of perl.

The predefined groups of exports in the use statements are as follows:

use Mcrypt qw(:ALGORITHMS);

Exports the BLOWFISH DES 3DES GOST CAST_128 XTEA RC2 TWOFISH CAST_256 SAFERPLUS LOKI97 SERPENT RIJNDAEL_128 RIJNDAEL_192 RIJNDAEL_256 ENIGMA ARCFOUR WAKE libmcrypt algorithms. See the mcrypt(3) man page for more details.

use Mcrypt qw(:MODES);

Exports the CBC ECB CFB OFB bOFB STREAM modes of encryption. See the mcrypt(3) man page for more details.

use Mcrypt qw(:FUNCS);

Exports the following functions: mcrypt_load, mcrypt_unload, mcrypt_init, mcrypt_end, mcrypt_encrypt, mcrypt_decrypt, mcrypt_get_block_size, mcrypt_get_iv_size, mcrypt_get_key_size.

  # Procedural approach:
  # create an ecryption descriptor:
  #   ALGORITHM: blowfish (256 bit key + 16 byte IV)
  #   MODE:      cfb
  # The user application has set:
  #   $method to either "encrypt" or "decrypt"
  #   $infile to the input filename
  #   $outfile to the output filename
  my($td) = Mcrypt::mcrypt_load( Mcrypt::BLOWFISH, '',
                                 Mcrypt::CFB, '' );
  my($key) = "32 bytes of your apps secret key";  # secret key
  my($iv) = "16 bytes of rand"; # shared initialization vector
  Mcrypt::mcrypt_init($td, $key, $iv) || die "Could not initialize td";
  print Mcrypt::mcrypt_encrypt($td, $_) while(<>);
  Mcrypt::mcrypt_end($td);

  # OO approach of the above except decrypting
  my($td) = Mcrypt->new( algorithm => Mcrypt::BLOWFISH,
                         mode => Mcrypt::CFB,
                         verbose => 0 );
  my($key) = "k" x $td->{KEY_SIZE};
  my($iv) = "i" x $td->{IV_SIZE};
  $td->init($key, $iv);
  print $td->decrypt($_) while (<>);
  $td->end();

Theo Schlossnagle <jesus@omniti.com>

The libmcrypt man page: mcrypt(3). Other libmcrypt information is available at http://mcrypt.hellug.gr/.
2007-10-12 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.