function verify($packet) { $self = $this; // For old PHP if (!is_object($packet)) { $packet = OpenPGP_Message::parse($packet); } if (!$this->message) { $m = $packet; $verifier = function ($m, $s) use($self) { $key = $self->public_key($s->issuer()); if (!$key) { return false; } $key->setHash(strtolower($s->hash_algorithm_name())); return $key->verify($m, reset($s->data)); }; } else { if (!$packet instanceof Crypt_RSA) { $packet = new self($packet); } $m = $this->message; $verifier = function ($m, $s) use($self, $packet) { if (!$packet instanceof Crypt_RSA) { $key = $packet->public_key($s->issuer()); } if (!$key) { return false; } $key->setHash(strtolower($s->hash_algorithm_name())); return $key->verify($m, reset($s->data)); }; } return $m->verified_signatures(array('RSA' => array('MD5' => $verifier, 'SHA1' => $verifier, 'SHA224' => $verifier, 'SHA256' => $verifier, 'SHA384' => $verifier, 'SHA512' => $verifier))); }