What am I doing wrong? I encrypt a tar file and immediatly decrypt it (in a
different function, however) and it is a totally borked file upon decryption.
I've basically copy-pasted the example from Crypt:CBC. The only clue I have
is this warning:
Use of uninitialized value in pack at
/usr/local/lib/perl5/site_perl/5.8.0/Crypt/CBC.pm line 213, <STDIN> line 3.
using this:
----------- encryption ------------
$cipher = Crypt::CBC->new( {'key' => $password,
'cipher' => 'Blowfish',
'padding' => 'standard',
});
open(in, "$ws/$$.new/$$.tar") || die;
open(out, ">$newname") || die;
$cipher->start('encrypting');
while (read(in, $buf, 1024 ) )
{
print out $cipher->crypt($buf);
}
print out $cipher->finish;
close(in);
close(out);
-------------------------- decryption --------------------
$cipher = Crypt::CBC->new( {'key' => $password,
'cipher' => 'Blowfish',
'padding' => 'standard',
});
open (in, $cryptfile) || die;
open (out, ">$workspace/$$") || die;
$cipher->start('decrypting');
while (read(in, $buf, 1024 ) )
{
print out $cipher->decrypt($buf);
}
print out $cipher->finish;
close(in);
close(out);
The warning that is given comes from the "finish" call while decrypting in the
Crypt:CBC module:
sub finish (\$) {
my $self = shift;
my $bs = $self->{'blocksize'};
my $block = $self->{'buffer'};
$self->{civ} ||= '';
my $result;
if ($self->{'decrypt'}) { #decrypting
$block = pack("a$bs",$block); # pad and truncate to block size
*snip*
I just don't see what (if anything) I'm doing wrong. Since the comment
appears to be talking about padding, I've tried a few different padding
options with crypt:cbc, all with the same result.
-Phil
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]