Mercurial > hg > rc1
view vendor/pear/crypt_gpg/tests/KeyGeneratorTest.php @ 0:1e000243b222
vanilla 1.3.3 distro, I hope
author | Charlie Root |
---|---|
date | Thu, 04 Jan 2018 15:50:29 -0500 |
parents | |
children |
line wrap: on
line source
<?php /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ /** * Key generation tests for the Crypt_GPG package. * * These tests require the PHPUnit 3.6 or greater package to be installed. * PHPUnit is installable using PEAR. See the * {@link http://www.phpunit.de/manual/3.6/en/installation.html manual} * for detailed installation instructions. * * To run these tests, use: * <code> * $ phpunit KeyGeneratorTestCase * </code> * * LICENSE: * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of the * License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, see * <http://www.gnu.org/licenses/> * * @category Encryption * @package Crypt_GPG * @author Michael Gauthier <mike@silverorange.com> * @copyright 2005-2011 silverorange * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @version CVS: $Id: GetKeysTestCase.php 274158 2009-01-22 06:33:54Z gauthierm $ * @link http://pear.php.net/package/Crypt_GPG */ /** * Base test case. */ require_once 'TestCase.php'; /** * The Crypt_GPG class to test */ require_once 'Crypt/GPG/KeyGenerator.php'; /** * Tests key generation of Crypt_GPG. * * @category Encryption * @package Crypt_GPG * @author Michael Gauthier <mike@silverorange.com> * @copyright 2005-2011 silverorange * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 * @link http://pear.php.net/package/Crypt_GPG */ class KeyGeneratorTestCase extends Crypt_GPG_TestCase { // helper methods // {{{ assertKeyEquals() protected function assertKeyEquals( Crypt_GPG_Key $key1, Crypt_GPG_Key $key2 ) { $userIds1 = $key1->getUserIds(); $userIds2 = $key2->getUserIds(); $userId1 = $userIds1[0]; $userId2 = $userIds2[0]; $subKeys1 = $key1->getSubKeys(); $subKeys2 = $key2->getSubKeys(); $subKeyA1 = $subKeys1[0]; $subKeyB1 = $subKeys1[1]; $subKeyA2 = $subKeys2[0]; $subKeyB2 = $subKeys2[1]; $this->assertEquals( $userId1->getName(), $userId2->getName(), 'User id names do not match.' ); $this->assertEquals( $userId1->getEmail(), $userId2->getEmail(), 'User id email addresses do not match.' ); $this->assertEquals( $userId1->getComment(), $userId2->getComment(), 'User id comments do not match.' ); $this->assertEquals( $subKeyA1->getAlgorithm(), $subKeyA2->getAlgorithm(), 'Primary key algorithms do not match.' ); $this->assertEquals( $subKeyA1->getLength(), $subKeyA2->getLength(), 'Primary key lengths do not match.' ); $this->assertEquals( $subKeyA1->getExpirationDate(), $subKeyA2->getExpirationDate(), 'Primary key expiration dates do not match.' ); $this->assertEquals( $subKeyA1->canSign(), $subKeyA2->canSign(), 'Primary key signing abilities do not match.' ); $this->assertEquals( $subKeyA1->canEncrypt(), $subKeyA2->canEncrypt(), 'Primary key encrypting abilities do not match.' ); $this->assertEquals( $subKeyA1->hasPrivate(), $subKeyA2->hasPrivate(), 'Primary key private keys do not match.' ); $this->assertEquals( $subKeyB1->getAlgorithm(), $subKeyB2->getAlgorithm(), 'Secondary key algorithms do not match.' ); $this->assertEquals( $subKeyB1->getLength(), $subKeyB2->getLength(), 'Secondary key lengths do not match.' ); $this->assertEquals( $subKeyB1->getExpirationDate(), $subKeyB2->getExpirationDate(), 'Secondary key expiration dates do not match.' ); $this->assertEquals( $subKeyB1->canSign(), $subKeyB2->canSign(), 'Secondary key signing abilities do not match.' ); $this->assertEquals( $subKeyB1->canEncrypt(), $subKeyB2->canEncrypt(), 'Secondary key encrypting abilities do not match.' ); $this->assertEquals( $subKeyB1->hasPrivate(), $subKeyB2->hasPrivate(), 'Secondary key private keys do not match.' ); } // }}} // {{{ setUp() public function setUp() { parent::setUp(); $this->generator = new Crypt_GPG_KeyGenerator($this->getOptions()); } // }}} // mutators // {{{ testSetExpirationDate_zero() /** * @group mutators */ public function testSetExpirationDate_zero() { $expectedDate = 0; $this->generator->setExpirationDate(0); $this->assertAttributeEquals( $expectedDate, 'expirationDate', $this->generator, 'Setting expiration date to zero failed.' ); } // }}} // {{{ testSetExpirationDate_integer() /** * @group mutators */ public function testSetExpirationDate_integer() { $expectedDate = 2000000000; $this->generator->setExpirationDate(2000000000); $this->assertAttributeEquals( $expectedDate, 'expirationDate', $this->generator, 'Setting expiration date by integer failed.' ); } // }}} // {{{ testSetExpirationDate_string() /** * @group mutators */ public function testSetExpirationDate_string() { date_default_timezone_set('UTC'); $expectedDate = 2000000000; $this->generator->setExpirationDate('2033-05-18T03:33:20'); $this->assertAttributeEquals( $expectedDate, 'expirationDate', $this->generator, 'Setting expiration date by string failed.' ); } // }}} // {{{ testSetExpirationDate_invalid_format() /** * @group mutators * @expectedException InvalidArgumentException */ public function testSetExpirationDate_invalid_format() { date_default_timezone_set('UTC'); $this->generator->setExpirationDate('this is not a date'); } // }}} // {{{ testSetExpirationDate_too_early_date() /** * @group mutators * @expectedException InvalidArgumentException */ public function testSetExpirationDate_too_early_date() { $this->generator->setExpirationDate(1301088055); } // }}} // {{{ testSetExpirationDate_today() /** * @group mutators * @expectedException InvalidArgumentException */ public function testSetExpirationDate_today() { $this->generator->setExpirationDate(time()); } // }}} // {{{ testSetExpirationDate_too_late_date() /** * @group mutators * @expectedException InvalidArgumentException */ public function testSetExpirationDate_too_late_date() { $this->generator->setExpirationDate(2147483648); } // }}} // {{{ testSetPassphrase() /** * @group mutators */ public function testSetPassphrase() { $expectedPassphrase = 'test1'; $this->generator->setPassphrase('test1'); $this->assertAttributeEquals( $expectedPassphrase, 'passphrase', $this->generator, 'Setting passphrase failed.' ); } // }}} // {{{ testSetKeyParams_algorithm() /** * @group mutators */ public function testSetKeyParams_algorithm() { $expectedAlgorithm = Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN; $expectedSize = 1024; $expectedUsage = Crypt_GPG_SubKey::USAGE_SIGN | Crypt_GPG_SubKey::USAGE_CERTIFY; $this->generator->setKeyParams( Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN ); $this->assertAttributeEquals( $expectedAlgorithm, 'keyAlgorithm', $this->generator, 'Setting key algorithm failed.' ); $this->assertAttributeEquals( $expectedSize, 'keySize', $this->generator, 'Setting key algorithm changed key size.' ); $this->assertAttributeEquals( $expectedUsage, 'keyUsage', $this->generator, 'Setting key algorithm changed key usage.' ); } // }}} // {{{ testSetKeyParams_algorithm_and_size() /** * @group mutators */ public function testSetKeyParams_algorithm_and_size() { $expectedAlgorithm = Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN; $expectedSize = 512; $expectedUsage = Crypt_GPG_SubKey::USAGE_SIGN | Crypt_GPG_SubKey::USAGE_CERTIFY; $this->generator->setKeyParams( Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN, 512 ); $this->assertAttributeEquals( $expectedAlgorithm, 'keyAlgorithm', $this->generator, 'Setting key algorithm failed.' ); $this->assertAttributeEquals( $expectedSize, 'keySize', $this->generator, 'Setting key size failed.' ); $this->assertAttributeEquals( $expectedUsage, 'keyUsage', $this->generator, 'Setting key algorithm and size changed key usage.' ); } // }}} // {{{ testSetKeyParams_algorithm_size_and_usage() /** * @group mutators */ public function testSetKeyParams_algorithm_size_and_usage() { $expectedAlgorithm = Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN; $expectedSize = 512; $expectedUsage = Crypt_GPG_SubKey::USAGE_SIGN | Crypt_GPG_SubKey::USAGE_CERTIFY | Crypt_GPG_SubKey::USAGE_ENCRYPT; $this->generator->setKeyParams( Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN, 512, Crypt_GPG_SubKey::USAGE_SIGN | Crypt_GPG_SubKey::USAGE_CERTIFY | Crypt_GPG_SubKey::USAGE_ENCRYPT ); $this->assertAttributeEquals( $expectedAlgorithm, 'keyAlgorithm', $this->generator, 'Setting key algorithm failed.' ); $this->assertAttributeEquals( $expectedSize, 'keySize', $this->generator, 'Setting key size failed.' ); $this->assertAttributeEquals( $expectedUsage, 'keyUsage', $this->generator, 'Setting key usage failed.' ); } // }}} // {{{ testSetKeyParams_invalid_algorithm() /** * @group mutators * @expectedException Crypt_GPG_InvalidKeyParamsException */ public function testSetKeyParams_invalid_algorithm() { $this->generator->setKeyParams(Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC); } // }}} // {{{ testSetKeyParams_invalid_dsa_usage() /** * @group mutators * @expectedException Crypt_GPG_InvalidKeyParamsException */ public function testSetKeyParams_invalid_dsa_usage() { $this->generator->setKeyParams( Crypt_GPG_SubKey::ALGORITHM_DSA, 2048, Crypt_GPG_SubKey::USAGE_ENCRYPT | Crypt_GPG_SubKey::USAGE_CERTIFY ); } // }}} // {{{ testSetSubKeyParams_algorithm() /** * @group mutators */ public function testSetSubKeyParams_algorithm() { $expectedAlgorithm = Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN; $expectedSize = 2048; $expectedUsage = Crypt_GPG_SubKey::USAGE_ENCRYPT; $this->generator->setSubKeyParams( Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN ); $this->assertAttributeEquals( $expectedAlgorithm, 'subKeyAlgorithm', $this->generator, 'Setting sub-key algorithm failed.' ); $this->assertAttributeEquals( $expectedSize, 'subKeySize', $this->generator, 'Setting sub-key algorithm changed key size.' ); $this->assertAttributeEquals( $expectedUsage, 'subKeyUsage', $this->generator, 'Setting sub-key algorithm changed key usage.' ); } // }}} // {{{ testSetSubKeyParams_algorithm_and_size() /** * @group mutators */ public function testSetSubKeyParams_algorithm_and_size() { $expectedAlgorithm = Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN; $expectedSize = 1024; $expectedUsage = Crypt_GPG_SubKey::USAGE_ENCRYPT; $this->generator->setSubKeyParams( Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN, 1024 ); $this->assertAttributeEquals( $expectedAlgorithm, 'subKeyAlgorithm', $this->generator, 'Setting sub-key algorithm failed.' ); $this->assertAttributeEquals( $expectedSize, 'subKeySize', $this->generator, 'Setting sub-key size failed.' ); $this->assertAttributeEquals( $expectedUsage, 'subKeyUsage', $this->generator, 'Setting sub-key algorithm and size changed key usage.' ); } // }}} // {{{ testSetSubKeyParams_algorithm_size_and_usage() /** * @group mutators */ public function testSetSubKeyParams_algorithm_size_and_usage() { $expectedAlgorithm = Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN; $expectedSize = 1024; $expectedUsage = Crypt_GPG_SubKey::USAGE_SIGN | Crypt_GPG_SubKey::USAGE_ENCRYPT; $this->generator->setSubKeyParams( Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN, 1024, Crypt_GPG_SubKey::USAGE_SIGN | Crypt_GPG_SubKey::USAGE_ENCRYPT ); $this->assertAttributeEquals( $expectedAlgorithm, 'subKeyAlgorithm', $this->generator, 'Setting sub-key algorithm failed.' ); $this->assertAttributeEquals( $expectedSize, 'subKeySize', $this->generator, 'Setting sub-key size failed.' ); $this->assertAttributeEquals( $expectedUsage, 'subKeyUsage', $this->generator, 'Setting sub-key usage failed.' ); } // }}} // {{{ testSetSubKeyParams_invalid_elgamal_usage() /** * @group mutators * @expectedException Crypt_GPG_InvalidKeyParamsException */ public function testSetSubKeyParams_invalid_elgamal_usage() { $this->generator->setSubKeyParams( Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC, 2048, Crypt_GPG_SubKey::USAGE_SIGN | Crypt_GPG_SubKey::USAGE_ENCRYPT ); } // }}} // {{{ testSetSubKeyParams_invalid_dsa_usage() /** * @group mutators * @expectedException Crypt_GPG_InvalidKeyParamsException */ public function testSetSubKeyParams_invalid_dsa_usage() { $this->generator->setSubKeyParams( Crypt_GPG_SubKey::ALGORITHM_DSA, 2048, Crypt_GPG_SubKey::USAGE_SIGN | Crypt_GPG_SubKey::USAGE_ENCRYPT ); } // }}} // generate key tests // {{{ testGenerateKeyWithName() /** * @group generate-key */ public function testGenerateKeyWithName() { if (!$this->config['enable-key-generation']) { $this->markTestSkipped( 'Key generation tests are disabled. To run key generation ' . 'tests, enable them in the test configuration. See the ' . 'configuration in \'config.php.dist\' for an exampe.' ); } // {{{ generate-test@example.com $expectedKey = new Crypt_GPG_Key(); $userId = new Crypt_GPG_UserId(); $userId->setName('Test Keypair'); $expectedKey->addUserId($userId); $subKey = new Crypt_GPG_SubKey(); $subKey->setAlgorithm(Crypt_GPG_SubKey::ALGORITHM_DSA); $subKey->setLength(1024); $subKey->setExpirationDate(0); $subKey->setCanSign(true); $subKey->setCanEncrypt(false); $subKey->setHasPrivate(true); $expectedKey->addSubKey($subKey); $subKey = new Crypt_GPG_SubKey(); $subKey->setAlgorithm(Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC); $subKey->setLength(2048); $subKey->setExpirationDate(0); $subKey->setCanSign(false); $subKey->setCanEncrypt(true); $subKey->setHasPrivate(true); $expectedKey->addSubKey($subKey); // }}} $key = $this->generator->generateKey('Test Keypair'); $this->assertKeyEquals($expectedKey, $key); } // }}} // {{{ testGenerateKeyWithNameAndEmail() /** * @group generate-key */ public function testGenerateKeyWithNameAndEmail() { if (!$this->config['enable-key-generation']) { $this->markTestSkipped( 'Key generation tests are disabled. To run key generation ' . 'tests, enable them in the test configuration. See the ' . 'configuration in \'config.php.dist\' for an exampe.' ); } // {{{ generate-test@example.com $expectedKey = new Crypt_GPG_Key(); $userId = new Crypt_GPG_UserId(); $userId->setName('Test Keypair'); $userId->setEmail('generate-test@example.com'); $expectedKey->addUserId($userId); $subKey = new Crypt_GPG_SubKey(); $subKey->setAlgorithm(Crypt_GPG_SubKey::ALGORITHM_DSA); $subKey->setLength(1024); $subKey->setExpirationDate(0); $subKey->setCanSign(true); $subKey->setCanEncrypt(false); $subKey->setHasPrivate(true); $expectedKey->addSubKey($subKey); $subKey = new Crypt_GPG_SubKey(); $subKey->setAlgorithm(Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC); $subKey->setLength(2048); $subKey->setExpirationDate(0); $subKey->setCanSign(false); $subKey->setCanEncrypt(true); $subKey->setHasPrivate(true); $expectedKey->addSubKey($subKey); // }}} $key = $this->generator->generateKey( 'Test Keypair', 'generate-test@example.com' ); $this->assertKeyEquals($expectedKey, $key); } // }}} // {{{ testGenerateKeyWithNameEmailAndComment() /** * @group generate-key */ public function testGenerateKeyWithNameEmailAndComment() { if (!$this->config['enable-key-generation']) { $this->markTestSkipped( 'Key generation tests are disabled. To run key generation ' . 'tests, enable them in the test configuration. See the ' . 'configuration in \'config.php.dist\' for an exampe.' ); } // {{{ generate-test@example.com $expectedKey = new Crypt_GPG_Key(); $userId = new Crypt_GPG_UserId(); $userId->setName('Test Keypair'); $userId->setComment('do not use this key'); $userId->setEmail('generate-test@example.com'); $expectedKey->addUserId($userId); $subKey = new Crypt_GPG_SubKey(); $subKey->setAlgorithm(Crypt_GPG_SubKey::ALGORITHM_DSA); $subKey->setLength(1024); $subKey->setExpirationDate(0); $subKey->setCanSign(true); $subKey->setCanEncrypt(false); $subKey->setHasPrivate(true); $expectedKey->addSubKey($subKey); $subKey = new Crypt_GPG_SubKey(); $subKey->setAlgorithm(Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC); $subKey->setLength(2048); $subKey->setExpirationDate(0); $subKey->setCanSign(false); $subKey->setCanEncrypt(true); $subKey->setHasPrivate(true); $expectedKey->addSubKey($subKey); // }}} $key = $this->generator->generateKey( 'Test Keypair', 'generate-test@example.com', 'do not use this key' ); $this->assertKeyEquals($expectedKey, $key); } // }}} // {{{ testGenerateKeyWithUserId() /** * @group generate-key */ public function testGenerateKeyWithUserId() { if (!$this->config['enable-key-generation']) { $this->markTestSkipped( 'Key generation tests are disabled. To run key generation ' . 'tests, enable them in the test configuration. See the ' . 'configuration in \'config.php.dist\' for an exampe.' ); } // {{{ generate-test@example.com $expectedKey = new Crypt_GPG_Key(); $userId = new Crypt_GPG_UserId(); $userId->setName('Test Keypair'); $userId->setEmail('generate-test@example.com'); $expectedKey->addUserId($userId); $subKey = new Crypt_GPG_SubKey(); $subKey->setAlgorithm(Crypt_GPG_SubKey::ALGORITHM_DSA); $subKey->setLength(1024); $subKey->setExpirationDate(0); $subKey->setCanSign(true); $subKey->setCanEncrypt(false); $subKey->setHasPrivate(true); $expectedKey->addSubKey($subKey); $subKey = new Crypt_GPG_SubKey(); $subKey->setAlgorithm(Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC); $subKey->setLength(2048); $subKey->setExpirationDate(0); $subKey->setCanSign(false); $subKey->setCanEncrypt(true); $subKey->setHasPrivate(true); $expectedKey->addSubKey($subKey); // }}} $key = $this->generator->generateKey( new Crypt_GPG_UserId( 'Test Keypair <generate-test@example.com>' ) ); $this->assertKeyEquals($expectedKey, $key); } // }}} // {{{ testGenerateKeyWithPassphrase() /** * @group generate-key */ public function testGenerateKeyWithPassphrase() { if (!$this->config['enable-key-generation']) { $this->markTestSkipped( 'Key generation tests are disabled. To run key generation ' . 'tests, enable them in the test configuration. See the ' . 'configuration in \'config.php.dist\' for an exampe.' ); } // {{{ generate-test@example.com $expectedKey = new Crypt_GPG_Key(); $userId = new Crypt_GPG_UserId(); $userId->setName('Test Keypair'); $userId->setEmail('generate-test@example.com'); $expectedKey->addUserId($userId); $subKey = new Crypt_GPG_SubKey(); $subKey->setAlgorithm(Crypt_GPG_SubKey::ALGORITHM_DSA); $subKey->setLength(1024); $subKey->setExpirationDate(0); $subKey->setCanSign(true); $subKey->setCanEncrypt(false); $subKey->setHasPrivate(true); $expectedKey->addSubKey($subKey); $subKey = new Crypt_GPG_SubKey(); $subKey->setAlgorithm(Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC); $subKey->setLength(2048); $subKey->setExpirationDate(0); $subKey->setCanSign(false); $subKey->setCanEncrypt(true); $subKey->setHasPrivate(true); $expectedKey->addSubKey($subKey); // }}} $key = $this->generator->setPassphrase('test1')->generateKey( new Crypt_GPG_UserId( 'Test Keypair <generate-test@example.com>' ) ); $this->assertKeyEquals($expectedKey, $key); } // }}} // {{{ testGenerateKeyWithExpirationDate() /** * @group generate-key */ public function testGenerateKeyWithExpirationDate() { if (!$this->config['enable-key-generation']) { $this->markTestSkipped( 'Key generation tests are disabled. To run key generation ' . 'tests, enable them in the test configuration. See the ' . 'configuration in \'config.php.dist\' for an exampe.' ); } // {{{ generate-test@example.com $expectedKey = new Crypt_GPG_Key(); $userId = new Crypt_GPG_UserId(); $userId->setName('Test Keypair'); $userId->setEmail('generate-test@example.com'); $expectedKey->addUserId($userId); $subKey = new Crypt_GPG_SubKey(); $subKey->setAlgorithm(Crypt_GPG_SubKey::ALGORITHM_DSA); $subKey->setLength(1024); $subKey->setExpirationDate(1999998000); // truncated to day $subKey->setCanSign(true); $subKey->setCanEncrypt(false); $subKey->setHasPrivate(true); $expectedKey->addSubKey($subKey); $subKey = new Crypt_GPG_SubKey(); $subKey->setAlgorithm(Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC); $subKey->setLength(2048); $subKey->setExpirationDate(1999998000); // truncated to day $subKey->setCanSign(false); $subKey->setCanEncrypt(true); $subKey->setHasPrivate(true); $expectedKey->addSubKey($subKey); // }}} $key = $this->generator->setExpirationDate(2000000000)->generateKey( new Crypt_GPG_UserId( 'Test Keypair <generate-test@example.com>' ) ); // @TODO: I've got difference in expiration dates here $this->assertKeyEquals($expectedKey, $key); } // }}} // {{{ testGenerateKeyWithInvalidPrimaryKeyAlgorithm() /** * @group generate-key * @expectedException Crypt_GPG_InvalidKeyParamsException */ public function testGenerateKeyWithInvalidPrimaryKeyAlgorithm() { if (!$this->config['enable-key-generation']) { $this->markTestSkipped( 'Key generation tests are disabled. To run key generation ' . 'tests, enable them in the test configuration. See the ' . 'configuration in \'config.php.dist\' for an exampe.' ); } $key = $this->generator ->setKeyParams(Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN) ->generateKey( new Crypt_GPG_UserId( 'Test Keypair <generate-test@example.com>' ) ); } // }}} // {{{ testGenerateKeyWithInvalidSubKeyAlgorithm() /** * @group generate-key * @expectedException Crypt_GPG_InvalidKeyParamsException */ public function testGenerateKeyWithInvalidSubKeyAlgorithm() { if (!$this->config['enable-key-generation']) { $this->markTestSkipped( 'Key generation tests are disabled. To run key generation ' . 'tests, enable them in the test configuration. See the ' . 'configuration in \'config.php.dist\' for an exampe.' ); } $key = $this->generator ->setSubKeyParams(Crypt_GPG_SubKey::ALGORITHM_ELGAMAL_ENC_SGN) ->generateKey( new Crypt_GPG_UserId( 'Test Keypair <generate-test@example.com>' ) ); } // }}} } ?>