File Coverage

lib/Crypt/Perl/X509/InfoAccessBase.pm
Criterion Covered Total %
statement 30 31 96.7
branch 2 4 50.0
condition n/a
subroutine 9 9 100.0
pod 0 1 0.0
total 41 45 91.1


line stmt bran cond sub pod time code
1             package Crypt::Perl::X509::InfoAccessBase;
2              
3 1     1   410 use strict;
  1         2  
  1         24  
4 1     1   4 use warnings;
  1         2  
  1         24  
5              
6 1     1   4 use parent qw( Crypt::Perl::X509::Extension );
  1         2  
  1         7  
7              
8 1     1   57 use Crypt::Perl::X509::GeneralName ();
  1         3  
  1         11  
9 1     1   4 use Crypt::Perl::X ();
  1         2  
  1         45  
10              
11 1     1   5 use constant ASN1 => Crypt::Perl::X509::GeneralName::ASN1() . <
  1         2  
  1         101  
12             InfoAccess ::= SEQUENCE OF AccessDescription
13              
14             AccessDescription ::= SEQUENCE {
15             accessMethod OBJECT IDENTIFIER,
16             accessLocation ANY -- GeneralName
17             }
18             END
19              
20             use constant {
21 1         284 asn1_macro => 'InfoAccess',
22             CRITICAL => 0,
23 1     1   5 };
  1         3  
24              
25             sub new {
26 12     12 0 73 my ($class, @accessDescrs) = @_;
27              
28 12 50       50 if (!@accessDescrs) {
29 0         0 die Crypt::Perl::X::create('Generic', 'Need access descriptions!');
30             }
31              
32 12         71 return bless \@accessDescrs, $class;
33             }
34              
35             sub _encode_params {
36 12     12   45 my ($self) = @_;
37              
38             my $data = [
39             map {
40 12 50       89 $self->can("OID_$_->[0]") or die( Crypt::Perl::X::create('Generic', "Unknown method: “$_->[0]”") );
  24         1563  
41              
42             {
43             accessMethod => $self->can("OID_$_->[0]")->(),
44 24         123 accessLocation => Crypt::Perl::X509::GeneralName->new( @{$_}[1,2] )->encode(),
  24         121  
45             }
46             } @$self,
47             ];
48              
49 12         1211 return $data;
50             }
51              
52             1;