File Coverage

blib/lib/Apache/Session/Generate/Random.pm
Criterion Covered Total %
statement 16 17 94.1
branch 1 2 50.0
condition n/a
subroutine 6 6 100.0
pod 0 2 0.0
total 23 27 85.1


line stmt bran cond sub pod time code
1             package Apache::Session::Generate::Random;
2              
3 2     2   95232 use 5.006;
  2         9  
4              
5 2     2   20 use strict;
  2         4  
  2         54  
6 2     2   10 use warnings;
  2         3  
  2         185  
7              
8 2     2   1200 use Crypt::SysRandom 0.007 ();
  2         9239  
  2         536  
9              
10             # RECOMMEND PREREQ: Crypt::SysRandom::XS 0.010
11              
12             our $VERSION = '0.002002';
13              
14             # ABSTRACT: use system randomness for generating session ids
15              
16              
17             sub generate {
18 2     2 0 422797 my ($session) = @_;
19 2         39 return $session->{'data'}->{'_session_id'} = unpack( 'H*', Crypt::SysRandom::random_bytes(20) );
20             }
21              
22             sub validate {
23 2     2 0 1188 my ($session) = @_;
24 2 50       20 if ( $session->{data}->{_session_id} =~ /^[0-9a-f]{40}$/ ) {
25 2         14 return $session->{data}->{_session_id};
26             }
27 0           die "Invalid session ID: " . $session->{data}->{_session_id};
28             }
29              
30              
31             1;
32              
33             __END__