oracular (3) DBIx::Class::EncodedColumn::Crypt::OpenPGP.3pm.gz

Provided by: libdbix-class-encodedcolumn-perl_0.00020-2_all bug

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.