예제 #1
0
    /**
     * @group file
     */
    public function testVerifyFileDualDetachedSignature()
    {
        // {{{ first signature
        $firstSignature = new Crypt_GPG_Signature();
        $firstSignature->setId('T7+toJbsFr8KMTWN+M7lF3xSmmA');
        $firstSignature->setKeyFingerprint('8D2299D9C5C211128B32BBB0C097D9EC94C06363');
        $firstSignature->setKeyId('C097D9EC94C06363');
        $firstSignature->setCreationDate(1221960707);
        $firstSignature->setExpirationDate(0);
        $firstSignature->setValid(true);
        $userId = new Crypt_GPG_UserId();
        $userId->setName('First Keypair Test Key');
        $userId->setComment('do not encrypt important data with this key');
        $userId->setEmail('*****@*****.**');
        $firstSignature->setUserId($userId);
        // }}}
        // {{{ second signature
        $secondSignature = new Crypt_GPG_Signature();
        $secondSignature->setId('HJd1yvMbEbW5facuxkDtvwymKrw');
        $secondSignature->setKeyFingerprint('880922DBEA733E906693E4A903CC890AFA1DAD4B');
        $secondSignature->setKeyId('03CC890AFA1DAD4B');
        $secondSignature->setCreationDate(1221960707);
        $secondSignature->setExpirationDate(0);
        $secondSignature->setValid(true);
        $userId = new Crypt_GPG_UserId();
        $userId->setName('Second Keypair Test Key');
        $userId->setComment('do not encrypt important data with this key');
        $userId->setEmail('*****@*****.**');
        $secondSignature->setUserId($userId);
        // }}}
        // {{{ signature data
        $signatureData = <<<TEXT
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQBI1aQDwJfZ7JTAY2MRAvkzAKDPnJ030GdYE15mE8smz2oV7zYziwCeJFxf
UaTrAgP1Dck9DhHOBhvhwLuIPwMFAEjVpAMDzIkK+h2tSxEC+TMAn38yx3mXk6wP
JaPThD7lRVE9ve57AJ0Yy7JwiT9sGXomln4JtRvuSpGtsg==
=Gw9D
-----END PGP SIGNATURE-----

TEXT;
        // }}}
        $expectedSignatures = array($firstSignature, $secondSignature);
        $filename = $this->getDataFilename('testFileMedium.plain');
        $signatures = $this->gpg->verifyFile($filename, $signatureData);
        $this->assertSignaturesEquals($expectedSignatures, $signatures);
    }
예제 #2
0
 /**
  * @group fluent
  */
 public function testFluentInterface()
 {
     $signature = new Crypt_GPG_Signature();
     $returnedSignature = $signature->setId('KuhELanvhPRXozEjFWb2mam1q20');
     $this->assertEquals($signature, $returnedSignature, 'Failed asserting fluent interface works for setId() method.');
     $signature = new Crypt_GPG_Signature();
     $returnedSignature = $signature->setKeyFingerprint('8D2299D9C5C211128B32BBB0C097D9EC94C06363');
     $this->assertEquals($signature, $returnedSignature, 'Failed asserting fluent interface works for setKeyFingerprint() ' . 'method.');
     $signature = new Crypt_GPG_Signature();
     $returnedSignature = $signature->setKeyId('0C097D9EC94C06363');
     $this->assertEquals($signature, $returnedSignature, 'Failed asserting fluent interface works for setKeyId() method');
     $signature = new Crypt_GPG_Signature();
     $returnedSignature = $signature->setCreationDate(1234567890);
     $this->assertEquals($signature, $returnedSignature, 'Failed asserting fluent interface works for setCreationDate() ' . 'method.');
     $signature = new Crypt_GPG_Signature();
     $returnedSignature = $signature->setExpirationDate(1234567890);
     $this->assertEquals($signature, $returnedSignature, 'Failed asserting fluent interface works for setExpirationDate() ' . 'method.');
     $signature = new Crypt_GPG_Signature();
     $returnedSignature = $signature->setValid(true);
     $this->assertEquals($signature, $returnedSignature, 'Failed asserting fluent interface works for setValid() method.');
     $signature = new Crypt_GPG_Signature();
     $returnedSignature = $signature->setUserId(new Crypt_GPG_UserId());
     $this->assertEquals($signature, $returnedSignature, 'Failed asserting fluent interface works for setUserId() method.');
 }
예제 #3
0
 /**
  * @group file
  */
 public function testDecryptVerifyFileSignedOnly()
 {
     // {{{ signature
     $signature = new Crypt_GPG_Signature();
     $signature->setId('vctnI/HnsRYmqcVwCJcJhS60lKU');
     $signature->setKeyFingerprint('8D2299D9C5C211128B32BBB0C097D9EC94C06363');
     $signature->setKeyId('C097D9EC94C06363');
     $signature->setCreationDate(1221960707);
     $signature->setExpirationDate(0);
     $signature->setValid(true);
     $userId = new Crypt_GPG_UserId();
     $userId->setName('First Keypair Test Key');
     $userId->setComment('do not encrypt important data with this key');
     $userId->setEmail('*****@*****.**');
     $signature->setUserId($userId);
     // }}}
     $expectedMd5Sum = 'f96267d87551ee09bfcac16921e351c1';
     $expectedResults = array('data' => null, 'signatures' => array($signature));
     $inputFilename = $this->getDataFilename('testVerifyFileNormalSignedData.asc');
     $outputFilename = $this->getTempFilename('testDecryptVerifyFileSignedData.plain');
     $results = $this->gpg->decryptAndVerifyFile($inputFilename, $outputFilename);
     $this->assertDecryptAndVerifyResultsEquals($expectedResults, $results);
     $md5Sum = $this->getMd5Sum($outputFilename);
     $this->assertEquals($expectedMd5Sum, $md5Sum);
 }