← Index
NYTProf Performance Profile   « line view »
For /usr/local/libexec/sympa/task_manager-debug.pl
  Run on Tue Jun 1 22:32:51 2021
Reported on Tue Jun 1 22:35:11 2021

Filename/usr/local/lib/perl5/site_perl/mach/5.32/Crypt/OpenSSL/X509.pm
StatementsExecuted 1 statements in 14µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11117µs20µsCrypt::OpenSSL::X509::::END Crypt::OpenSSL::X509::END
1112µs2µsCrypt::OpenSSL::X509::::__X509_cleanup Crypt::OpenSSL::X509::__X509_cleanup (xsub)
0000s0sCrypt::OpenSSL::X509::::BEGIN@3 Crypt::OpenSSL::X509::BEGIN@3
0000s0sCrypt::OpenSSL::X509::::BEGIN@4 Crypt::OpenSSL::X509::BEGIN@4
0000s0sCrypt::OpenSSL::X509::::BEGIN@6 Crypt::OpenSSL::X509::BEGIN@6
0000s0sCrypt::OpenSSL::X509::::BEGIN@7 Crypt::OpenSSL::X509::BEGIN@7
0000s0sCrypt::OpenSSL::X509::::BEGIN@86 Crypt::OpenSSL::X509::BEGIN@86
0000s0sCrypt::OpenSSL::X509::Extension::::extKeyUsageCrypt::OpenSSL::X509::Extension::extKeyUsage
0000s0sCrypt::OpenSSL::X509::Extension::::hash_bit_stringCrypt::OpenSSL::X509::Extension::hash_bit_string
0000s0sCrypt::OpenSSL::X509::Extension::::is_criticalCrypt::OpenSSL::X509::Extension::is_critical
0000s0sCrypt::OpenSSL::X509::::__ANON__ Crypt::OpenSSL::X509::__ANON__ (xsub)
0000s0sCrypt::OpenSSL::X509::::has_extension_oid Crypt::OpenSSL::X509::has_extension_oid
0000s0sCrypt::OpenSSL::X509::::is_selfsigned Crypt::OpenSSL::X509::is_selfsigned
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Crypt::OpenSSL::X509;
2
3use warnings;
4use strict;
5
6use Exporter;
7use base qw(Exporter);
8
9our $VERSION = '1.908';
10
11our @EXPORT_OK = qw(
12 FORMAT_UNDEF FORMAT_ASN1 FORMAT_TEXT FORMAT_PEM
13 FORMAT_PKCS12 FORMAT_SMIME FORMAT_ENGINE FORMAT_IISSGC OPENSSL_VERSION_NUMBER
14);
15
16sub Crypt::OpenSSL::X509::has_extension_oid {
17 my $x509 = shift;
18 my $oid = shift;
19
20 if (not $Crypt::OpenSSL::X509::exts_by_oid) {
21 $Crypt::OpenSSL::X509::exts_by_oid = $x509->extensions_by_oid;
22 }
23
24 return $$Crypt::OpenSSL::X509::exts_by_oid{$oid} ? 1 : 0;
25}
26
27sub Crypt::OpenSSL::X509::Extension::is_critical {
28 my $ext = shift;
29 my $crit = $ext->critical();
30
31 return $crit ? 1 : 0;
32}
33
34# return a hash for the values of keyUsage or nsCertType
35sub Crypt::OpenSSL::X509::Extension::hash_bit_string {
36 my $ext = shift;
37
38 my @bits = split(//, $ext->bit_string);
39 my $len = @bits;
40
41 my %bit_str_hash = ();
42
43 if ($len == 9) { # bits for keyUsage
44
45 %bit_str_hash = (
46 'Digital Signature' => $bits[0],
47 'Non Repudiation' => $bits[1],
48 'Key Encipherment' => $bits[2],
49 'Data Encipherment' => $bits[3],
50 'Key Agreement' => $bits[4],
51 'Certificate Sign' => $bits[5],
52 'CRL Sign' => $bits[6],
53 'Encipher Only' => $bits[7],
54 'Decipher Only' => $bits[8],);
55
56 } elsif ($len == 8) { #bits for nsCertType
57
58 %bit_str_hash = (
59 'SSL Client' => $bits[0],
60 'SSL Server' => $bits[1],
61 'S/MIME' => $bits[2],
62 'Object Signing' => $bits[3],
63 'Unused' => $bits[4],
64 'SSL CA' => $bits[5],
65 'S/MIME CA' => $bits[6],
66 'Object Signing CA' => $bits[7],);
67 }
68
69 return %bit_str_hash;
70}
71
72sub Crypt::OpenSSL::X509::Extension::extKeyUsage {
73 my $ext = shift;
74
75 my @vals = split(/ /, $ext->extendedKeyUsage);
76
77 return @vals;
78}
79
80sub Crypt::OpenSSL::X509::is_selfsigned {
81 my $x509 = shift;
82
83 return $x509->subject eq $x509->issuer;
84}
85
86use XSLoader;
87XSLoader::load 'Crypt::OpenSSL::X509', $VERSION;
88
89
# spent 20µs (17+2) within Crypt::OpenSSL::X509::END which was called: # once (17µs+2µs) by main::RUNTIME at line 0 of /usr/local/libexec/sympa/task_manager-debug.pl
END {
90114µs12µs __PACKAGE__->__X509_cleanup;
# spent 2µs making 1 call to Crypt::OpenSSL::X509::__X509_cleanup
91}
92
931;
94
95__END__
 
# spent 2µs within Crypt::OpenSSL::X509::__X509_cleanup which was called: # once (2µs+0s) by Crypt::OpenSSL::X509::END at line 90
sub Crypt::OpenSSL::X509::__X509_cleanup; # xsub