public function calculateDigest($digestAlgorithm, $data, $encode = true)
{
switch ($digestAlgorithm) {
case XMLSecurityDSig::SHA1:
$alg = 'sha1';
break;
case XMLSecurityDSig::SHA256:
$alg = 'sha256';
break;
case XMLSecurityDSig::SHA384:
$alg = 'sha384';
break;
case XMLSecurityDSig::SHA512:
$alg = 'sha512';
break;
case XMLSecurityDSig::RIPEMD160:
$alg = 'ripemd160';
break;
default:
throw new Exception("Cannot validate digest: Unsupported Algorithm <{$digestAlgorithm}>");
}
$digest = hash($alg, $data, true);
if ($encode) {
$digest = base64_encode($digest);
}
return $digest;
}