The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

DBIx::Class::InflateColumn::Crypt::Passphrase - Inflate/deflate columns to passphrase objects

VERSION

version 0.009

SYNOPSIS

 __PACKAGE__->load_components(qw(InflateColumn::Crypt::Passphrase));

 __PACKAGE__->add_columns(
     id => {
         data_type         => 'integer',
         is_auto_increment => 1,
     },
     passphrase => {
         data_type          => 'text',
         inflate_passphrase => {
             encoder         => {
                 module      => 'Argon2',
                 memory_cost => '64M',
                 time_cost   => 5,
                 parallelism => 4,
             },
             validators => [
                 'BCrypt',
             ],
         },
     },
 );

 __PACKAGE__->set_primary_key('id');


 # in application code
 $rs->create({ passphrase => 'password1' });

 my $row = $rs->find({ id => $id });
 if ($row->passphrase->verify_password($input)) { ...

DESCRIPTION

Provides inflation and deflation for Crypt::Passphrase instances from and to crypt encoding.

To enable both inflating and deflating, inflate_passphrase must be set to a Crypt::Passphrase construction hash.

METHODS

register_column

Chains with the register_column method in DBIx::Class::Row, and sets up passphrase columns appropriately. This would not normally be directly called by end users.

AUTHOR

Leon Timmermans <leont@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2023 by Leon Timmermans.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.