CGI-MxScreen
view release on metacpan or search on metacpan
MxScreen/Session/Medium/Browser.pm view on Meta::CPAN
DREQUIRE defined $self->serializer, "already called set_serializer()";
my $md5 = CGI::param(MX_MD5);
DASSERT length $md5, "session MD5 checksum exists";
CGI::delete(MX_MD5);
require MIME::Base64;
require Crypt::CBC;
require Digest::MD5;
my $decoded = MIME::Base64::decode(CGI::param(MX_CONTEXT));
my $cipher = new Crypt::CBC($self->key, CRYPT_ALGO);
my $decrypted = $cipher->decrypt($decoded);
CGI::delete(MX_CONTEXT);
#
# Before attempting to de-serialize, check the MD5 certificate.
# Deserialization would fail anyway if the context was "corrupted".
#
my $digest = Digest::MD5::md5_base64($decrypted);
if ($digest ne $md5) {
logerr "invalid MD5 certificate";
( run in 0.695 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )