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   117887 use 5.006;
  2         9  
4              
5 2     2   21 use strict;
  2         5  
  2         81  
6 2     2   11 use warnings;
  2         4  
  2         3053  
7              
8 2     2   1550 use Crypt::SysRandom 0.007 ();
  2         11113  
  2         863  
9              
10             # RECOMMEND PREREQ: Crypt::SysRandom::XS 0.010
11              
12             our $VERSION = '0.002001';
13              
14             # ABSTRACT: use system randomness for generating session ids
15              
16              
17             sub generate {
18 2     2 0 462804 my ($session) = @_;
19 2         45 return $session->{'data'}->{'_session_id'} = unpack( 'H*', Crypt::SysRandom::random_bytes(20) );
20             }
21              
22             sub validate {
23 2     2 0 1267 my ($session) = @_;
24 2 50       21 if ( $session->{data}->{_session_id} =~ /^[0-9a-f]{40}$/ ) {
25 2         15 return $session->{data}->{_session_id};
26             }
27 0           die "Invalid session ID: " . $session->{data}->{_session_id};
28             }
29              
30              
31             1;
32              
33             __END__