private static function _validateSignature($signatureString, $payload)
{
$signaturePairs = preg_split("/&/", $signatureString);
$signature = self::_matchingSignature($signaturePairs);
if (!$signature) {
throw new Exception\InvalidSignature("no matching public key");
}
if (!(self::_payloadMatches($signature, $payload) || self::_payloadMatches($signature, $payload . "\n"))) {
throw new Exception\InvalidSignature("signature does not match payload - one has been modified");
}
}