Filename | /usr/local/lib/perl5/site_perl/mach/5.24/Razor2/Client/Engine.pm |
Statements | Executed 15 statements in 1.98ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1 | 1 | 1 | 2.48ms | 2.81ms | BEGIN@6 | Razor2::Client::Engine::
1 | 1 | 1 | 1.78ms | 10.4ms | BEGIN@8 | Razor2::Client::Engine::
1 | 1 | 1 | 750µs | 5.17ms | BEGIN@7 | Razor2::Client::Engine::
1 | 1 | 1 | 52µs | 62µs | BEGIN@3 | Razor2::Client::Engine::
1 | 1 | 1 | 46µs | 236µs | BEGIN@9 | Razor2::Client::Engine::
1 | 1 | 1 | 38µs | 160µs | BEGIN@5 | Razor2::Client::Engine::
1 | 1 | 1 | 29µs | 176µs | BEGIN@4 | Razor2::Client::Engine::
0 | 0 | 0 | 0s | 0s | compute_engine | Razor2::Client::Engine::
0 | 0 | 0 | 0s | 0s | new | Razor2::Client::Engine::
0 | 0 | 0 | 0s | 0s | supported_engines | Razor2::Client::Engine::
0 | 0 | 0 | 0s | 0s | vr4_signature | Razor2::Client::Engine::
0 | 0 | 0 | 0s | 0s | vr8_signature | Razor2::Client::Engine::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package Razor2::Client::Engine; | ||||
2 | |||||
3 | 2 | 94µs | 2 | 72µs | # spent 62µs (52+10) within Razor2::Client::Engine::BEGIN@3 which was called:
# once (52µs+10µs) by base::import at line 3 # spent 62µs making 1 call to Razor2::Client::Engine::BEGIN@3
# spent 10µs making 1 call to strict::import |
4 | 2 | 82µs | 2 | 322µs | # spent 176µs (29+146) within Razor2::Client::Engine::BEGIN@4 which was called:
# once (29µs+146µs) by base::import at line 4 # spent 176µs making 1 call to Razor2::Client::Engine::BEGIN@4
# spent 146µs making 1 call to Exporter::import |
5 | 2 | 80µs | 2 | 283µs | # spent 160µs (38+122) within Razor2::Client::Engine::BEGIN@5 which was called:
# once (38µs+122µs) by base::import at line 5 # spent 160µs making 1 call to Razor2::Client::Engine::BEGIN@5
# spent 122µs making 1 call to Exporter::import |
6 | 2 | 355µs | 1 | 2.81ms | # spent 2.81ms (2.48+332µs) within Razor2::Client::Engine::BEGIN@6 which was called:
# once (2.48ms+332µs) by base::import at line 6 # spent 2.81ms making 1 call to Razor2::Client::Engine::BEGIN@6 |
7 | 2 | 312µs | 1 | 5.17ms | # spent 5.17ms (750µs+4.42) within Razor2::Client::Engine::BEGIN@7 which was called:
# once (750µs+4.42ms) by base::import at line 7 # spent 5.17ms making 1 call to Razor2::Client::Engine::BEGIN@7 |
8 | 2 | 349µs | 1 | 10.4ms | # spent 10.4ms (1.78+8.65) within Razor2::Client::Engine::BEGIN@8 which was called:
# once (1.78ms+8.65ms) by base::import at line 8 # spent 10.4ms making 1 call to Razor2::Client::Engine::BEGIN@8 |
9 | 2 | 701µs | 2 | 426µs | # spent 236µs (46+190) within Razor2::Client::Engine::BEGIN@9 which was called:
# once (46µs+190µs) by base::import at line 9 # spent 236µs making 1 call to Razor2::Client::Engine::BEGIN@9
# spent 190µs making 1 call to Exporter::import |
10 | |||||
11 | # meant to be inherited | ||||
12 | # | ||||
13 | sub new { | ||||
14 | return {}; | ||||
15 | } | ||||
16 | |||||
17 | |||||
18 | sub supported_engines { | ||||
19 | |||||
20 | my @a = qw( 4 8 ); | ||||
21 | |||||
22 | my $hr = {}; | ||||
23 | foreach (@a) { $hr->{$_} = 1; } | ||||
24 | |||||
25 | return wantarray ? @a : $hr; | ||||
26 | } | ||||
27 | |||||
28 | |||||
29 | sub compute_engine { | ||||
30 | my ($self, $engine, @params) = @_; | ||||
31 | |||||
32 | return $self->vr4_signature(@params) if $engine == 4; | ||||
33 | return $self->vr8_signature(@params) if $engine == 8; | ||||
34 | |||||
35 | $self->log (1,"engine $engine not supported"); | ||||
36 | return; | ||||
37 | } | ||||
38 | |||||
39 | # | ||||
40 | # The following *_signature subroutines should be | ||||
41 | # the same as the ones on the server | ||||
42 | # | ||||
43 | |||||
44 | |||||
45 | # | ||||
46 | # VR4 Engine - Ephemereal signatures of decoded body content | ||||
47 | # | ||||
48 | sub vr4_signature { | ||||
49 | my ($self, $text, $ep4) = @_; | ||||
50 | my ($seed, $separator) = split /-/, $ep4, 2; | ||||
51 | |||||
52 | return $self->log(1,"vr4_signature: Bad ep4: $ep4") unless ($seed && $separator); | ||||
53 | |||||
54 | my $ehash = new Razor2::Signature::Ephemeral (seed => $seed, separator => $separator); | ||||
55 | my $digest = $ehash->hexdigest($$text); | ||||
56 | |||||
57 | my $sig = hextobase64($digest); | ||||
58 | $self->log (11,"engine 4 computing on ". length($$text) .", sig=$sig"); | ||||
59 | return $sig; | ||||
60 | } | ||||
61 | |||||
62 | |||||
63 | sub vr8_signature { | ||||
64 | my ($self, $text) = @_; | ||||
65 | my $vr8 = Razor2::Engine::VR8->new(); | ||||
66 | |||||
67 | my $sigs = $vr8->signature($text); | ||||
68 | |||||
69 | return $sigs; | ||||
70 | } | ||||
71 | |||||
72 | 1 | 8µs | 1; |