Apache2-POST200
view release on metacpan or search on metacpan
Revision history for Perl extension Apache2::POST200.
0.01 Tue Dec 6 19:12:08 2005
- original version; created by h2xs 1.23 with options
-A -b 5.8.0 -n Apache2::POST200 -XS
0.04 Wed Jun 7 11:12:32 CEST 2006
- update to new interface of Crypt::CBC
- test suite is now compatible to Apache 2.0
lib/Apache2/POST200.pm view on Meta::CPAN
use Apache2::Filter;
use APR::Brigade;
use APR::Bucket;
use APR::Table;
use Apache2::Const -compile=>qw{OK DECLINED
TAKE1 TAKE12 TAKE123 TAKE3 FLAG OR_ALL
M_POST M_GET
HTTP_OK REDIRECT NOT_FOUND};
use MIME::Base64 ();
use Crypt::CBC ();
use Crypt::Blowfish ();
use Digest::MD5 ();
use Digest::CRC ();
use DBI;
our $VERSION = '0.05';
my $rcounter=0;
# these 2 values were once read from /dev/random on my box
my $default_key=("tFS\343x\314\357uh\212W\177+#\332\0q\317S\231\321\316\270H".
lib/Apache2/POST200.pm view on Meta::CPAN
sub Response {
my $r=shift;
my $cf=Apache2::Module::get_config(__PACKAGE__, $r->server,
$r->per_dir_config);
return Apache2::Const::NOT_FOUND
unless( $r->method_number==Apache2::Const::M_GET and
length( $r->args )==32+length($cf->{location}->[0]) );
my $crypt=Crypt::CBC->new(
-key=>$cf->{secret}->[0],
-keysize=>length($cf->{secret}->[0]),
-cipher=>'Crypt::Blowfish',
-literal_key=>1,
-header=>'none',
-iv=>$cf->{secret}->[1],
);
my $session=$r->args;
$session=~s/^\Q$cf->{location}->[0]\E//;
lib/Apache2/POST200.pm view on Meta::CPAN
my $session=pack( 'NNnNC8',
$r->request_time, $$, $rcounter++,
$r->connection->id,
split( /\./, $r->connection->remote_ip, 4 ),
split( /\./, $r->connection->local_ip, 4 ),
);
$rcounter%=2**16;
$session=pack( 'C', Digest::CRC::crc8( $session ) ).$session;
my $crypt=Crypt::CBC->new(
-key=>$cf->{secret}->[0],
-keysize=>length($cf->{secret}->[0]),
-cipher=>'Crypt::Blowfish',
-literal_key=>1,
-header=>'none',
-iv=>$cf->{secret}->[1],
);
$session=MIME::Base64::encode_base64( $crypt->encrypt( $session ), '' );
( run in 1.340 second using v1.01-cache-2.11-cpan-df04353d9ac )