NAME¶
DBIx::Class::EncodedColumn::Crypt::OpenPGP - Encrypt columns using
Crypt::OpenPGP
SYNOPSIS¶
__PACKAGE__->add_columns(
'secret_data' => {
data_type => 'TEXT',
encode_column => 1,
encode_class => 'Crypt::OpenPGP',
encode_args => {
recipient => '7BEF6294',
},
encode_check_method => 'decrypt_data',
};
my $row = $schema->resultset('EncryptedClass')
->create({ secret_data => 'This is secret' });
is(
$row->decrypt_data('Private Key Passphrase'),
'This is secret',
'PGP/GPG Encryption works!'
);
DESCRIPTION¶
This is a conduit to working with Crypt::OpenPGP, so that you can encrypt data
in your database using gpg. Currently this module only handles encrypting but
it may add signing of columns in the future
CONFIGURATION¶
In the column definition, specify the "encode_args" hash as listed in
the synopsis. The "recipient" is required if doing key exchange
encryption, or if you want to use symmetric key encryption using a passphrase
you can specify a "passphrase" option:
encode_args => { passphrase => "Shared Secret" }
If you have a separate path to your public and private key ring file, or if you
have alternative Crypt::OpenPGP configuration, you can specify the constructor
args using the "pgp_args" configuration key:
encode_args => {
pgp_args => {
SecRing => "$FindBin::Bin/var/secring.gpg",
PubRing => "$FindBin::Bin/var/pubring.gpg",
}
}
The included tests cover good usage, and it is advised to briefly browse through
them.
Also, remember to keep your private keys secure!
AUTHOR¶
J. Shirley <cpan@coldhardcode.com>
LICENSE¶
This library is free software, you can redistribute it and/or modify it under
the same terms as Perl itself.