createVerifier()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 2
b 0
f 0
nc 1
nop 0
dl 0
loc 5
ccs 0
cts 2
cp 0
crap 2
rs 10
1
<?php
2
3
if (!function_exists('isEmptyOrNull')) {
4
    function isEmptyOrNull($value): bool
5
    {
6 14
        return is_null($value) || empty($value) || '' === $value;
7
    }
8
}
9
10
if (!function_exists('base64URLEncode')) {
11
    /**
12
     * base64URLEncode
13
     *
14
     * @source https://base64.guru/developers/php/examples/base64url
15
     */
16
    function base64URLEncode(string $string): string
17
    {
18
        // First of all you should encode $data to Base64 string
19 1
        $b64 = base64_encode($string);
20
21
        // Make sure you get a valid result, otherwise, return FALSE, as the base64_encode() function do
22 1
        if ($b64 === false) {
23
            return false;
0 ignored issues
show
Bug Best Practice introduced by
The expression return false returns the type false which is incompatible with the type-hinted return string.
Loading history...
24
        }
25
26
        // Convert Base64 to Base64URL by replacing “+” with “-” and “/” with “_”
27 1
        $url = strtr($b64, '+/', '-_');
28
29
        // Remove padding character from the end of line and return the Base64URL result
30 1
        return rtrim($url, '=');
31
    }
32
}
33
34
if (!function_exists('createVerifier')) {
35
    function createVerifier(): string
36
    {
37
        $random = bin2hex(openssl_random_pseudo_bytes(32));
38
39
        return \base64URLEncode(pack('H*', $random));
40
    }
41
}
42
43
if (!function_exists('createChallenge')) {
44
    function createChallenge(string $verifier): string
45
    {
46
        return \base64URLEncode(pack('H*', hash('sha256', $verifier)));
47
    }
48
}
49