public function read($data, array $options = array())
{
if ($data === null) {
return $data;
}
$class = $options['class'];
$currentData = $class::read(null, array('strategies' => false));
if (!isset($currentData['__signature'])) {
throw new MissingSignatureException('HMAC signature not found.');
}
if (String::compare($currentData['__signature'], static::_signature($currentData))) {
return $data;
}
throw new RuntimeException('Possible data tampering: HMAC signature does not match data.');
}