I am new to Perl scripts.
Please help me out....
I am using crypt::CBC to encrypt my files...
during decryption process it goes through the code as follows
Expand|Select|Wrap|Line Numbers
- if ($header_mode eq 'salt') {
- my ($salt) = $$input_stream =~ /^Salted__(.{8})/s;
- croak "Ciphertext does not begin with a valid header for 'salt' header mode" unless defined $salt;
- $self->{salt} = $salt; # new salt
- substr($$input_stream,0,16) = '';
- my ($key,$iv) = $self->_salted_key_and_iv($self->{passphrase},$salt);
- $self->{iv} = $self->{civ} = $iv;
- $self->{key} = $key;
- }
Expand|Select|Wrap|Line Numbers
- my ($salt) = $$input_stream =~ /^Salted__(.{8})/s;
Expand|Select|Wrap|Line Numbers
- sub _salted_key_and_iv {
- my $self = shift;
- my ($pass,$salt) = @_;
- croak "Salt must be 8 bytes long" unless length $salt == 8;
- my $key_len = $self->{keysize};
- my $iv_len = $self->{blocksize};
- my $desired_len = $key_len+$iv_len;
- my $data = '';
- my $d = '';
- while (length $data < $desired_len) {
- $d = md5($d . $pass . $salt);
- $data .= $d;
- }
- return (substr($data,0,$key_len),substr($data,$key_len,$iv_len));
- }
Thanks,
Rajeev