Crypt-VERPString
view release on metacpan or search on metacpan
# http://module-build.sourceforge.net/META-spec.html
#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
name: Crypt-VERPString
version: 0.02
version_from: lib/Crypt/VERPString.pm
installdirs: site
requires:
Crypt::Blowfish: 0
Crypt::CBC: 0
MIME::Base32: 0
Test::More: 0
distribution_type: module
generated_by: ExtUtils::MakeMaker version 6.17
Makefile.PL view on Meta::CPAN
use warnings;
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'Crypt::VERPString',
AUTHOR => 'dorian taylor <dorian@cpan.org>',
VERSION_FROM => 'lib/Crypt/VERPString.pm',
ABSTRACT_FROM => 'lib/Crypt/VERPString.pm',
PL_FILES => {},
PREREQ_PM => {
'Crypt::CBC' => 0,
'Crypt::Blowfish' => 0,
'MIME::Base32' => 0,
'Test::More' => 0,
},
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
clean => { FILES => 'Crypt-VERPString-*' },
);
lib/Crypt/VERPString.pm view on Meta::CPAN
package Crypt::VERPString;
use warnings FATAL => 'all';
use strict;
use Carp qw(croak);
#use MIME::Base32 qw(rfc);
use MIME::Base32 qw(crockford);
use Crypt::CBC ();
=head1 NAME
Crypt::VERPString - Encrypt and encode fixed-length records for VERP
=head1 VERSION
Version 0.02
=cut
lib/Crypt/VERPString.pm view on Meta::CPAN
defined $self->{key} or croak 'Key must be defined';
defined $self->{format} or $self->{format} = 'a*';
defined $self->{separator} or $self->{separator} = '-';
defined $self->{encoder} or $self->{encoder} = \&MIME::Base32::encode;
defined $self->{decoder} or $self->{decoder} = \&MIME::Base32::decode;
$self;
}
sub _get_cipher {
my ($self, $iv) = @_;
Crypt::CBC->new({
key => $self->{key},
cipher => $self->{cipher},
iv => pack('NN', $iv, 0), # we could use more entropy...
regenerate_key => 0,
prepend_iv => 0,
});
}
#=head2 set_iv NUMBER
lib/Crypt/VERPString.pm view on Meta::CPAN
my @payload = unpack $self->{format}, $cv->decrypt($ciphertext);
return wantarray ? @payload : $payload[0];
}
=head1 AUTHOR
dorian taylor, C<< <dorian@cpan.org> >>
=head1 SEE ALSO
L<Crypt::CBC>
L<MIME::Base32>
L<http://cr.yp.to/proto/verp.txt>
=head1 BUGS
The true IV is just the given number and zero, packed into two network longs.
I wouldn't recommend really using this for extremely sensitive data, I mean,
it's initially designed to fit in the local-part of an email. Ideas and
( run in 1.456 second using v1.01-cache-2.11-cpan-e1769b4cff6 )