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