diff options
Diffstat (limited to 'program/lib/Crypt/GPG/KeyGeneratorErrorHandler.php')
-rw-r--r-- | program/lib/Crypt/GPG/KeyGeneratorErrorHandler.php | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/program/lib/Crypt/GPG/KeyGeneratorErrorHandler.php b/program/lib/Crypt/GPG/KeyGeneratorErrorHandler.php new file mode 100644 index 000000000..ad9ebf395 --- /dev/null +++ b/program/lib/Crypt/GPG/KeyGeneratorErrorHandler.php @@ -0,0 +1,121 @@ +<?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 error output for the + * key generation 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 2011-2013 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/ + */ + +/** + * Error line handler for the key generation 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. + * + * @category Encryption + * @package Crypt_GPG + * @author Michael Gauthier <mike@silverorange.com> + * @copyright 2011-2013 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_KeyGeneratorErrorHandler +{ + // {{{ protected properties + + /** + * Error code (if any) caused by key generation + * + * @var integer + */ + protected $errorCode = Crypt_GPG::ERROR_NONE; + + /** + * Line number at which the error occurred + * + * @var integer + */ + protected $lineNumber = null; + + // }}} + // {{{ handle() + + /** + * Handles an error line + * + * @param string $line the error line to handle. + * + * @return void + */ + public function handle($line) + { + $matches = array(); + $pattern = '/:([0-9]+): invalid algorithm$/'; + if (preg_match($pattern, $line, $matches) === 1) { + $this->errorCode = Crypt_GPG::ERROR_BAD_KEY_PARAMS; + $this->lineNumber = intval($matches[1]); + } + } + + // }}} + // {{{ getErrorCode() + + /** + * Gets the error code resulting from key gneration + * + * @return integer the error code resulting from key generation. + */ + public function getErrorCode() + { + return $this->errorCode; + } + + // }}} + // {{{ getLineNumber() + + /** + * Gets the line number at which the error occurred + * + * @return integer the line number at which the error occurred. Null if + * no error occurred. + */ + public function getLineNumber() + { + return $this->lineNumber; + } + + // }}} +} + +?> |