diff options
Diffstat (limited to 'program/lib/Crypt/GPG/VerifyStatusHandler.php')
-rw-r--r-- | program/lib/Crypt/GPG/VerifyStatusHandler.php | 216 |
1 files changed, 0 insertions, 216 deletions
diff --git a/program/lib/Crypt/GPG/VerifyStatusHandler.php b/program/lib/Crypt/GPG/VerifyStatusHandler.php deleted file mode 100644 index 8904be149..000000000 --- a/program/lib/Crypt/GPG/VerifyStatusHandler.php +++ /dev/null @@ -1,216 +0,0 @@ -<?php - -/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ - -/** - * Crypt_GPG is a package to use GPG from PHP - * - * This file contains an object that handles GPG's status output for the verify - * operation. - * - * PHP version 5 - * - * 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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * @category Encryption - * @package Crypt_GPG - * @author Michael Gauthier <mike@silverorange.com> - * @copyright 2008 silverorange - * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 - * @version CVS: $Id$ - * @link http://pear.php.net/package/Crypt_GPG - * @link http://www.gnupg.org/ - */ - -/** - * Signature object class definition - */ -require_once 'Crypt/GPG/Signature.php'; - -/** - * Status line handler for the verify operation - * - * This class is used internally by Crypt_GPG and does not need be used - * directly. See the {@link Crypt_GPG} class for end-user API. - * - * This class is responsible for building signature objects that are returned - * by the {@link Crypt_GPG::verify()} method. See <b>doc/DETAILS</b> in the - * {@link http://www.gnupg.org/download/ GPG distribution} for detailed - * information on GPG's status output for the verify operation. - * - * @category Encryption - * @package Crypt_GPG - * @author Michael Gauthier <mike@silverorange.com> - * @copyright 2008 silverorange - * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 - * @link http://pear.php.net/package/Crypt_GPG - * @link http://www.gnupg.org/ - */ -class Crypt_GPG_VerifyStatusHandler -{ - // {{{ protected properties - - /** - * The current signature id - * - * Ths signature id is emitted by GPG before the new signature line so we - * must remember it temporarily. - * - * @var string - */ - protected $signatureId = ''; - - /** - * List of parsed {@link Crypt_GPG_Signature} objects - * - * @var array - */ - protected $signatures = array(); - - /** - * Array index of the current signature - * - * @var integer - */ - protected $index = -1; - - // }}} - // {{{ handle() - - /** - * Handles a status line - * - * @param string $line the status line to handle. - * - * @return void - */ - public function handle($line) - { - $tokens = explode(' ', $line); - switch ($tokens[0]) { - case 'GOODSIG': - case 'EXPSIG': - case 'EXPKEYSIG': - case 'REVKEYSIG': - case 'BADSIG': - $signature = new Crypt_GPG_Signature(); - - // if there was a signature id, set it on the new signature - if ($this->signatureId != '') { - $signature->setId($this->signatureId); - $this->signatureId = ''; - } - - // Detect whether fingerprint or key id was returned and set - // signature values appropriately. Key ids are strings of either - // 16 or 8 hexadecimal characters. Fingerprints are strings of 40 - // hexadecimal characters. The key id is the last 16 characters of - // the key fingerprint. - if (strlen($tokens[1]) > 16) { - $signature->setKeyFingerprint($tokens[1]); - $signature->setKeyId(substr($tokens[1], -16)); - } else { - $signature->setKeyId($tokens[1]); - } - - // get user id string - $string = implode(' ', array_splice($tokens, 2)); - $string = rawurldecode($string); - - $signature->setUserId(Crypt_GPG_UserId::parse($string)); - - $this->index++; - $this->signatures[$this->index] = $signature; - break; - - case 'ERRSIG': - $signature = new Crypt_GPG_Signature(); - - // if there was a signature id, set it on the new signature - if ($this->signatureId != '') { - $signature->setId($this->signatureId); - $this->signatureId = ''; - } - - // Detect whether fingerprint or key id was returned and set - // signature values appropriately. Key ids are strings of either - // 16 or 8 hexadecimal characters. Fingerprints are strings of 40 - // hexadecimal characters. The key id is the last 16 characters of - // the key fingerprint. - if (strlen($tokens[1]) > 16) { - $signature->setKeyFingerprint($tokens[1]); - $signature->setKeyId(substr($tokens[1], -16)); - } else { - $signature->setKeyId($tokens[1]); - } - - $this->index++; - $this->signatures[$this->index] = $signature; - - break; - - case 'VALIDSIG': - if (!array_key_exists($this->index, $this->signatures)) { - break; - } - - $signature = $this->signatures[$this->index]; - - $signature->setValid(true); - $signature->setKeyFingerprint($tokens[1]); - - if (strpos($tokens[3], 'T') === false) { - $signature->setCreationDate($tokens[3]); - } else { - $signature->setCreationDate(strtotime($tokens[3])); - } - - if (array_key_exists(4, $tokens)) { - if (strpos($tokens[4], 'T') === false) { - $signature->setExpirationDate($tokens[4]); - } else { - $signature->setExpirationDate(strtotime($tokens[4])); - } - } - - break; - - case 'SIG_ID': - // note: signature id comes before new signature line and may not - // exist for some signature types - $this->signatureId = $tokens[1]; - break; - } - } - - // }}} - // {{{ getSignatures() - - /** - * Gets the {@link Crypt_GPG_Signature} objects parsed by this handler - * - * @return array the signature objects parsed by this handler. - */ - public function getSignatures() - { - return $this->signatures; - } - - // }}} -} - -?> |