Filename | /usr/local/lib/perl5/site_perl/mach/5.32/Crypt/OpenSSL/X509.pm |
Statements | Executed 1 statements in 14µs |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1 | 1 | 1 | 17µs | 20µs | END | Crypt::OpenSSL::X509::
1 | 1 | 1 | 2µs | 2µs | __X509_cleanup (xsub) | Crypt::OpenSSL::X509::
0 | 0 | 0 | 0s | 0s | BEGIN@3 | Crypt::OpenSSL::X509::
0 | 0 | 0 | 0s | 0s | BEGIN@4 | Crypt::OpenSSL::X509::
0 | 0 | 0 | 0s | 0s | BEGIN@6 | Crypt::OpenSSL::X509::
0 | 0 | 0 | 0s | 0s | BEGIN@7 | Crypt::OpenSSL::X509::
0 | 0 | 0 | 0s | 0s | BEGIN@86 | Crypt::OpenSSL::X509::
0 | 0 | 0 | 0s | 0s | extKeyUsage | Crypt::OpenSSL::X509::Extension::
0 | 0 | 0 | 0s | 0s | hash_bit_string | Crypt::OpenSSL::X509::Extension::
0 | 0 | 0 | 0s | 0s | is_critical | Crypt::OpenSSL::X509::Extension::
0 | 0 | 0 | 0s | 0s | __ANON__ (xsub) | Crypt::OpenSSL::X509::
0 | 0 | 0 | 0s | 0s | has_extension_oid | Crypt::OpenSSL::X509::
0 | 0 | 0 | 0s | 0s | is_selfsigned | Crypt::OpenSSL::X509::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package Crypt::OpenSSL::X509; | ||||
2 | |||||
3 | use warnings; | ||||
4 | use strict; | ||||
5 | |||||
6 | use Exporter; | ||||
7 | use base qw(Exporter); | ||||
8 | |||||
9 | our $VERSION = '1.908'; | ||||
10 | |||||
11 | our @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 | |||||
16 | sub 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 | |||||
27 | sub 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 | ||||
35 | sub 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 | |||||
72 | sub Crypt::OpenSSL::X509::Extension::extKeyUsage { | ||||
73 | my $ext = shift; | ||||
74 | |||||
75 | my @vals = split(/ /, $ext->extendedKeyUsage); | ||||
76 | |||||
77 | return @vals; | ||||
78 | } | ||||
79 | |||||
80 | sub Crypt::OpenSSL::X509::is_selfsigned { | ||||
81 | my $x509 = shift; | ||||
82 | |||||
83 | return $x509->subject eq $x509->issuer; | ||||
84 | } | ||||
85 | |||||
86 | use XSLoader; | ||||
87 | XSLoader::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 | ||||
90 | 1 | 14µs | 1 | 2µs | __PACKAGE__->__X509_cleanup; # spent 2µs making 1 call to Crypt::OpenSSL::X509::__X509_cleanup |
91 | } | ||||
92 | |||||
93 | 1; | ||||
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 |