public static function verify_wsse($data, $anyverb = false)
{
$pass = true;
if ($anyverb || $_SERVER['REQUEST_METHOD'] == 'POST') {
if ($data instanceof ActionHandler) {
$extract = $data->handler_vars->filter_keys('nonce', 'timestamp', 'digest');
} elseif ($data instanceof SuperGlobal) {
$extract = $data->filter_keys('nonce', 'timestamp', 'digest');
} elseif (is_array($data)) {
$extract = array_intersect_key($data, array('nonce' => 1, 'timestamp' => 1, 'digest' => 1));
} else {
$extract = array('nonce' => 1, 'timestamp' => 1, 'digest' => 1);
}
foreach ($extract as $key => $value) {
${$key} = $value;
}
if (empty($nonce) || empty($timestamp) || empty($digest)) {
$pass = false;
}
if ($pass == true) {
$check = self::WSSE($nonce, $timestamp);
if ($digest != $check['digest']) {
$pass = false;
}
}
}
return $pass;
}