[SCM] libmessage-passing-perl Debian packaging branch, master, updated. debian/0.111-3-14-g44f6e88
Tomas Doran
bobtfish at bobtfish.net
Mon May 6 11:57:21 UTC 2013
The following commit has been merged in the master branch:
commit c1da3d69902d3e498a5377bff6f4c8a4213e376d
Author: Tomas Doran <bobtfish at bobtfish.net>
Date: Sat Jun 16 18:52:48 2012 -0500
Add a Crypt::CBC encoder and decoder
diff --git a/Makefile.PL b/Makefile.PL
index 62e2138..1bae6ea 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -38,6 +38,8 @@ author_requires(
'Test::Spelling' => '0',
'Compress::Zlib' => '0',
'Compress::Bzip2' => '0',
+ 'Crypt::CBC' => '0',
+ 'Crypt::Blowfish' => '0',
);
author_tests 't/author';
diff --git a/lib/Message/Passing/Filter/Decoder/Crypt/CBC.pm b/lib/Message/Passing/Filter/Decoder/Crypt/CBC.pm
new file mode 100644
index 0000000..61ba828
--- /dev/null
+++ b/lib/Message/Passing/Filter/Decoder/Crypt/CBC.pm
@@ -0,0 +1,18 @@
+package Message::Passing::Filter::Decoder::Crypt::CBC;
+use Moose;
+use Compress::Zlib;
+use namespace::autoclean;
+
+with qw/
+ Message::Passing::Role::Filter
+ Message::Passing::Role::Crypt::CBC
+/;
+
+sub filter {
+ my ($self, $message) = @_;
+ $self->cbc->decrypt($message);
+}
+
+__PACKAGE__->meta->make_immutable;
+1;
+
diff --git a/lib/Message/Passing/Filter/Encoder/Crypt/CBC.pm b/lib/Message/Passing/Filter/Encoder/Crypt/CBC.pm
new file mode 100644
index 0000000..c7e3b1f
--- /dev/null
+++ b/lib/Message/Passing/Filter/Encoder/Crypt/CBC.pm
@@ -0,0 +1,18 @@
+package Message::Passing::Filter::Encoder::Crypt::CBC;
+use Moose;
+use Compress::Zlib;
+use namespace::autoclean;
+
+with qw/
+ Message::Passing::Role::Filter
+ Message::Passing::Role::Crypt::CBC
+/;
+
+sub filter {
+ my ($self, $message) = @_;
+ $self->cbc->encrypt($message);
+}
+
+__PACKAGE__->meta->make_immutable;
+1;
+
diff --git a/lib/Message/Passing/Role/Crypt/CBC.pm b/lib/Message/Passing/Role/Crypt/CBC.pm
new file mode 100644
index 0000000..f385cde
--- /dev/null
+++ b/lib/Message/Passing/Role/Crypt/CBC.pm
@@ -0,0 +1,26 @@
+package Message::Passing::Role::Crypt::CBC;
+use Moose::Role;
+use Crypt::CBC;
+use namespace::autoclean;
+
+has [qw/
+ encryption_key
+ encryption_cipher
+/] => (
+ isa => 'Str',
+ is => 'ro',
+ required => 1,
+);
+
+# NOTE - We need a new CBC object per message, otherwise if we _EVER_ drop
+# messages then we totally screw ourselves!
+sub cbc {
+ my $self = shift;
+ Crypt::CBC->new(
+ -key => $self->encryption_key,
+ -cipher => $self->encryption_cipher,
+ );
+}
+
+1;
+
diff --git a/t/crypt_cbc.t b/t/crypt_cbc.t
new file mode 100644
index 0000000..9119ae3
--- /dev/null
+++ b/t/crypt_cbc.t
@@ -0,0 +1,35 @@
+use strict;
+use warnings;
+use Test::More;
+use Try::Tiny;
+use Message::Passing::Input::Null;
+use Message::Passing::Output::Test;
+
+plan skip_all => "No Crypt::CBC or no Crypt::Blowfish"
+ unless try {
+ require Message::Passing::Filter::Decoder::Crypt::CBC;
+ require Crypt::Blowfish;
+};
+
+use_ok 'Message::Passing::Filter::Decoder::Crypt::CBC';
+use_ok 'Message::Passing::Filter::Encoder::Crypt::CBC';
+
+my $cbct = Message::Passing::Output::Test->new;
+my $cbc = Message::Passing::Input::Null->new(
+ output_to => Message::Passing::Filter::Encoder::Crypt::CBC->new(
+ encryption_cipher => 'Blowfish',
+ encryption_key => 'test',
+ output_to => Message::Passing::Filter::Decoder::Crypt::CBC->new(
+ output_to => $cbct,
+ encryption_cipher => 'Blowfish',
+ encryption_key => 'test',
+ ),
+ ),
+);
+
+$cbc->output_to->consume('test');
+is $cbct->message_count, 1;
+is_deeply [$cbct->messages], ['test'];
+
+done_testing;
+
--
libmessage-passing-perl Debian packaging
More information about the Pkg-perl-cvs-commits
mailing list