NAME
DBIx::Class::FilterColumn::Encrypt - Transparently encrypt columns in DBIx::Class
VERSION
version 0.003
SYNOPSIS
__PACKAGE__->load_components(
qw/FilterColumn::Encrypt/
);
__PACKAGE__->add_columns(
id
=> {
data_type
=>
'integer'
,
is_auto_increment
=> 1,
},
data
=> {
data_type
=>
'text'
,
encrypt
=> {
keys
=> {
0
=>
pack
(
'H*'
, ...),
},
},
},
);
__PACKAGE__->set_primary_key(
'id'
);
# in application code
$rs
->create({
data
=>
'some secret'
});
DESCRIPTION
This components transparently encrypts any value with the currently active key, or decrypts them with any known value. This is useful when needing read/write access to values that are too sensitive to store in plaintext, such as credentials for other services. For passwords you should be using DBIx::Class::CryptColumn instead of this module.
To enable encryption, encrypt
must be a hash containing the key keys
, which shall be a hash mapping numberic identifiers to keys. An optional argument active_key
may be given which one will be used for encrypting, otherwise the key with the highest numeric value will be used automatically; this allows you to rotate the active key. Also a cipher
command may be passed if a cipher other than AES is desired.
AUTHOR
Leon Timmermans <fawaka@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2024 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.