OAuthSignatureMethod_Hmac_Sha1::check_signature()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 9
rs 9.6666
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 4
1
<?php
2
3
namespace Omnipay\Pesapal\OAuth;
4
5
class OAuthSignatureMethod_Hmac_Sha1
6
{
7
    /**
8
     * @return string
9
     */
10
    public function get_name(): string
11
    {
12
        return 'HMAC-SHA1';
13
    }
14
15
    /**
16
     * @param $request
17
     * @param $consumer
18
     * @param $token
19
     *
20
     * @return string
21
     */
22
    public function build_signature(
23
        $request,
24
        $consumer,
25
        $token
26
    ): string {
27
        $base_string = $request->get_signature_base_string();
28
        $request->base_string = $base_string;
29
30
        $key_parts = [
31
            $consumer->secret,
32
            ($token) ? $token->secret : '',
33
        ];
34
35
        $key_parts = OAuthUtil::urlencode_rfc3986($key_parts);
36
        $key = implode('&', $key_parts);
37
38
        return base64_encode(hash_hmac('sha1', $base_string, $key, true));
39
    }
40
41
    /**
42
     * @param $request
43
     * @param $consumer
44
     * @param $token
45
     * @param $signature
46
     *
47
     * @return bool
48
     */
49
    public function check_signature(
50
        &$request,
51
        $consumer,
52
        $token,
53
        $signature
54
    ): bool {
55
        $built = $this->build_signature($request, $consumer, $token);
56
57
        return $built == $signature;
58
    }
59
}
60