ParagonIE\GPGMailer\GPGMailer::sign PHP Method

sign() public method

Sign a message (but don't encrypt)
public sign ( Message $message ) : Message
$message Message
return Message
    public function sign(Message $message) : Message
    {
        if (!$this->serverKeyFingerprint) {
            throw new \Exception('No signing key provided');
        }
        $gnupg = new \Crypt_GPG($this->options);
        $gnupg->addSignKey($this->serverKeyFingerprint);
        $message->setBody($gnupg->sign($message->getBodyText(), \Crypt_GPG::SIGN_MODE_CLEAR, true));
        return $message;
    }

Usage Example

Beispiel #1
0
 /**
  * @covers GPGMailer::sign()
  * @covers GPGMailer::verify()
  */
 public function testSignedMessage()
 {
     // First, create a Zend\Mail message as usual:
     $message = new Message();
     $message->addTo('*****@*****.**', 'GPGMailer Test Email');
     $message->setBody('Cleartext for now. We are going to sign this.');
     $privateKey = file_get_contents(__DIR__ . '/private.key');
     // Instantiate GPGMailer:
     $gpgMailer = new GPGMailer(new File(), ['homedir' => '~'], $privateKey);
     $publicKey = file_get_contents(__DIR__ . '/public.key');
     $signature = $gpgMailer->sign($message);
     $this->assertTrue(\strpos($signature->getBodyText(), '-----BEGIN PGP SIGNATURE-----') !== false);
     $fingerprint = $gpgMailer->import($publicKey);
     $this->assertTrue($gpgMailer->verify($signature, $fingerprint));
 }