diff plugins/enigma/lib/enigma_subkey.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/plugins/enigma/lib/enigma_subkey.php	Thu Jan 04 15:50:29 2018 -0500
@@ -0,0 +1,79 @@
+<?php
+
+/**
+ +-------------------------------------------------------------------------+
+ | SubKey class for the Enigma Plugin                                      |
+ |                                                                         |
+ | Copyright (C) 2010-2015 The Roundcube Dev Team                          |
+ |                                                                         |
+ | Licensed under the GNU General Public License version 3 or              |
+ | any later version with exceptions for skins & plugins.                  |
+ | See the README file for a full license statement.                       |
+ |                                                                         |
+ +-------------------------------------------------------------------------+
+ | Author: Aleksander Machniak <alec@alec.pl>                              |
+ +-------------------------------------------------------------------------+
+*/
+
+class enigma_subkey
+{
+    public $id;
+    public $fingerprint;
+    public $expires;
+    public $created;
+    public $revoked;
+    public $has_private;
+    public $algorithm;
+    public $length;
+    public $usage;
+
+
+    /**
+     * Converts internal ID to short ID
+     * Crypt_GPG uses internal, but e.g. Thunderbird's Enigmail displays short ID
+     *
+     * @return string Key ID
+     */
+    function get_short_id()
+    {
+        // E.g. 04622F2089E037A5 => 89E037A5
+        return enigma_key::format_id($this->id);
+    }
+
+    /**
+     * Getter for formatted fingerprint
+     *
+     * @return string Formatted fingerprint
+     */
+    function get_fingerprint()
+    {
+        return enigma_key::format_fingerprint($this->fingerprint);
+    }
+
+    /**
+     * Returns human-readable name of the key's algorithm
+     *
+     * @return string Algorithm name
+     */
+    function get_algorithm()
+    {
+        // http://tools.ietf.org/html/rfc4880#section-9.1
+        switch ($this->algorithm) {
+        case 1:
+        case 2:
+        case 3:
+            return 'RSA';
+        case 16:
+        case 20:
+            return 'Elgamal';
+        case 17:
+            return 'DSA';
+        case 18:
+            return 'Elliptic Curve';
+        case 19:
+            return 'ECDSA';
+        case 21:
+            return 'Diffie-Hellman';
+        }
+    }
+}