diff vendor/pear/crypt_gpg/Crypt/GPG/SignatureCreationInfo.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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/pear/crypt_gpg/Crypt/GPG/SignatureCreationInfo.php	Thu Jan 04 15:50:29 2018 -0500
@@ -0,0 +1,228 @@
+<?php
+/**
+ * Part of Crypt_GPG
+ *
+ * PHP version 5
+ *
+ * @category  Encryption
+ * @package   Crypt_GPG
+ * @author    Christian Weiske <cweiske@php.net>
+ * @copyright 2015 PEAR
+ * @license   http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
+ * @link      http://pear.php.net/package/Crypt_GPG
+ * @link      http://pear.php.net/manual/en/package.encryption.crypt-gpg.php
+ * @link      http://www.gnupg.org/
+ */
+
+/**
+ * Information about a recently created signature.
+ *
+ * @category  Encryption
+ * @package   Crypt_GPG
+ * @author    Christian Weiske <cweiske@php.net>
+ * @copyright 2015 PEAR
+ * @license   http://www.gnu.org/copyleft/lesser.html LGPL License 2.1
+ * @link      http://pear.php.net/package/Crypt_GPG
+ * @link      http://pear.php.net/manual/en/package.encryption.crypt-gpg.php
+ * @link      http://www.gnupg.org/
+ */
+class Crypt_GPG_SignatureCreationInfo
+{
+    /**
+     * One of the three signature types:
+     * - {@link Crypt_GPG::SIGN_MODE_NORMAL}
+     * - {@link Crypt_GPG::SIGN_MODE_CLEAR}
+     * - {@link Crypt_GPG::SIGN_MODE_DETACHED}
+     *
+     * @var integer
+     */
+    protected $mode;
+
+    /**
+     * Public Key algorithm
+     *
+     * @var integer
+     */
+    protected $pkAlgorithm;
+
+    /**
+     * Algorithm to hash the data
+     *
+     * @see RFC 2440 / 9.4. Hash Algorithm
+     * @var integer
+     */
+    protected $hashAlgorithm;
+
+    /**
+     * OpenPGP signature class
+     *
+     * @var mixed
+     */
+    protected $class;
+
+    /**
+     * Unix timestamp when the signature was created
+     *
+     * @var integer
+     */
+    protected $timestamp;
+
+    /**
+     * Key fingerprint
+     *
+     * @var string
+     */
+    protected $keyFingerprint;
+
+    /**
+     * If the line given to the constructor was valid
+     *
+     * @var boolean
+     */
+    protected $valid;
+
+    /**
+     * Names for the hash algorithm IDs.
+     *
+     * Names taken from RFC 3156, without the leading "pgp-".
+     *
+     * @see RFC 2440 / 9.4. Hash Algorithm
+     * @see RFC 3156 / 5. OpenPGP signed data
+     * @var array
+     */
+    protected static $hashAlgorithmNames = array(
+        1 => 'md5',
+        2 => 'sha1',
+        3 => 'ripemd160',
+        5 => 'md2',
+        6 => 'tiger192',
+        7 => 'haval-5-160',
+        8 => 'sha256',
+        9 => 'sha384',
+        10 => 'sha512',
+        11 => 'sha224',
+    );
+
+    /**
+     * Parse a SIG_CREATED line from gnupg
+     *
+     * @param string $sigCreatedLine Line beginning with "SIG_CREATED "
+     */
+    public function __construct($sigCreatedLine = null)
+    {
+        if ($sigCreatedLine === null) {
+            $this->valid = false;
+            return;
+        }
+
+        $parts = explode(' ', $sigCreatedLine);
+        if (count($parts) !== 7) {
+            $this->valid = false;
+            return;
+        }
+        list(
+            $title, $mode, $pkAlgorithm, $hashAlgorithm,
+            $class, $timestamp, $keyFingerprint
+        ) = $parts;
+
+        switch (strtoupper($mode[0])) {
+        case 'D':
+            $this->mode = Crypt_GPG::SIGN_MODE_DETACHED;
+            break;
+        case 'C':
+            $this->mode = Crypt_GPG::SIGN_MODE_CLEAR;
+            break;
+        case 'S':
+            $this->mode = Crypt_GPG::SIGN_MODE_NORMAL;
+            break;
+        }
+
+        $this->pkAlgorithm    = (int) $pkAlgorithm;
+        $this->hashAlgorithm  = (int) $hashAlgorithm;
+        $this->class          = $class;
+        if (is_numeric($timestamp)) {
+            $this->timestamp  = (int) $timestamp;
+        } else {
+            $this->timestamp  = strtotime($timestamp);
+        }
+        $this->keyFingerprint = $keyFingerprint;
+        $this->valid = true;
+    }
+
+    /**
+     * Get the signature type
+     * - {@link Crypt_GPG::SIGN_MODE_NORMAL}
+     * - {@link Crypt_GPG::SIGN_MODE_CLEAR}
+     * - {@link Crypt_GPG::SIGN_MODE_DETACHED}
+     *
+     * @return integer
+     */
+    public function getMode()
+    {
+        return $this->mode;
+    }
+
+    /**
+     * Return the public key algorithm used.
+     *
+     * @return integer
+     */
+    public function getPkAlgorithm()
+    {
+        return $this->pkAlgorithm;
+    }
+
+    /**
+     * Return the hash algorithm used to hash the data to sign.
+     *
+     * @return integer
+     */
+    public function getHashAlgorithm()
+    {
+        return $this->hashAlgorithm;
+    }
+
+    /**
+     * Get a name for the used hashing algorithm.
+     *
+     * @return string|null
+     */
+    public function getHashAlgorithmName()
+    {
+        if (!isset(self::$hashAlgorithmNames[$this->hashAlgorithm])) {
+            return null;
+        }
+        return self::$hashAlgorithmNames[$this->hashAlgorithm];
+    }
+
+    /**
+     * Return the timestamp at which the signature was created
+     *
+     * @return integer
+     */
+    public function getTimestamp()
+    {
+        return $this->timestamp;
+    }
+
+    /**
+     * Return the key's fingerprint
+     *
+     * @return string
+     */
+    public function getKeyFingerprint()
+    {
+        return $this->keyFingerprint;
+    }
+
+    /**
+     * Tell if the fingerprint line given to the constructor was valid
+     *
+     * @return boolean
+     */
+    public function isValid()
+    {
+        return $this->valid;
+    }
+}
+?>