Mercurial > hg > rc1
comparison vendor/pear/crypt_gpg/Crypt/GPG/Signature.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 * A class representing GPG signatures | |
7 * | |
8 * This file contains a data class representing a GPG signature. | |
9 * | |
10 * PHP version 5 | |
11 * | |
12 * LICENSE: | |
13 * | |
14 * This library is free software; you can redistribute it and/or modify | |
15 * it under the terms of the GNU Lesser General Public License as | |
16 * published by the Free Software Foundation; either version 2.1 of the | |
17 * License, or (at your option) any later version. | |
18 * | |
19 * This library is distributed in the hope that it will be useful, | |
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
22 * Lesser General Public License for more details. | |
23 * | |
24 * You should have received a copy of the GNU Lesser General Public | |
25 * License along with this library; if not, see | |
26 * <http://www.gnu.org/licenses/> | |
27 * | |
28 * @category Encryption | |
29 * @package Crypt_GPG | |
30 * @author Nathan Fredrickson <nathan@silverorange.com> | |
31 * @author Michael Gauthier <mike@silverorange.com> | |
32 * @copyright 2005-2013 silverorange | |
33 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 | |
34 * @link http://pear.php.net/package/Crypt_GPG | |
35 */ | |
36 | |
37 /** | |
38 * User id class definition | |
39 */ | |
40 require_once 'Crypt/GPG/UserId.php'; | |
41 | |
42 // {{{ class Crypt_GPG_Signature | |
43 | |
44 /** | |
45 * A class for GPG signature information | |
46 * | |
47 * This class is used to store the results of the Crypt_GPG::verify() method. | |
48 * | |
49 * @category Encryption | |
50 * @package Crypt_GPG | |
51 * @author Nathan Fredrickson <nathan@silverorange.com> | |
52 * @author Michael Gauthier <mike@silverorange.com> | |
53 * @copyright 2005-2013 silverorange | |
54 * @license http://www.gnu.org/copyleft/lesser.html LGPL License 2.1 | |
55 * @link http://pear.php.net/package/Crypt_GPG | |
56 * @see Crypt_GPG::verify() | |
57 */ | |
58 class Crypt_GPG_Signature | |
59 { | |
60 // {{{ class properties | |
61 | |
62 /** | |
63 * A base64-encoded string containing a unique id for this signature if | |
64 * this signature has been verified as ok | |
65 * | |
66 * This id is used to prevent replay attacks and is not present for all | |
67 * types of signatures. | |
68 * | |
69 * @var string | |
70 */ | |
71 private $_id = ''; | |
72 | |
73 /** | |
74 * The fingerprint of the key used to create the signature | |
75 * | |
76 * @var string | |
77 */ | |
78 private $_keyFingerprint = ''; | |
79 | |
80 /** | |
81 * The id of the key used to create the signature | |
82 * | |
83 * @var string | |
84 */ | |
85 private $_keyId = ''; | |
86 | |
87 /** | |
88 * The creation date of this signature | |
89 * | |
90 * This is a Unix timestamp. | |
91 * | |
92 * @var integer | |
93 */ | |
94 private $_creationDate = 0; | |
95 | |
96 /** | |
97 * The expiration date of the signature | |
98 * | |
99 * This is a Unix timestamp. If this signature does not expire, this will | |
100 * be zero. | |
101 * | |
102 * @var integer | |
103 */ | |
104 private $_expirationDate = 0; | |
105 | |
106 /** | |
107 * The user id associated with this signature | |
108 * | |
109 * @var Crypt_GPG_UserId | |
110 */ | |
111 private $_userId = null; | |
112 | |
113 /** | |
114 * Whether or not this signature is valid | |
115 * | |
116 * @var boolean | |
117 */ | |
118 private $_isValid = false; | |
119 | |
120 // }}} | |
121 // {{{ __construct() | |
122 | |
123 /** | |
124 * Creates a new signature | |
125 * | |
126 * Signatures can be initialized from an array of named values. Available | |
127 * names are: | |
128 * | |
129 * - <kbd>string id</kbd> - the unique id of this signature. | |
130 * - <kbd>string fingerprint</kbd> - the fingerprint of the key used to | |
131 * create the signature. The fingerprint | |
132 * should not contain formatting | |
133 * characters. | |
134 * - <kbd>string keyId</kbd> - the id of the key used to create the | |
135 * the signature. | |
136 * - <kbd>integer creation</kbd> - the date the signature was created. | |
137 * This is a UNIX timestamp. | |
138 * - <kbd>integer expiration</kbd> - the date the signature expired. This | |
139 * is a UNIX timestamp. If the signature | |
140 * does not expire, use 0. | |
141 * - <kbd>boolean valid</kbd> - whether or not the signature is valid. | |
142 * - <kbd>string userId</kbd> - the user id associated with the | |
143 * signature. This may also be a | |
144 * {@link Crypt_GPG_UserId} object. | |
145 * | |
146 * @param Crypt_GPG_Signature|array $signature optional. Either an existing | |
147 * signature object, which is copied; or an array of initial values. | |
148 */ | |
149 public function __construct($signature = null) | |
150 { | |
151 // copy from object | |
152 if ($signature instanceof Crypt_GPG_Signature) { | |
153 $this->_id = $signature->_id; | |
154 $this->_keyFingerprint = $signature->_keyFingerprint; | |
155 $this->_keyId = $signature->_keyId; | |
156 $this->_creationDate = $signature->_creationDate; | |
157 $this->_expirationDate = $signature->_expirationDate; | |
158 $this->_isValid = $signature->_isValid; | |
159 | |
160 if ($signature->_userId instanceof Crypt_GPG_UserId) { | |
161 $this->_userId = clone $signature->_userId; | |
162 } | |
163 } | |
164 | |
165 // initialize from array | |
166 if (is_array($signature)) { | |
167 if (array_key_exists('id', $signature)) { | |
168 $this->setId($signature['id']); | |
169 } | |
170 | |
171 if (array_key_exists('fingerprint', $signature)) { | |
172 $this->setKeyFingerprint($signature['fingerprint']); | |
173 } | |
174 | |
175 if (array_key_exists('keyId', $signature)) { | |
176 $this->setKeyId($signature['keyId']); | |
177 } | |
178 | |
179 if (array_key_exists('creation', $signature)) { | |
180 $this->setCreationDate($signature['creation']); | |
181 } | |
182 | |
183 if (array_key_exists('expiration', $signature)) { | |
184 $this->setExpirationDate($signature['expiration']); | |
185 } | |
186 | |
187 if (array_key_exists('valid', $signature)) { | |
188 $this->setValid($signature['valid']); | |
189 } | |
190 | |
191 if (array_key_exists('userId', $signature)) { | |
192 $userId = new Crypt_GPG_UserId($signature['userId']); | |
193 $this->setUserId($userId); | |
194 } | |
195 } | |
196 } | |
197 | |
198 // }}} | |
199 // {{{ getId() | |
200 | |
201 /** | |
202 * Gets the id of this signature | |
203 * | |
204 * @return string a base64-encoded string containing a unique id for this | |
205 * signature. This id is used to prevent replay attacks and | |
206 * is not present for all types of signatures. | |
207 */ | |
208 public function getId() | |
209 { | |
210 return $this->_id; | |
211 } | |
212 | |
213 // }}} | |
214 // {{{ getKeyFingerprint() | |
215 | |
216 /** | |
217 * Gets the fingerprint of the key used to create this signature | |
218 * | |
219 * @return string the fingerprint of the key used to create this signature. | |
220 */ | |
221 public function getKeyFingerprint() | |
222 { | |
223 return $this->_keyFingerprint; | |
224 } | |
225 | |
226 // }}} | |
227 // {{{ getKeyId() | |
228 | |
229 /** | |
230 * Gets the id of the key used to create this signature | |
231 * | |
232 * Whereas the fingerprint of the signing key may not always be available | |
233 * (for example if the signature is bad), the id should always be | |
234 * available. | |
235 * | |
236 * @return string the id of the key used to create this signature. | |
237 */ | |
238 public function getKeyId() | |
239 { | |
240 return $this->_keyId; | |
241 } | |
242 | |
243 // }}} | |
244 // {{{ getCreationDate() | |
245 | |
246 /** | |
247 * Gets the creation date of this signature | |
248 * | |
249 * @return integer the creation date of this signature. This is a Unix | |
250 * timestamp. | |
251 */ | |
252 public function getCreationDate() | |
253 { | |
254 return $this->_creationDate; | |
255 } | |
256 | |
257 // }}} | |
258 // {{{ getExpirationDate() | |
259 | |
260 /** | |
261 * Gets the expiration date of the signature | |
262 * | |
263 * @return integer the expiration date of this signature. This is a Unix | |
264 * timestamp. If this signature does not expire, this will | |
265 * be zero. | |
266 */ | |
267 public function getExpirationDate() | |
268 { | |
269 return $this->_expirationDate; | |
270 } | |
271 | |
272 // }}} | |
273 // {{{ getUserId() | |
274 | |
275 /** | |
276 * Gets the user id associated with this signature | |
277 * | |
278 * @return Crypt_GPG_UserId the user id associated with this signature. | |
279 */ | |
280 public function getUserId() | |
281 { | |
282 return $this->_userId; | |
283 } | |
284 | |
285 // }}} | |
286 // {{{ isValid() | |
287 | |
288 /** | |
289 * Gets whether or no this signature is valid | |
290 * | |
291 * @return boolean true if this signature is valid and false if it is not. | |
292 */ | |
293 public function isValid() | |
294 { | |
295 return $this->_isValid; | |
296 } | |
297 | |
298 // }}} | |
299 // {{{ setId() | |
300 | |
301 /** | |
302 * Sets the id of this signature | |
303 * | |
304 * @param string $id a base64-encoded string containing a unique id for | |
305 * this signature. | |
306 * | |
307 * @return Crypt_GPG_Signature the current object, for fluent interface. | |
308 * | |
309 * @see Crypt_GPG_Signature::getId() | |
310 */ | |
311 public function setId($id) | |
312 { | |
313 $this->_id = strval($id); | |
314 return $this; | |
315 } | |
316 | |
317 // }}} | |
318 // {{{ setKeyFingerprint() | |
319 | |
320 /** | |
321 * Sets the key fingerprint of this signature | |
322 * | |
323 * @param string $fingerprint the key fingerprint of this signature. This | |
324 * is the fingerprint of the primary key used to | |
325 * create this signature. | |
326 * | |
327 * @return Crypt_GPG_Signature the current object, for fluent interface. | |
328 */ | |
329 public function setKeyFingerprint($fingerprint) | |
330 { | |
331 $this->_keyFingerprint = strval($fingerprint); | |
332 return $this; | |
333 } | |
334 | |
335 // }}} | |
336 // {{{ setKeyId() | |
337 | |
338 /** | |
339 * Sets the key id of this signature | |
340 * | |
341 * @param string $id the key id of this signature. This is the id of the | |
342 * primary key used to create this signature. | |
343 * | |
344 * @return Crypt_GPG_Signature the current object, for fluent interface. | |
345 */ | |
346 public function setKeyId($id) | |
347 { | |
348 $this->_keyId = strval($id); | |
349 return $this; | |
350 } | |
351 | |
352 // }}} | |
353 // {{{ setCreationDate() | |
354 | |
355 /** | |
356 * Sets the creation date of this signature | |
357 * | |
358 * @param integer $creationDate the creation date of this signature. This | |
359 * is a Unix timestamp. | |
360 * | |
361 * @return Crypt_GPG_Signature the current object, for fluent interface. | |
362 */ | |
363 public function setCreationDate($creationDate) | |
364 { | |
365 $this->_creationDate = intval($creationDate); | |
366 return $this; | |
367 } | |
368 | |
369 // }}} | |
370 // {{{ setExpirationDate() | |
371 | |
372 /** | |
373 * Sets the expiration date of this signature | |
374 * | |
375 * @param integer $expirationDate the expiration date of this signature. | |
376 * This is a Unix timestamp. Specify zero if | |
377 * this signature does not expire. | |
378 * | |
379 * @return Crypt_GPG_Signature the current object, for fluent interface. | |
380 */ | |
381 public function setExpirationDate($expirationDate) | |
382 { | |
383 $this->_expirationDate = intval($expirationDate); | |
384 return $this; | |
385 } | |
386 | |
387 // }}} | |
388 // {{{ setUserId() | |
389 | |
390 /** | |
391 * Sets the user id associated with this signature | |
392 * | |
393 * @param Crypt_GPG_UserId $userId the user id associated with this | |
394 * signature. | |
395 * | |
396 * @return Crypt_GPG_Signature the current object, for fluent interface. | |
397 */ | |
398 public function setUserId(Crypt_GPG_UserId $userId) | |
399 { | |
400 $this->_userId = $userId; | |
401 return $this; | |
402 } | |
403 | |
404 // }}} | |
405 // {{{ setValid() | |
406 | |
407 /** | |
408 * Sets whether or not this signature is valid | |
409 * | |
410 * @param boolean $isValid true if this signature is valid and false if it | |
411 * is not. | |
412 * | |
413 * @return Crypt_GPG_Signature the current object, for fluent interface. | |
414 */ | |
415 public function setValid($isValid) | |
416 { | |
417 $this->_isValid = ($isValid) ? true : false; | |
418 return $this; | |
419 } | |
420 | |
421 // }}} | |
422 } | |
423 | |
424 // }}} | |
425 | |
426 ?> |