diff options
author | Jesse Luehrs <doy@tozt.net> | 2010-12-21 13:00:30 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2010-12-21 13:22:31 -0600 |
commit | fe4c6e3e5b0875cc287eceb701ef751f3511dc6b (patch) | |
tree | 482107b9116d98d340e6068bc98b76a10b45e612 /lib/KiokuDB/Serializer/Crypt.pm | |
parent | 244ad8fc7e090884b3fc7fda2d7036d7f756c40b (diff) | |
download | kiokudb-serializer-crypt-fe4c6e3e5b0875cc287eceb701ef751f3511dc6b.tar.gz kiokudb-serializer-crypt-fe4c6e3e5b0875cc287eceb701ef751f3511dc6b.zip |
use delegation here instead of roles
Diffstat (limited to 'lib/KiokuDB/Serializer/Crypt.pm')
-rw-r--r-- | lib/KiokuDB/Serializer/Crypt.pm | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/lib/KiokuDB/Serializer/Crypt.pm b/lib/KiokuDB/Serializer/Crypt.pm index 159c0d6..06dba25 100644 --- a/lib/KiokuDB/Serializer/Crypt.pm +++ b/lib/KiokuDB/Serializer/Crypt.pm @@ -1,18 +1,31 @@ package KiokuDB::Serializer::Crypt; -use Moose::Role; +use Moose; use namespace::autoclean; # ABSTRACT: encrypt data stored in kiokudb use Crypt::Util; +use KiokuDB::Backend::Hash; +use KiokuDB::Backend::Serialize; =head1 SYNOPSIS - package My::Serializer; - use Moose; - with 'KiokuDB::Serializer', 'KiokuDB::Serializer::Crypt'; + use KiokuDB::Util; + use KiokuDB::Serializer::Crypt; - sub serialize { ... } - sub deserialize { ... } + my $dsn = '...'; + my $secret = '...'; + + my $backend = KiokuDB::Util::dsn_to_backend( + $dsn, + serializer => KiokuDB::Serializer::Crypt->new( + serializer => 'json', + crypt_cipher => 'Rijndael', + crypt_mode => 'CFB', + crypt_key => $secret, + ), + ) + + my $d = KiokuDB->new(backend => $backend); =head1 DESCRIPTION @@ -100,6 +113,22 @@ has crypt => ( handles => ['encrypt_string', 'decrypt_string'], ); +=attr serializer + +The underlying serializer to use. KiokuDB will use this serializer to get a +string representation of the object which will then be encrypted. Defaults to +'storable'. + +=cut + +has serializer => ( + is => 'ro', + does => 'KiokuDB::Backend::Serialize', + coerce => 1, + default => 'storable', + handles => 'KiokuDB::Backend::Serialize', +); + around serialize => sub { my $orig = shift; my $self = shift; @@ -117,6 +146,8 @@ around deserialize => sub { return $self->$orig($self->decrypt_string($collapsed), @args); }; +with 'KiokuDB::Backend::Serialize'; + =head1 BUGS No known bugs. |