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


Manual Reference Pages  -  CRYPT::CTR (3)

.ds Aq ’

NAME

Crypt::Ctr - Encrypt Data in Counter Mode

CONTENTS

SYNOPSIS



        use Crypt::Ctr;

        my $cipher = new Crypt::Ctr $key, Crypt::Rijndael;

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

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

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



DESCRIPTION

Generic Counter Mode implementation in pure Perl. The Counter 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.

    Note

Counter mode produces the keystream independent from the input. Be sure not to re-use keys in Counter mode. As with Cipher Feedback mode, one should use Counter mode inside authenticated channels, e.g. HMAC.

METHODS

$cipher = new Crypt::Ctr $key, $algorithm Constructs a Crypt::Ctr 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, then $key can be of any size.
$ciphertext = $cipher->encrypt $plaintext Encrypts $plaintext. The input is XORed with the keystream generated from the internal state of the Ctr 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.

BUGS

This is awfully slow. Some classes in Digest:: do not provide the add method, so they will fail. The internal counter is a Perl integer. This could possibly lead to strange errors when encrypting more than POSIX::LONG_MAX bytes and decrypting it on a different architecture.

AUTHOR

Matthias Bauer <matthiasb@acm.org>
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 CTR (3) 2002-06-30

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