line |
!l |
l&&!r |
l&&r |
condition |
108
|
22 |
0 |
22 |
$self->{'extract_sig'} and my(@sig) = _parse_header($self->{'header'}) |
163
|
0 |
0 |
0 |
$self->{'header'} and $self->{'sig'} |
226
|
96 |
0 |
1 |
$sig->{'x'} and $sig->{'x'} < time |
233
|
78 |
0 |
18 |
$txt and !ref($txt) || ref $txt eq 'ARRAY' |
|
77 |
0 |
1 |
exists $self->{'records'}{$dns} and not $txt |
268
|
63 |
2 |
0 |
$v->{'l'} and not $v->{'l'} =~ /^\d{1,76}\z/ |
299
|
42 |
2 |
0 |
defined $v->{'x'} and not $v->{'x'} =~ /^\+?\d{1,12}\z/ |
303
|
0 |
0 |
21 |
$v->{'b'} && ($v->{'b:bin'} = _decode64($v->{'b'})) |
|
0 |
0 |
21 |
$v->{'bh'} && ($v->{'bh:bin'} = _decode64($v->{'bh'})) |
|
21 |
0 |
0 |
$v->{'t'} and not $v->{'t'} =~ /^\d{1,12}\z/ |
310
|
1 |
0 |
0 |
$v->{'t'} and $v->{'x'} < $v->{'t'} |
355
|
0 |
1 |
17 |
$v and %$v |
395
|
0 |
2 |
20 |
ref $sig and $sig->{'h_auto'} |
406
|
120 |
0 |
20 |
exists $oh{$k} and --$oh{$k} == 0 |
415
|
0 |
22 |
0 |
not $sig{'t'} and exists $sig{'t'} |
417
|
21 |
1 |
0 |
$sig{'x'} and $sig{'x'} =~ /^\+(\d+)$/ |
478
|
0 |
0 |
22 |
$dkh =~ /\n([^\n]+)\z/ && length $1 |
495
|
38 |
57 |
1 |
defined $sig->{'bh:computed'} and $sig->{'bh:computed'} ne $sig->{'bh:bin'} |
512
|
17 |
0 |
0 |
$param->{'t'}{'s'} and $sig->{'i:domain'} |
|
0 |
0 |
0 |
$param->{'t'}{'s'} and $sig->{'i:domain'} and $sig->{'i:domain'} ne $sig->{'d'} |
515
|
17 |
0 |
0 |
$param->{'g'} and not $sig->{'i'} =~ /$param->{'g'}/ |
725
|
1 |
0 |
43 |
not $sig->{'error'} and my $digest = $digest{$sig->{'a:hash'}}() |
|
1 |
0 |
43 |
not $sig->{'error'} and my $digest = $digest{$sig->{'a:hash'}}() and my $transform = $bodyc{$sig->{'c:body'}}() |
867
|
0 |
0 |
0 |
defined $self->[3] and $self->[3] ne '' |
line |
l |
!l |
condition |
65
|
0 |
44 |
$args{'dns'} || {} |
75
|
2 |
20 |
$_->{'h'} //= 'from' |
78
|
2 |
20 |
$s->{'h_auto'} //= 1 |
113
|
0 |
22 |
$self->{'sig'} ||= [] |
202
|
0 |
1 |
$sig->{'s'} // 'UNKNOWN' |
|
0 |
1 |
$sig->{'d'} // 'UNKNOWN' |
261
|
22 |
0 |
$v = parse_taglist($v, $error) or return |
265
|
22 |
22 |
$v->{'v'} //= '1' |
268
|
66 |
0 |
$v->{'v'} // '' |
269
|
1 |
0 |
$v->{'v'} || '' |
279
|
43 |
22 |
$v->{'q'} // 'dns/txt' |
287
|
55 |
10 |
$v->{'a'} // 'rsa-sha256' |
288
|
55 |
10 |
$v->{'c'} // 'simple/simple' |
304
|
0 |
0 |
$v->{'b'} || '' |
306
|
0 |
0 |
$v->{'bh'} || '' |
322
|
0 |
0 |
$$error ||= '[i]dentity does not match [d]omain' |
335
|
53 |
12 |
$bodyc ||= 'simple' |
354
|
18 |
0 |
$v = parse_taglist($v, $error) or return |
360
|
17 |
0 |
$v->{'v'} ||= 'DKIM1' |
|
0 |
17 |
$v->{'k'} //= 'rsa' |
375
|
0 |
17 |
$v->{'t'} || '' |
376
|
0 |
17 |
$v->{'h'} || 'sha1:sha256' |
377
|
0 |
17 |
$v->{'s'} || '*' |
400
|
20 |
0 |
$sig->{'h'} || '' |
430
|
178 |
108 |
delete $sig{$_} // (next) |
435
|
22 |
0 |
delete $sig{$_} // (next) |
583
|
37 |
0 |
$sig_prefix{$algo} || die("unsupport digest $algo") |
636
|
149 |
296 |
$kv{$k} ||= [$hdr =~ /^($k:[^\n]*\n(?:[ \t][^\n]*\n)*)/mig] |
639
|
167 |
278 |
pop @$v // '' |
868
|
0 |
0 |
$self->[0]{'d'} // 'unknown' |
882
|
0 |
0 |
$sig->{'s'} || 'UNKNOWN' |
|
0 |
0 |
$sig->{'d'} || 'UNKNOWN' |
line |
l |
!l&&r |
!l&&!r |
condition |
233
|
18 |
0 |
0 |
!ref($txt) || ref $txt eq 'ARRAY' |
333
|
0 |
0 |
0 |
$$error ||= "invalid canonicalization $v->{'c'}" |
337
|
0 |
0 |
0 |
$$error ||= "unsupported algorithm $v->{'a'}" |
378
|
17 |
0 |
0 |
$v->{'s'}{'*'} or $v->{'s'}{'email'} |
417
|
0 |
0 |
0 |
$sig{'t'} || time |
425
|
22 |
0 |
0 |
$sig{'bh:computed'} || $sig{'bh:bin'} |
724
|
41 |
44 |
0 |
$sig->{'bh:collecting'} ||= do {
if (not $sig->{'error'} and my $digest = $digest{$sig->{'a:hash'}}() and my $transform = $bodyc{$sig->{'c:body'}}()) {
+{'digest', $digest, 'transform', $transform, $sig->{'l'} ? ('l', $sig->{'l'}) : (defined $sig->{'l'} ? ('l', \$sig->{'l'}) : ())};
}
else {
+{'done', 1};
}
} |
757
|
0 |
1 |
0 |
$bh->{'_data_after_l'} ||= substr($tbuf, $bh->{'l'}, -$bh->{'l'}, '') =~ /\S/ & 1 |
760
|
0 |
0 |
0 |
$bh->{'_data_after_l'} ||= $tbuf =~ /\S/ & 1 |