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
CFB(3) User Contributed Perl Documentation CFB(3)

Crypt::CFB - Encrypt Data in Cipher Feedback Mode

        use Crypt::CFB;

        my $cipher = new Crypt::CFB $key, 'Crypt::Rijndael';

        ## Or:
        my $iv = ''; map { $iv .= chr(rand(256)) } (0..16);
        my $cipher = new Crypt::CFB $key, 'Crypt::Rijndael', $iv;

        my $ciphertext = $cipher->encrypt($plaintext);
        my $plaintext = $cipher->decrypt($ciphertext);

        my $cipher2 = new Crypt::CFB $key, 'Digest::MD5';

        $ciphertext = $cipher->encrypt($plaintext);
        $plaintext = $cipher->decrypt($ciphertext);

Generic CFB implementation in pure Perl. The Cipher Feedback Mode module constructs a stream cipher from a block cipher or cryptographic hash funtion and returns it as an object. Any block cipher in the "Crypt::" class can be used, as long as it supports the "blocksize" and "keysize" methods. Any hash function in the "Digest::" class can be used, as long as it supports the "add" method.

"$cipher = new Crypt::CFB $key, $algorithm, $optional_iv"
Constructs a CFB object. If $algorithm is a block cipher, then $key should be of the correct size for that cipher. In most cases you can inquire the block cipher module by invoking the "keysize" method. If $algorithm is a hash function ("Digest::"), then $key can be of any size. The optional IV can be used to further seed the crypto algorithm. If no IV is given, a string of zeroes is used.
"$ciphertext = $cipher->encrypt $plaintext"
Encrypts $plaintext. The input is XORed with the keystream generated from the internal state of the CFB object and that state is updated with the output. $plaintext can be of any length.
"$cipher->reset"
Resets the internal state. Remember to do that before decrypting, if you use the same object.
"$plaintext = $cipher->decrypt $ciphertext"
Decrypts $ciphertext.

This is awfully slow. Some classes in "Digest::" do not provide the "add" method, so they will fail. The implementation is a little baroque.

Matthias Bauer <matthiasb@acm.org>

Added the use of an IV.

Kees Jan Hermans <kees@phoezo.com>
2011-02-04 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.