| line |
true |
false |
branch |
|
239
|
0 |
0 |
if $c |
|
253
|
0 |
0 |
if $len > $max[0] |
|
254
|
0 |
0 |
if (exists $variantNames{$oid}) { } |
|
256
|
0 |
0 |
if $len > $max[1] |
|
258
|
0 |
0 |
if $len > $max[2] |
|
261
|
0 |
0 |
if $len > $max[1] |
|
271
|
0 |
0 |
exists $variantNames{$oid} ? : |
|
272
|
0 |
0 |
if exists $variantNames{$oid} |
|
290
|
0 |
2 |
unless @_ == 2 and defined $class and not ref $class |
|
291
|
0 |
2 |
unless defined $version |
|
292
|
0 |
2 |
unless $version >= 0 and $version <= 1 |
|
298
|
46 |
90 |
if /^\d/ |
|
308
|
0 |
2 |
unless defined $class |
|
310
|
0 |
2 |
if ref $class and $class->isa('Crypt::PKCS10') |
|
319
|
0 |
4 |
unless defined $class |
|
321
|
0 |
4 |
unless defined $oid and defined $apiVersion and $apiVersion > 0 |
|
330
|
0 |
4 |
unless defined $class |
|
332
|
0 |
4 |
unless defined $apiVersion and $apiVersion > 0 |
|
343
|
1 |
68 |
unless $oid |
|
345
|
21 |
47 |
if (exists $oids{$oid}) { } |
|
|
1 |
46 |
elsif (exists $oid2extkeyusage{$oid}) { } |
|
361
|
0 |
11 |
unless defined $class |
|
363
|
0 |
11 |
unless (defined $apiVersion) |
|
368
|
3 |
8 |
if @_ == 2 and defined $oid |
|
370
|
0 |
7 |
unless @_ >= 3 and defined $oid and defined $longname || defined $shortname |
|
371
|
1 |
6 |
unless defined $oid and $oid =~ /^\d+(?:\.\d+)*$/ |
|
373
|
3 |
3 |
if (defined $longname) { } |
|
374
|
1 |
2 |
if exists $oids{$oid} or exists $oid2extkeyusage{$oid} |
|
375
|
1 |
1 |
if grep /^$longname$/, values %oids |
|
377
|
1 |
0 |
unless exists $oids{$oid} or exists $oid2extkeyusage{$oid} |
|
379
|
1 |
2 |
if defined $shortname and grep /^\U$shortname\E$/, values %shortnames |
|
382
|
1 |
1 |
if (defined $longname) { } |
|
388
|
1 |
1 |
if defined $shortname |
|
397
|
0 |
12 |
if defined $class and ref $class and $class->isa('Crypt::PKCS10') |
|
399
|
0 |
12 |
unless (defined $apiVersion) |
|
406
|
0 |
12 |
unless defined $class and @_ >= 1 |
|
407
|
1 |
11 |
if $void |
|
409
|
4 |
8 |
if ($@) |
|
411
|
2 |
1 |
if (not $apiVersion or $die or not defined wantarray) |
|
424
|
0 |
1 |
unless defined $class |
|
426
|
0 |
1 |
if (ref $class and $class->isa('Crypt::PKCS10')) |
|
447
|
1 |
10 |
if @_ >= 1 and ref $_[0] eq 'HASH' |
|
449
|
0 |
11 |
unless @_ % 2 == 0 |
|
451
|
11 |
0 |
if @_ |
|
461
|
1 |
10 |
unless defined $der |
|
463
|
0 |
10 |
if (keys %options) |
|
467
|
9 |
1 |
unless exists $self->{'_binaryMode'} |
|
475
|
5 |
5 |
if ($self->{'_readFile'}) |
|
476
|
0 |
5 |
unless open my $fh, '<', $der |
|
480
|
7 |
3 |
if (&Scalar::Util::openhandle($der)) |
|
483
|
2 |
5 |
if $self->{'_binaryMode'} |
|
486
|
0 |
7 |
unless defined $der |
|
491
|
2 |
8 |
if ($self->{'_PEMonly'}) { } |
|
|
5 |
6 |
elsif ($self->{'_acceptPEM'} and $der =~ /$pemre/) { } |
|
492
|
1 |
1 |
if ($der =~ /$pemre/) { } |
|
502
|
6 |
3 |
if ($isPEM) |
|
507
|
1 |
5 |
if $self->{'_ignoreNonBase64'} |
|
509
|
1 |
5 |
unless ($der =~ m[\A[A-Za-z0-9+/]+={0,2}\z] and length($der) % 4 == 0) |
|
522
|
0 |
8 |
unless $tlen and $tag == 16 |
|
525
|
0 |
8 |
unless $llen and $len |
|
529
|
0 |
8 |
if $tlen < $len |
|
531
|
0 |
2 |
if ($tlen != $len and $self->{'_warnings'}) |
|
537
|
0 |
8 |
if ($@) |
|
550
|
0 |
8 |
unless $asn->prepare("\n DirectoryString ::= CHOICE {\n teletexString TeletexString,\n printableString PrintableString,\n bmpString BMPString,\n universalString UniversalString,\n utf8String UTF8String,\n ia5String IA5String,\n integer INTEGER}\n\n Algorithms ::= ANY\n\n Name ::= SEQUENCE OF RelativeDistinguishedName\n RelativeDistinguishedName ::= SET OF AttributeTypeAndValue\n AttributeTypeAndValue ::= SEQUENCE {\n type OBJECT IDENTIFIER,\n value DirectoryString}\n\n Attributes ::= SET OF Attribute\n Attribute ::= SEQUENCE {\n type OBJECT IDENTIFIER,\n values SET OF ANY}\n\n\n AlgorithmIdentifier ::= SEQUENCE {\n algorithm OBJECT IDENTIFIER,\n parameters Algorithms OPTIONAL}\n\n SubjectPublicKeyInfo ::= SEQUENCE {\n algorithm AlgorithmIdentifier,\n subjectPublicKey BIT STRING}\n\n --- Certificate Request ---\n\n CertificationRequest ::= SEQUENCE {\n certificationRequestInfo CertificationRequestInfo,\n signatureAlgorithm AlgorithmIdentifier,\n signature BIT STRING},\n\n CertificationRequestInfo ::= SEQUENCE {\n version INTEGER ,\n subject Name OPTIONAL,\n subjectPKInfo SubjectPublicKeyInfo,\n attributes [0] Attributes OPTIONAL}\n\n --- Extensions ---\n\n BasicConstraints ::= SEQUENCE {\n cA BOOLEAN OPTIONAL, -- DEFAULT FALSE,\n pathLenConstraint INTEGER OPTIONAL}\n\n OS_Version ::= IA5String\n emailAddress ::= IA5String\n\n EnrollmentCSP ::= SEQUENCE {\n KeySpec INTEGER,\n Name BMPString,\n Signature BIT STRING}\n\n ENROLLMENT_CSP_PROVIDER ::= SEQUENCE { -- MSDN\n keySpec INTEGER,\n cspName BMPString,\n signature BIT STRING}\n\n ENROLLMENT_NAME_VALUE_PAIR ::= EnrollmentNameValuePair -- MSDN: SEQUENCE OF\n\n EnrollmentNameValuePair ::= SEQUENCE { -- MSDN\n name BMPString,\n value BMPString}\n\n ClientInformation ::= SEQUENCE { -- MSDN\n clientId INTEGER,\n MachineName UTF8String,\n UserName UTF8String,\n ProcessName UTF8String}\n\n extensionRequest ::= SEQUENCE OF Extension\n Extension ::= SEQUENCE {\n extnID OBJECT IDENTIFIER,\n critical BOOLEAN OPTIONAL,\n extnValue OCTET STRING}\n\n SubjectKeyIdentifier ::= OCTET STRING\n\n certificateTemplate ::= SEQUENCE {\n templateID OBJECT IDENTIFIER,\n templateMajorVersion INTEGER OPTIONAL, -- (0..4294967295)\n templateMinorVersion INTEGER OPTIONAL} -- (0..4294967295)\n\n EnhancedKeyUsage ::= SEQUENCE OF OBJECT IDENTIFIER\n KeyUsage ::= BIT STRING\n netscapeCertType ::= BIT STRING\n\n ApplicationCertPolicies ::= SEQUENCE OF PolicyInformation -- Microsoft\n\n PolicyInformation ::= SEQUENCE {\n policyIdentifier OBJECT IDENTIFIER,\n policyQualifiers SEQUENCE OF PolicyQualifierInfo OPTIONAL}\n\n PolicyQualifierInfo ::= SEQUENCE {\n policyQualifierId OBJECT IDENTIFIER,\n qualifier ANY}\n\n certificatePolicies ::= SEQUENCE OF certPolicyInformation -- RFC 3280\n\n certPolicyInformation ::= SEQUENCE {\n policyIdentifier CertPolicyId,\n policyQualifier SEQUENCE OF certPolicyQualifierInfo OPTIONAL}\n\n CertPolicyId ::= OBJECT IDENTIFIER\n\n certPolicyQualifierInfo ::= SEQUENCE {\n policyQualifierId CertPolicyQualifierId,\n qualifier ANY DEFINED BY policyQualifierId}\n\n CertPolicyQualifierId ::= OBJECT IDENTIFIER\n\n CertPolicyQualifier ::= CHOICE {\n cPSuri CPSuri,\n userNotice UserNotice }\n\n CPSuri ::= IA5String\n\n UserNotice ::= SEQUENCE {\n noticeRef NoticeReference OPTIONAL,\n explicitText DisplayText OPTIONAL}\n\n NoticeReference ::= SEQUENCE {\n organization DisplayText,\n noticeNumbers SEQUENCE OF INTEGER }\n\n DisplayText ::= CHOICE {\n ia5String IA5String,\n visibleString VisibleString,\n bmpString BMPString,\n utf8String UTF8String }\n\n unstructuredName ::= CHOICE {\n Ia5String IA5String,\n directoryString DirectoryString}\n\n challengePassword ::= DirectoryString\n\n subjectAltName ::= SEQUENCE OF GeneralName\n\n GeneralName ::= CHOICE {\n otherName [0] AnotherName,\n rfc822Name [1] IA5String,\n dNSName [2] IA5String,\n x400Address [3] ANY, --ORAddress,\n directoryName [4] Name,\n ediPartyName [5] EDIPartyName,\n uniformResourceIdentifier [6] IA5String,\n iPAddress [7] OCTET STRING,\n registeredID [8] OBJECT IDENTIFIER}\n\n AnotherName ::= SEQUENCE {\n type OBJECT IDENTIFIER,\n value [0] EXPLICIT ANY }\n\n EDIPartyName ::= SEQUENCE {\n nameAssigner [0] DirectoryString OPTIONAL,\n partyName [1] DirectoryString }\n\n certificateTemplateName ::= CHOICE {\n octets OCTET STRING,\n directoryString DirectoryString}\n\n rsaKey ::= SEQUENCE {\n modulus INTEGER,\n publicExponent INTEGER}\n\n dsaKey ::= INTEGER\n\n dsaPars ::= SEQUENCE {\n P INTEGER,\n Q INTEGER,\n G INTEGER}\n\n eccName ::= OBJECT IDENTIFIER\n\n ecdsaSigValue ::= SEQUENCE {\n r INTEGER,\n s INTEGER}\n") |
|
742
|
0 |
8 |
unless my $top = $parser->decode($der) |
|
778
|
0 |
8 |
unless $CRtag == 16 |
|
783
|
0 |
8 |
unless $CItag == 16 |
|
788
|
0 |
8 |
if $self->{'_verifySignature'} and not $self->checkSignature |
|
816
|
111 |
102 |
unless ref $value |
|
817
|
24 |
78 |
if (ref $value eq 'ARRAY') |
|
823
|
78 |
0 |
if (ref $value eq 'HASH') |
|
825
|
3 |
102 |
if ($k eq 'bmpString') |
|
829
|
6 |
96 |
if ($k eq 'iPAddress') |
|
832
|
3 |
3 |
if (length $addr == 4) { } |
|
855
|
8 |
0 |
if defined $signatureAlgorithm->{'algorithm'} and exists $oids{$signatureAlgorithm->{'algorithm'}} |
|
868
|
8 |
0 |
if defined $pkinfo->{'algorithm'}{'algorithm'} and exists $oids{$pkinfo->{'algorithm'}{'algorithm'}} |
|
1029
|
0 |
24 |
if defined $name and exists $variantNames{$name} |
|
1031
|
0 |
24 |
unless defined $name |
|
1035
|
6 |
18 |
if ($name eq 'extensionRequest') { } |
|
1038
|
0 |
18 |
unless my $parser = $self->_init($name, 1) |
|
1040
|
0 |
18 |
if ($entry->{'values'}[1]) |
|
1043
|
0 |
18 |
unless my $value = $entry->{'values'} = $parser->decode($entry->{'values'}[0]) |
|
1046
|
12 |
6 |
if (exists $special{$name}) |
|
1060
|
0 |
6 |
unless my $decoded = $parser->decode($extensionRequest) |
|
1064
|
14 |
13 |
if defined $name and exists $variantNames{$name} |
|
1065
|
27 |
0 |
if (defined $name) |
|
1069
|
0 |
27 |
unless ($parser) |
|
1074
|
0 |
27 |
unless my $dec = $parser->decode($entry->{'extnValue'}) |
|
1079
|
21 |
6 |
if (exists $special{$asnName}) |
|
1097
|
0 |
43 |
exists $variantNames{$oid} ? : |
|
1098
|
43 |
0 |
if (defined $name) |
|
1101
|
0 |
43 |
exists $variantNames{$oid} ? : |
|
1103
|
2 |
41 |
unless ($self->can($name)) |
|
1107
|
1 |
1 |
if wantarray |
|
1125
|
0 |
87 |
unless (defined $parsed or $optional) |
|
1139
|
3 |
3 |
if $format |
|
1154
|
0 |
7 |
unless $self->{'certificationRequestInfo'}{'subject'}{$component} |
|
|
7 |
2 |
if wantarray |
|
1166
|
1 |
4 |
if wantarray |
|
1173
|
18 |
1 |
if not $long and exists $shortnames{$name} |
|
1191
|
1 |
4 |
if (scalar @sequence > 1) { } |
|
1207
|
0 |
4 |
unless (defined $san) |
|
1208
|
0 |
0 |
if wantarray |
|
1212
|
2 |
2 |
unless (defined $type) |
|
1213
|
1 |
1 |
if (wantarray) |
|
1227
|
1 |
1 |
if wantarray |
|
1246
|
2 |
2 |
if $format |
|
1254
|
1 |
3 |
unless $self->{'_apiVersion'} >= 1 |
|
1261
|
0 |
3 |
unless defined $at |
|
1263
|
2 |
1 |
if ($at eq 'rsaEncryption') { } |
|
|
0 |
1 |
elsif ($at eq 'ecPublicKey') { } |
|
|
1 |
0 |
elsif ($at eq 'dsa') { } |
|
1271
|
0 |
2 |
ref $rsa->{'publicExponent'} ? : |
|
1276
|
0 |
0 |
if ($@) |
|
1280
|
0 |
0 |
if $self->{'_dieOnError'} |
|
1288
|
0 |
0 |
if $detail |
|
1292
|
0 |
0 |
if $rv->{'curve'} |
|
1298
|
1 |
0 |
if (exists $self->{'certificationRequestInfo'}{'subjectPKInfo'}{'algorithm'}{'parameters'}) |
|
1309
|
0 |
0 |
if $self->{'_dieOnError'} |
|
1322
|
1 |
0 |
if (exists $self->{'signatureAlgorithm'}{'parameters'}) |
|
1324
|
0 |
1 |
if ($tlen != 0 and $tag != 5) |
|
1338
|
3 |
2 |
if (defined $format and $format == 2) |
|
1339
|
0 |
3 |
if ($self->pkAlgorithm eq 'ecPublicKey') |
|
1345
|
0 |
2 |
if $format |
|
1360
|
0 |
55 |
unless defined $attributes |
|
1369
|
0 |
22 |
if ($self->{'_apiVersion'} < 1) |
|
1371
|
0 |
0 |
unless defined $attributes |
|
1379
|
0 |
22 |
unless (defined $attributes) |
|
1380
|
0 |
0 |
if wantarray |
|
1384
|
5 |
17 |
unless (defined $name) |
|
1390
|
0 |
17 |
if ($name eq 'extensionRequest') |
|
1391
|
0 |
0 |
if wantarray |
|
1400
|
1 |
16 |
unless (@attrs) |
|
1401
|
0 |
1 |
if wantarray |
|
1408
|
16 |
0 |
unless ref $values eq 'ARRAY' |
|
1411
|
5 |
11 |
wantarray ? : |
|
1414
|
5 |
11 |
if wantarray |
|
1416
|
11 |
0 |
if (@values == 1) |
|
1438
|
23 |
20 |
unless ref $hash eq 'HASH' |
|
1442
|
1 |
19 |
if defined $exclude |
|
1444
|
9 |
11 |
if @keys != 1 |
|
1446
|
4 |
7 |
if ref $$hash{$keys[0]} eq 'HASH' |
|
1458
|
10 |
89 |
if (ref $value eq 'ARRAY') |
|
1462
|
9 |
1 |
if @strings > 1 |
|
1465
|
25 |
64 |
if (ref $value eq 'HASH') |
|
1469
|
15 |
10 |
if @strings > 1 |
|
1473
|
10 |
54 |
if $value =~ /^\d+$/ |
|
1477
|
8 |
46 |
if $self->{'_escapeStrings'} |
|
1479
|
44 |
10 |
if $value =~ m(\A[\w!\@$%^&*_=+\[\]\{\}:;|<>./?"'-]+\z) |
|
1488
|
0 |
4 |
unless defined $attributes and exists $attributes->{'extensionRequest'} |
|
1491
|
4 |
0 |
if ($self->{'_apiVersion'} >= 1) |
|
1493
|
10 |
5 |
if exists $variantNames{'$' . $ext} |
|
1505
|
0 |
23 |
unless defined $attributes and exists $attributes->{'extensionRequest'} |
|
1509
|
10 |
13 |
if exists $variantNames{$extensionName} |
|
1512
|
21 |
55 |
if ($entry->{'extnID'} eq $extensionName) |
|
1514
|
1 |
20 |
if ($self->{'_apiVersion'} == 0) { } |
|
1520
|
3 |
17 |
if ($entry->{'_FMT'}) { } |
|
1521
|
2 |
1 |
$format ? : |
|
1524
|
8 |
9 |
if $format |
|
1530
|
10 |
13 |
if $format |
|
1540
|
0 |
6 |
unless defined $attributes and exists $attributes->{'extensionRequest'} |
|
1544
|
4 |
2 |
if exists $variantNames{$extensionName} |
|
1547
|
5 |
13 |
if ($entry->{'extnID'} eq $extensionName) |
|
1548
|
2 |
3 |
if $entry->{'critical'} |
|
1562
|
0 |
0 |
unless $self->{'_apiVersion'} >= 1 |
|
1571
|
0 |
0 |
if ($alg =~ /sha-?(\d+)/i) { } |
|
|
0 |
0 |
elsif ($alg =~ /md-?(\d)/i) { } |
|
1585
|
0 |
0 |
unless defined $keyp->{'keytype'} |
|
1589
|
0 |
0 |
if ($keyp->{'keytype'} eq 'RSA') |
|
1592
|
0 |
0 |
if $@ |
|
1599
|
0 |
0 |
if ($keyp->{'keytype'} eq 'DSA') |
|
1602
|
0 |
0 |
if $@ |
|
1608
|
0 |
0 |
if ($keyp->{'keytype'} eq 'ECC') |
|
1610
|
0 |
0 |
if $@ |
|
1618
|
0 |
0 |
if ($@) |
|
1621
|
0 |
0 |
if $self->{'_dieOnError'} |
|
1624
|
0 |
0 |
if $ok |
|
1628
|
0 |
0 |
if $self->{'_dieOnError'} |
|
1648
|
0 |
11 |
if length $text <= 65 |
|
1662
|
0 |
1 |
unless defined $v and $v == 1 |
|
1666
|
0 |
1 |
unless defined $self |
|
1671
|
0 |
1 |
unless defined $v and $v == 1 |
|
1673
|
0 |
1 |
unless defined $string |
|
1674
|
0 |
1 |
if $at |
|
1685
|
3 |
10 |
if length $_ > $max |
|
1694
|
0 |
1 |
unless $self->attributes |
|
1702
|
0 |
1 |
unless $self->extensions |
|
1705
|
1 |
2 |
$self->extensionPresent($_) == 2 ? : |
|
1707
|
0 |
3 |
$_ eq 'subjectAltName' ? : |
|
1721
|
0 |
4 |
if (not defined $v || defined($v = $self->error)) { } |
|
|
0 |
4 |
elsif (ref $v) { } |
|
1728
|
0 |
1 |
if (exists $kp->{'detail'}) |
|
1732
|
0 |
0 |
if ref $kp->{$_} |
|
1740
|
0 |
1 |
if ($sp) |
|
1744
|
0 |
0 |
if (ref $v) |
|
1745
|
0 |
0 |
if ($v->can('as_hex')) { } |