コード例 #1
0
 public function testReturnsExpectedVerificationResult()
 {
     $verificationData = ['summary' => 128, 'fingerprint' => 'foo'];
     $this->gnupg->verify('foo', 'bar')->willReturn([$verificationData]);
     $verifier = new GnupgSignatureVerifier($this->gnupg->reveal(), $this->keyservice->reveal());
     $actual = $verifier->verify('foo', 'bar');
     $expected = new GnupgVerificationResult($verificationData);
     $this->assertEquals($expected, $actual);
 }
コード例 #2
0
 /**
  * @param string $message
  * @param string $signature
  *
  * @return GnupgVerificationResult
  * @throws VerificationFailedException
  */
 public function verify($message, $signature)
 {
     try {
         $result = new GnupgVerificationResult($this->gpg->verify($message, $signature)[0]);
         if (!$result->wasVerificationSuccessful() && !$result->isKnownKey()) {
             $this->keyService->importKey($result->getFingerprint(), $this->keyService->downloadKey($result->getFingerprint()));
         }
         return new GnupgVerificationResult($this->gpg->verify($message, $signature)[0]);
     } catch (\Exception $e) {
         throw new VerificationFailedException($e->getMessage(), $e->getCode(), $e);
     }
 }
コード例 #3
0
ファイル: Factory.php プロジェクト: Flyingmana/phive
 /**
  * @return \Gnupg
  */
 private function getGnupg()
 {
     $home = $this->getConfig()->getHomeDirectory()->child('gpg');
     if (extension_loaded('gnupg')) {
         putenv('GNUPGHOME=' . $home);
         $gpg = new \Gnupg();
         $gpg->seterrormode(\Gnupg::ERROR_EXCEPTION);
     } else {
         $gpg = new GnuPG($this->getConfig()->getGPGBinaryPath(), $home);
         if (!class_exists('\\Gnupg')) {
             class_alias(GnuPG::class, '\\Gnupg');
         }
     }
     return $gpg;
 }
コード例 #4
0
 /**
  * @param string $key
  *
  * @return KeyImportResult|void
  */
 public function importKey($key)
 {
     $result = $this->gnupg->import($key);
     return new KeyImportResult($result['imported'], isset($result['fingerprint']) ? $result['fingerprint'] : null);
 }