[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