Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Convert::PEM::CBC(3)  User Contributed Perl Documentation Convert::PEM::CBC(3)

NAME
       Convert::PEM::CBC - Cipher Block	Chaining Mode implementation

SYNOPSIS
	   use Convert::PEM::CBC;
	   my $cbc = Convert::PEM::CBC->new(
				Cipher	   => 'Crypt::DES_EDE3',
				Passphrase => 'foo'
		  );

	   my $plaintext = 'foo	bar baz';
	   $cbc->encrypt($plaintext);

DESCRIPTION
       Convert::PEM::CBC implements the	CBC (Cipher Block Chaining) mode for
       encryption/decryption ciphers; the CBC is designed for compatability
       with OpenSSL and	may not	be compatible with other implementations (such
       as SSH).

USAGE
   $cbc	= Convert::PEM::CBC->new(%args)
       Creates a new Convert::PEM::CBC object and initializes it.  Returns the
       new object.

       %args can contain:

       o   Cipher

	   Either the name of an encryption cipher class (eg. Crypt::DES), or
	   an object already blessed into such a class.	The class must support
	   the keysize,	blocksize, encrypt, and	decrypt	methods. If the	value
	   is a	blessed	object,	it is assumed that the object has already been
	   initialized with a key.

	   This	argument is mandatory.

       o   Passphrase

	   A passphrase	to encrypt/decrypt the content.	This is	different in
	   implementation from a key (Key), because it is assumed that a
	   passphrase comes directly from a user, and must be munged into the
	   correct form	for a key. This	"munging" is done by repeatedly
	   computing an	MD5 hash of the	passphrase, the	IV, and	the existing
	   hash, until the generated key is longer than	the keysize for	the
	   cipher (Cipher).

	   Because of this "munging", this argument can	be any length (even an
	   empty string).

	   If you give the Cipher argument an object, this argument is
	   ignored. If the Cipher argument is a	cipher class, either this
	   argument or Key must	be provided.

       o   Key

	   A raw key, to be passed directly to the new cipher object. Because
	   this	is passed directly to the cipher itself, the length of the key
	   must	be equal to or greater than the	keysize	for the	Cipher.

	   As with the Passphrase argument, if you give	the Cipher argument an
	   already-constructed cipher object, this argument is ignored.	If the
	   Cipher argument is a	cipher class, either this argument or
	   Passphrase must be provided.

       o   IV

	   The initialization vector for CBC mode.

	   This	argument is optional; if not provided, a random	IV will	be
	   generated. Obviously, if you're decrypting data, you	should provide
	   this	argument, because your IV should match the IV used to encrypt
	   the data.

   $cbc->encrypt($plaintext)
       Encrypts	the plaintext $plaintext using the underlying cipher
       implementation in CBC mode, and returns the ciphertext.

       If any errors occur, returns undef, and you should check	the errstr
       method to find out what went wrong.

   $cbc->decrypt($ciphertext)
       Decrypts	the ciphertext $ciphertext using the underlying	cipher
       implementation in CBC mode, and returns the plaintext.

       If any errors occur, returns undef, and you should check	the errstr
       method to find out what went wrong.

   $cbc->iv
       Returns the current initialization vector. One use for this might be to
       grab the	initial	value of the IV	if it's	created	randomly (ie.  you
       haven't provided	an IV argument to new):

	   my $cbc = Convert::PEM::CBC->new( Cipher => $cipher );
	   my $iv = $cbc->iv;	## Generated randomly in 'new'.

       Convert::PEM uses this to write the IV to the PEM file when encrypting,
       so that it can be known when trying to decrypt the file.

   $cbc->errstr
       Returns the value of the	last error that	occurred. This should only be
       considered meaningful when you've received undef	from one of the
       functions above;	in all other cases its relevance is undefined.

AUTHOR & COPYRIGHTS
       Please see the Convert::PEM manpage for author, copyright, and license
       information.

perl v5.32.0			  2010-12-07		  Convert::PEM::CBC(3)

NAME | SYNOPSIS | DESCRIPTION | USAGE | AUTHOR & COPYRIGHTS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Convert::PEM::CBC&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help