Mercurial > hg > rc1
comparison vendor/pear/crypt_gpg/Crypt/GPG/Key.php @ 0:1e000243b222
vanilla 1.3.3 distro, I hope
author | Charlie Root |
---|---|
date | Thu, 04 Jan 2018 15:50:29 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:1e000243b222 |
---|---|
1 <?php | |
2 | |
3 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ | |
4 | |
5 /** | |
6 * Contains a class representing GPG keys | |
7 * | |
8 * PHP version 5 | |
9 * | |
10 * LICENSE: | |
11 * | |
12 * This library is free software; you can redistribute it and/or modify | |
13 * it under the terms of the GNU Lesser General Public License as | |
14 * published by the Free Software Foundation; either version 2.1 of the | |
15 * License, or (at your option) any later version. | |
16 * | |
17 * This library is distributed in the hope that it will be useful, | |
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
20 * Lesser General Public License for more details. | |
21 * | |
22 * You should have received a copy of the GNU Lesser General Public | |
23 * License along with this library; if not, see | |
24 * <http://www.gnu.org/licenses/> | |
25 * | |
26 * @category Encryption | |
27 * @package Crypt_GPG | |
28 * @author Michael Gauthier <mike@silverorange.com> | |
29 * @copyright 2008-2010 silverorange | |
30 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 | |
31 * @link http://pear.php.net/package/Crypt_GPG | |
32 */ | |
33 | |
34 /** | |
35 * Sub-key class definition | |
36 */ | |
37 require_once 'Crypt/GPG/SubKey.php'; | |
38 | |
39 /** | |
40 * User id class definition | |
41 */ | |
42 require_once 'Crypt/GPG/UserId.php'; | |
43 | |
44 // {{{ class Crypt_GPG_Key | |
45 | |
46 /** | |
47 * A data class for GPG key information | |
48 * | |
49 * This class is used to store the results of the {@link Crypt_GPG::getKeys()} | |
50 * method. | |
51 * | |
52 * @category Encryption | |
53 * @package Crypt_GPG | |
54 * @author Michael Gauthier <mike@silverorange.com> | |
55 * @copyright 2008-2010 silverorange | |
56 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 | |
57 * @link http://pear.php.net/package/Crypt_GPG | |
58 * @see Crypt_GPG::getKeys() | |
59 */ | |
60 class Crypt_GPG_Key | |
61 { | |
62 // {{{ class properties | |
63 | |
64 /** | |
65 * The user ids associated with this key | |
66 * | |
67 * This is an array of {@link Crypt_GPG_UserId} objects. | |
68 * | |
69 * @var array | |
70 * | |
71 * @see Crypt_GPG_Key::addUserId() | |
72 * @see Crypt_GPG_Key::getUserIds() | |
73 */ | |
74 private $_userIds = array(); | |
75 | |
76 /** | |
77 * The subkeys of this key | |
78 * | |
79 * This is an array of {@link Crypt_GPG_SubKey} objects. | |
80 * | |
81 * @var array | |
82 * | |
83 * @see Crypt_GPG_Key::addSubKey() | |
84 * @see Crypt_GPG_Key::getSubKeys() | |
85 */ | |
86 private $_subKeys = array(); | |
87 | |
88 // }}} | |
89 // {{{ getSubKeys() | |
90 | |
91 /** | |
92 * Gets the sub-keys of this key | |
93 * | |
94 * @return array the sub-keys of this key. | |
95 * | |
96 * @see Crypt_GPG_Key::addSubKey() | |
97 */ | |
98 public function getSubKeys() | |
99 { | |
100 return $this->_subKeys; | |
101 } | |
102 | |
103 // }}} | |
104 // {{{ getUserIds() | |
105 | |
106 /** | |
107 * Gets the user ids of this key | |
108 * | |
109 * @return array the user ids of this key. | |
110 * | |
111 * @see Crypt_GPG_Key::addUserId() | |
112 */ | |
113 public function getUserIds() | |
114 { | |
115 return $this->_userIds; | |
116 } | |
117 | |
118 // }}} | |
119 // {{{ getPrimaryKey() | |
120 | |
121 /** | |
122 * Gets the primary sub-key of this key | |
123 * | |
124 * The primary key is the first added sub-key. | |
125 * | |
126 * @return Crypt_GPG_SubKey the primary sub-key of this key. | |
127 */ | |
128 public function getPrimaryKey() | |
129 { | |
130 $primary_key = null; | |
131 if (count($this->_subKeys) > 0) { | |
132 $primary_key = $this->_subKeys[0]; | |
133 } | |
134 return $primary_key; | |
135 } | |
136 | |
137 // }}} | |
138 // {{{ canSign() | |
139 | |
140 /** | |
141 * Gets whether or not this key can sign data | |
142 * | |
143 * This key can sign data if any sub-key of this key can sign data. | |
144 * | |
145 * @return boolean true if this key can sign data and false if this key | |
146 * cannot sign data. | |
147 */ | |
148 public function canSign() | |
149 { | |
150 $canSign = false; | |
151 foreach ($this->_subKeys as $subKey) { | |
152 if ($subKey->canSign()) { | |
153 $canSign = true; | |
154 break; | |
155 } | |
156 } | |
157 return $canSign; | |
158 } | |
159 | |
160 // }}} | |
161 // {{{ canEncrypt() | |
162 | |
163 /** | |
164 * Gets whether or not this key can encrypt data | |
165 * | |
166 * This key can encrypt data if any sub-key of this key can encrypt data. | |
167 * | |
168 * @return boolean true if this key can encrypt data and false if this | |
169 * key cannot encrypt data. | |
170 */ | |
171 public function canEncrypt() | |
172 { | |
173 $canEncrypt = false; | |
174 foreach ($this->_subKeys as $subKey) { | |
175 if ($subKey->canEncrypt()) { | |
176 $canEncrypt = true; | |
177 break; | |
178 } | |
179 } | |
180 return $canEncrypt; | |
181 } | |
182 | |
183 // }}} | |
184 // {{{ addSubKey() | |
185 | |
186 /** | |
187 * Adds a sub-key to this key | |
188 * | |
189 * The first added sub-key will be the primary key of this key. | |
190 * | |
191 * @param Crypt_GPG_SubKey $subKey the sub-key to add. | |
192 * | |
193 * @return Crypt_GPG_Key the current object, for fluent interface. | |
194 */ | |
195 public function addSubKey(Crypt_GPG_SubKey $subKey) | |
196 { | |
197 $this->_subKeys[] = $subKey; | |
198 return $this; | |
199 } | |
200 | |
201 // }}} | |
202 // {{{ addUserId() | |
203 | |
204 /** | |
205 * Adds a user id to this key | |
206 * | |
207 * @param Crypt_GPG_UserId $userId the user id to add. | |
208 * | |
209 * @return Crypt_GPG_Key the current object, for fluent interface. | |
210 */ | |
211 public function addUserId(Crypt_GPG_UserId $userId) | |
212 { | |
213 $this->_userIds[] = $userId; | |
214 return $this; | |
215 } | |
216 | |
217 // }}} | |
218 // {{{ __toString() | |
219 | |
220 /** | |
221 * String representation of the key | |
222 * | |
223 * @return string The key ID. | |
224 */ | |
225 public function __toString() | |
226 { | |
227 foreach ($this->_subKeys as $subKey) { | |
228 if ($id = $subKey->getId()) { | |
229 return $id; | |
230 } | |
231 } | |
232 | |
233 return ''; | |
234 } | |
235 | |
236 // }}} | |
237 } | |
238 | |
239 // }}} | |
240 | |
241 ?> |