Condition Coverage

blib/lib/Crypt/JWT.pm
Criterion Covered Total %
condition 102 208 49.0


and 3 conditions

line !l l&&!r l&&r condition
70 0 0 0 defined $str and not ref $str
126 285 0 15 ref $key eq "HASH" and $key->{'k'}
0 0 15 ref $key eq "HASH" and $key->{'k'} and $key->{'kty'}
0 0 15 ref $key eq "HASH" and $key->{'k'} and $key->{'kty'} and $key->{'kty'} eq "oct"
137 0 0 4 defined $kid and defined $alg
138 0 2 2 $kid_keys and not ref $kid_keys
141 0 0 4 exists $kid_keys->{'keys'} and ref $kid_keys->{'keys'} eq "ARRAY"
160 0 4 0 $has_oct and $has_asym
163 0 0 8 $_->{'kid'} and $_->{'kty'}
0 4 4 $_->{'kid'} and $_->{'kty'} and $_->{'kid'} eq $kid
172 0 0 0 $kid_keys->{$kid} and not ref $kid_keys->{$kid}
175 0 0 4 $found->{'kty'} eq "oct" and $alg =~ /^(HS|dir|PBES2-HS|A)/
176 0 0 0 $found->{'kty'} eq "OKP" and $alg =~ /^(EdDSA|ECDH-ES)/
177 0 0 0 $found->{'kty'} eq "EC" and $alg =~ /^(ES|EC)/
178 0 0 0 $found->{'kty'} eq "RSA" and $alg =~ /^(RS|PS)/
237 34 10 0 defined $key->{'use'} and $key->{'use'} ne $expected_use
255 27 17 0 ($key->{'kty'} || '') eq "EC" and defined $key->{'alg'}
44 0 0 ($key->{'kty'} || '') eq "EC" and defined $key->{'alg'} and defined $key->{'crv'}
302 0 2 2 defined $value and $value eq $check
330 1571 4 2 defined $args{"verify_$claim"} and $args{"verify_$claim"} != 0
341 41 0 0 $args{'verify_exp'} and $args{'verify_exp'} == 1
352 59 0 0 $args{'verify_nbf'} and $args{'verify_nbf'} == 1
364 0 0 0 $args{'verify_iat'} and $args{'verify_iat'} == 1
391 0 4 5 defined $value and $value eq $check
417 0 3 6 defined $value and $value eq $check
482 230 14 83 defined $decode_payload and $decode_payload == 0
525 26 0 0 &looks_like_number($hdr->{'p2s'}) && $hdr->{'p2s'} >= 8 && $hdr->{'p2s'} <= 9999
567 0 0 49 &looks_like_number($p2c) and $p2c >= 1
0 0 49 &looks_like_number($p2c) and $p2c >= 1 and $p2c <= $MAX_PBES2_ITER
700 0 197 0 $b64u_header and not $header
701 30 167 0 $b64u_ecek and not $ecek
702 0 197 0 $b64u_ct and not $ct
703 0 197 0 $b64u_iv and not $iv
704 0 197 0 $b64u_tag and not $tag
724 2 171 18 defined $header->{'alg'} && $header->{'alg'} eq 'dir'
780 0 135 0 $b64u_sig and not $sig
820 40 2 1 $alg eq "none" and not $args{'allow_none'}
835 40 2 0 not $args{'key'} and $alg ne "none"
845 0 144 0 $b64u_header and not $header
851 138 4 1 $alg eq "none" and not $args{'allow_none'}
852 138 0 4 $alg eq "none" and defined $b64u_sig
138 4 0 $alg eq "none" and defined $b64u_sig and length $b64u_sig > 0
875 0 0 1 $alg =~ /^(RS|PS|ES)/ and $k->{'kty'} =~ /^(RSA|EC)$/
887 1 135 0 $b64u_payload and not $payload
960 140 0 195 defined $5 and length $5 > 0
971 2 0 4 defined $hash->{'payload'} and $hash->{'protected'}
0 2 0 $hash->{'ciphertext'} and $hash->{'protected'}

or 2 conditions

line l !l condition
157 8 0 $k->{'kty'} || ''
158 8 0 $k->{'kty'} || ''
255 43 1 $key->{'kty'} || ''
337 5 94 $args{'leeway'} || 0
900 0 160 $args{'serialization'} || 'compact'

or 3 conditions

line l !l&&r !l&&!r condition
55 12 37 0 ref $key eq "HASH" or ref $key eq "SCALAR"
86 9 3 0 ref $key eq "HASH" or ref $key eq "SCALAR"
97 2 2 0 ref $key eq "HASH" or ref $key eq "SCALAR"
110 10 2 0 ref $key eq "HASH" or ref $key eq "SCALAR"
112 10 2 0 eval { do { 'Crypt::PK::ECC'->new($key) } } || eval { do { 'Crypt::PK::X25519'->new($key) } }
117 0 0 0 eval { do { 'Crypt::PK::ECC'->new(@$key) } } || eval { do { 'Crypt::PK::X25519'->new(@$key) } }
246 0 0 0 $found ||= $ops{$_}
317 0 0 79 not defined $value or ref $value
0 3 76 not defined $value or ref $value or not "$value" =~ /\A(?:0|[1-9][0-9]*)(?:\.[0-9]+)?\z/
342 38 5 15 not defined $args{'verify_exp'} or $args{'verify_exp'} == 1
353 30 1 1 not defined $args{'verify_nbf'} or $args{'verify_nbf'} == 1
365 1 4 1 not defined $args{'verify_iat'} or $args{'verify_iat'} == 1
874 0 0 1 not defined $k or ref $k ne "HASH"
0 0 1 not defined $k or ref $k ne "HASH" or not defined $k->{'kty'}
876 0 0 1 $k->{'d'} or $k->{'p'}
0 0 1 $k->{'d'} or $k->{'p'} or $k->{'q'}
0 0 1 $k->{'d'} or $k->{'p'} or $k->{'q'} or $k->{'dp'}
0 0 1 $k->{'d'} or $k->{'p'} or $k->{'q'} or $k->{'dp'} or $k->{'dq'}
0 0 1 $k->{'d'} or $k->{'p'} or $k->{'q'} or $k->{'dp'} or $k->{'dq'} or $k->{'qi'}