/**
*/
public function verify($msg, $key)
{
$verify = new OpenPGP_Crypt_RSA($key->message);
$pkey = $verify->key();
switch ($pkey->algorithm) {
case 1:
case 2:
case 3:
// RSA
return $verify->verify($msg->message);
case 17:
// DSA
$dsa = new Horde_Pgp_Crypt_DSA($pkey);
$verifier = function ($m, $s) use($dsa) {
return $dsa->verify($m, Horde_String::lower($s->hash_algorithm_name()), new Math_BigInteger($s->data[0], 256), new Math_BigInteger($s->data[1], 256));
};
return $msg->message->verified_signatures(array('DSA' => array('MD5' => $verifier, 'SHA1' => $verifier, 'SHA224' => $verifier, 'SHA256' => $verifier, 'SHA384' => $verifier, 'SHA512' => $verifier)));
}
throw new RuntimeException();
}