… | |
… | |
551 | if ($ber->[BER_FLAGS]) { |
551 | if ($ber->[BER_FLAGS]) { |
552 | printf "$indent%-16.16s %-6.6s CONSTRUCTED\n", $tag, lc $type; |
552 | printf "$indent%-16.16s %-6.6s CONSTRUCTED\n", $tag, lc $type; |
553 | &_ber_dump ($_, $profile, "$indent| ") |
553 | &_ber_dump ($_, $profile, "$indent| ") |
554 | for @$data; |
554 | for @$data; |
555 | } else { |
555 | } else { |
556 | if ($data =~ y/\x20-\x7e//c > 10 or $data =~ /\x00./s) { |
556 | if ($data =~ y/\x20-\x7e//c / length $data > 0.2 or $data =~ /\x00./s) { |
557 | # assume binary |
557 | # assume binary |
558 | $data = unpack "H*", $data; |
558 | $data = unpack "H*", $data; |
559 | substr $data, 40, 1e9, "..." if 40 < length $data; |
559 | substr $data, 40, 1e9, "..." if 40 < length $data; |
560 | } else { |
560 | } else { |
561 | $data =~ s/[^\x20-\x7e]/./g; |
561 | $data =~ s/[^\x20-\x7e]/./g; |