]> git.immae.eu Git - github/shaarli/Shaarli.git/blob - tests/utils/ReferenceSessionIdHashes.php
Session ID: extend the regex to match possible hash representations
[github/shaarli/Shaarli.git] / tests / utils / ReferenceSessionIdHashes.php
1 <?php
2 /**
3 * Testing the untestable - Session ID generation
4 */
5 class ReferenceSessionIdHashes
6 {
7 // Session ID hashes
8 protected static $sidHashes = null;
9
10 /**
11 * Generates session ID hashes for all algorithms & bit representations
12 */
13 public static function genAllHashes()
14 {
15 foreach (hash_algos() as $algo) {
16 self::$sidHashes[$algo] = array();
17
18 foreach (array(4, 5, 6) as $bpc) {
19 self::$sidHashes[$algo][$bpc] = self::genSidHash($algo, $bpc);
20 }
21 }
22 }
23
24 /**
25 * Generates a session ID for a given hash algorithm and bit representation
26 *
27 * @param string $function name of the hash function
28 * @param int $bits_per_character representation type
29 *
30 * @return string the generated session ID
31 */
32 protected static function genSidHash($function, $bits_per_character)
33 {
34 if (session_id()) {
35 session_destroy();
36 }
37
38 ini_set('session.hash_function', $function);
39 ini_set('session.hash_bits_per_character', $bits_per_character);
40
41 session_start();
42 return session_id();
43 }
44
45 /**
46 * Returns the reference hash array
47 *
48 * @return array session IDs generated for all available algorithms and bit
49 * representations
50 */
51 public static function getHashes()
52 {
53 return self::$sidHashes;
54 }
55 }