function _readTestCases($test_file_name, $digest_len) { $lines = Tests_Auth_OpenID_readlines($test_file_name); $cases = array(); $case = array(); foreach ($lines as $line) { if ($line[0] == "#") { continue; } // Blank line separates test cases if ($line == "\n") { $cases[] = $case; $case = array(); } else { $match = array(); $pat = '/^([a-z0-9_-]+) =\\s+(.*?)\\n$/'; if (!preg_match($pat, $line, $match)) { trigger_error("Bad test input: {$line}", E_USER_ERROR); } $c = count($match); if ($c != 3) { trigger_error("Wrong number of elements in parsed case: {$c}", E_USER_ERROR); return false; } $key = $match[1]; $value = $match[2]; $case[$key] = $value; } } if (count($case)) { $cases[] = $case; } $final = array(); // Normalize strings and check data integrity foreach ($cases as $case) { $clean = array(); $clean["key"] = Tests_Auth_OpenID_HMAC::_strConvert($case["key"]); if (defined(@$case["key_len"])) { if (Auth_OpenID::bytes($clean["key"]) != $case["key_len"]) { trigger_error("Bad key length", E_USER_ERROR); } } $clean["data"] = Tests_Auth_OpenID_HMAC::_strConvert($case["data"]); if (defined(@$case["data_len"])) { if (Auth_OpenID::bytes($clean["data"]) != $case["data_len"]) { trigger_error("Bad data length", E_USER_ERROR); } } $clean["digest"] = Tests_Auth_OpenID_HMAC::_strConvert($case["digest"]); if (Auth_OpenID::bytes($clean["digest"]) != $digest_len) { $l = Auth_OpenID::bytes($clean["digest"]); trigger_error("Bad digest length: {$l}", E_USER_ERROR); } $clean['test_case'] = $case['test_case']; $final[] = $clean; } return $final; }
function _readTestCases() { $lines = Tests_Auth_OpenID_readlines('urinorm.txt'); $cases = array(); $case = array(); for ($i = 0; $i < count($lines) && $i + 3 <= count($lines); $i += 4) { $name = trim($lines[$i]); $uri = trim($lines[$i + 1]); $expected = trim($lines[$i + 2]); if ($expected == 'fail') { $expected = null; } $cases[] = array($name, $uri, $expected); } return $cases; }
function _readExchTestCases() { $lines = Tests_Auth_OpenID_readlines('dhexch'); $cases = array(); foreach ($lines as $line) { $case = array(); if (!preg_match('/^(\\d+) (\\d+) (\\d+)\\n$/', $line, $case)) { trigger_error("Bad test input: {$line}", E_USER_ERROR); } $c = count($case); if ($c != 4) { trigger_error("Wrong number of elements in parsed case: {$c}", E_USER_ERROR); } array_shift($case); $cases[] = $case; } return $cases; }
function _parseBase64Data() { $lines = Tests_Auth_OpenID_readlines('n2b64'); $data = array(); foreach ($lines as $line) { $line = trim($line); if (!$line) { continue; } list($b64, $ascii) = explode(' ', $line); $data[$b64] = $ascii; } return $data; }