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   461 use strict;
  1         3  
  1         29  
4 1     1   5 use warnings;
  1         2  
  1         28  
5              
6 1     1   8 use parent qw( Crypt::Perl::X509::Extension );
  1         2  
  1         7  
7              
8 1     1   64 use Crypt::Perl::X509::GeneralName ();
  1         2  
  1         18  
9 1     1   4 use Crypt::Perl::X ();
  1         3  
  1         57  
10              
11 1     1   7 use constant ASN1 => Crypt::Perl::X509::GeneralName::ASN1() . <
  1         3  
  1         86  
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         310 asn1_macro => 'InfoAccess',
22             CRITICAL => 0,
23 1     1   7 };
  1         2  
24              
25             sub new {
26 12     12 0 56 my ($class, @accessDescrs) = @_;
27              
28 12 50       57 if (!@accessDescrs) {
29 0         0 die Crypt::Perl::X::create('Generic', 'Need access descriptions!');
30             }
31              
32 12         58 return bless \@accessDescrs, $class;
33             }
34              
35             sub _encode_params {
36 12     12   42 my ($self) = @_;
37              
38             my $data = [
39             map {
40 12 50       81 $self->can("OID_$_->[0]") or die( Crypt::Perl::X::create('Generic', "Unknown method: “$_->[0]”") );
  24         1574  
41              
42             {
43             accessMethod => $self->can("OID_$_->[0]")->(),
44 24         119 accessLocation => Crypt::Perl::X509::GeneralName->new( @{$_}[1,2] )->encode(),
  24         132  
45             }
46             } @$self,
47             ];
48              
49 12         1212 return $data;
50             }
51              
52             1;