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.