Crypt-xDBM_File

 view release on metacpan or  search on metacpan

xDBM_File.pm  view on Meta::CPAN


    return (exists $self->{'localhash'}{$crypted_key});
}

sub FIRSTKEY { # first key request
    my $self = shift;
    my ($key, $crypted_key);

    keys(%{$self->{'localhash'}}); # reset eachness 
    return($self->NEXTKEY());
}

sub NEXTKEY {
    my $self = shift;
    my $crypted_key = each (%{$self->{'localhash'}});
    if (defined $crypted_key) {
	return ($self->_decrypt_string($crypted_key, $self->{'block_pad'}));
    } else {
	return;
    }
}

sub CLEAR {
    my $self = shift;
    return ($self->{'localhash'} = ());
}

sub DESTROY {
    my $self = shift;
    return (untie %{$self->{'localhash'}});
}


# Autoload methods go after =cut, and are processed by the autosplit program.

1;
__END__

=head1 NAME

Crypt::xDBM_File - encrypt almost any kind of dbm file

=head1 SYNOPSIS

 use Crypt::xDBM_File;
 use GDBM_File; # remember to only load those you really want
 use SDBM_File;
 use NDBM_File;
 use Fcntl; # neede by SDBM_File and NDBM_File
 
 tie %hash, 'Crypt::xDBM_File', crypt_method, key, 'GDBM_FILE', $filename, &GDBM_WRCREAT, 0640;

 tie %hash, 'Crypt::xDBM_File', 'IDEA', "my_key", 'NDBM_FILE', $filename, O_RDWR|O_CREAT, 0640;

 tie %hash, 'Crypt::xDBM_File', 'DES', "my_key", 'SDBM_FILE', $filename, O_RDWR|O_CREAT, 0640;

 tie %hash, 'Crypt::xDBM_File', 'Crypt::Blowfish', "my key", 'GDBM_FILE', $filename, &GDBM_WRCREAT, 0640;

=head1 DESCRIPTION

Crypt::xDBM_File encrypts/decrypts the data in a gdbm,ndbm,sdbm (and maybe even berkeleyDB, but I didn't test that) file.  It gets tied to a hash and you just access the hash like normal.  The crypt function can be any of the CPAN modules that use en...

You can in a single dbm file mix encryption methods, just be prepared to handle the binary muck that you get from trying to decrypt with an algorithm different from the one a key was originally encrypted in (for example if you do a keys or values, yo...

***IMPORTANT***
Encryption keys (the key you pass in on the tie line) will be padded or truncated to fit the keysize().  Data (the key/values of the hash) is padded to fill complete blocks of blocksize().  The padding is stripped before being returned to the user so...

=head1 AUTHOR

Eric Estabrooks, eric@urbanrage.com

=head1 SEE ALSO

perl(1).

=cut



( run in 0.873 second using v1.01-cache-2.11-cpan-39bf76dae61 )